Chcę poruszać wreszcie myszką

Raspberry PI, oprócz dobrze znanego nam wiersza poleceń (a po linuxowemu: shell’a) posiada całkiem przyjemny interfejs graficzny, obojętnie czy podłączyliśmy naszego PI do telewizora czy łączymy się z nim zdalnie poprzez sieć możemy zachęcić go do pokazania graficznego pulpitu.

Na Raspberry PI zainstalujemy serwer VNC, a na naszym kliencie (czyli np. komputerze stacjonarnym) zainstalujemy… tak – klienta VNC.

Instalacja VNC

Na Raspberry wydajemy polecenie:

sudo apt-get install tightvncserver

(oczywiście komputerek musi mieć dostęp do Internetu)
Uruchamiamy serwer wydając polecenie:

vncserver

Zostaniemy poproszeni o wprowadzenie hasła i jego potwierdzenie, istnieje możliwość założenia konta tylko do podglądu (kolejne pytanie kreatora) my jednak go nie potrzebujemy – odpowiadamy więc stanowczo: No!

Po uruchomieniu serwera VNC otrzymamy następujący komunikat:

New 'X' desktop is raspberrypi:<strong>1</strong>
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log

Najbardziej interesuje nas pierwsza linijka – po dwókropku podany jest numer naszej sesji. Tak – w LINUXie możemy mieć kilka, niezależnych sesji pulpitu!

W celu utworzenie kolejnej – wystarczy ponownie użyć polecenie vncserver, wynik będzie taki:

pi@raspberrypi ~ $ vncserver
New 'X' desktop is raspberrypi:<strong>2</strong>

Nam jednak – zwzwyczaj wystarczy jedna sesja.

Łączymy się

W systemie Windows pobieramy program TIGHTVNC, podczas instalacji możemy wybrać tylko komponent viewer, serwer nie będzie tutaj potrzebny.
W okienku połączenia wpisujemy adres IP Maliny i uwaga numer sesji, u mnie wygląda to tak:

VNC Klient – łączenie z PI

Zostaniemy poproszeni o hasła podane podczas konfiguracji serwera.

Po chwili naszym oczom ukaże się piękny pulpit Raspbian’a:

Raspbian Desktop
Raspbian Desktop

Autostart serwera VNC

Jeśli ktoś korzysta z interfejsu graficznego bardzo często, może zmusić Raspberry do automatycznego startowania usługi serwera VNC. Jak to zrobić?

W systemach z rodziny Linux  w lokalizacji /etc/init.d  znajdują się dowiązania symboliczne i pliki służące do uruchamiania, oraz zatrzymywania pracy serwisów systemowych. Odpowiednikiem w systemach Windows są Usługi Systemowe (services).

Na marginesie:
Co to jest dowiązanie symboliczne?

Dowiązanie symboliczne - łącze symboliczne, to specjalny rodzaj pliku w systemach plików. Wskazuje on, odwołując się za pomocą nazwy, na dowolny inny plik lub katalog (który może nawet w danej chwili nie istnieć).
Odwołanie jest niewidoczne na poziomie aplikacji tzn. jest traktowane jak zwykły plik lub katalog.Podczas typowych operacji na dowiązaniu symbolicznym system automatycznie próbuje odnaleźć obiekt docelowy i pracować na zawartości odnalezionego zbioru – a jeśli jest to niemożliwe, zwróci odpowiedni błąd.
Dowiązanie symboliczne powstało w celu oszczędzania miejsca w systemie plików w sytuacjach, gdy niezbędna jest większa elastyczność.

(wiki) 

 
W naszym przypadku najprościej będzie utworzyć plik bezpośrednio w init.d:

sudo nano /etc/init.d/tightvncAutostart

Zostanie otwarty prosty edytor tesktowy (nano), musimy w nim wpisać kod odpowiedzialny  za start i zatrzymanie naszej usługi:

#!/bin/sh
# Nazwa uzytkownika, ktorego konta zostanie uzyte do uruchomienia uslugi
export USER='pi'
eval cd ~$USER
case "$1" in
  start)
    su $USER -c '/usr/bin/tightvncserver :1'
    echo "Uruchamiam TightVNC na koncie $USER "
    ;;
  stop)
    pkill Xtightvnc
    echo "Zatrzymano Tightvncserver"
    ;;
  *)
    echo "Wpisz tylko: /etc/init.d/tightvncserver {start|stop}"
    exit 1
    ;;
esac
exit 0

Linux podczas startu usługi wywoła nasz plik z parametrem start co spowoduje uruchomienie serwera VNC, podczas zamykania systemu usługa będzie zatrzymana poleceniem pkill.

W kolejnym kroku nadajemy naszemu skryptowi prawo do wykonania, skorzystamy więc z polecenia chmod:

sudo chmod +rx /etc/init.d/tightvncserver

+x oznacza: dodać uprawnienie do wykonania (Execute).
+w oznacza: dodać  uprawnienia do odczytu (Read).

Przypomnienie:

Polecenie chmod, czyli change mode – zmień atrybuty służy do definiowania dostępu do plików w systemach z rodzinu Unix/Linux.
I sposób zapisu:
Wyróżnia następujące grupy użytkowników:

  • u – użytkownik (user)
  • g – grupa (group)
  • o – inni (others)
  • a -wszyscy (all)

Uprawnienia są sumą potęg dwójki podawanymi w kolejności: użytkownik, grupa, inni.

Potęgi dwójki:

  • 1 – to prawo do uruchomienia (2^0)
  • 2 – to prawo do zapisu
  • 4 – to prawo do odczytu

Przykład:

chmod 755

oznacza:

  • dla użytkownika 7 czyli prawo do odczytu, zapisu i wykonania (4+2+1=7)
  • dla grupy 5 – czyli prawo do odczytu i zapisu
  • dla innych 5 – czyli prawo do odczytu i zapisu

Kilka uwag

  • Poprzez wykonanie (uruchomienie) należy rozumieć głównie uruchomienie programów i wykonanie skryptów.
  • Poprzez użytkownika rozumiemy właściciela pliku.

Świetnie obrazuje to ta strona.
II Sposób zapisu
To system znakowy, lubię go zdecydowanie bardziej. Składnia jest następująca:

  • + – nadanie (dokładnie dodanie) uprawnień
  • – odebranie uprawnień
  • = – przypisanie uprawnień
  • r – odczyt
  • w – zapis
  • x – wykonanie

Przykład:

chmod a+x skrypt.py

nadaje wszystkim prawo do wykonania pliku skrypt.py.

chmod g=r  skrypt.py

grupa może tylko odczytywac plik, nawet jeśli miała poprzednio dodatkowe uprawnienia zostaną one usunięte.
Uwaga:
Uprawnienia można łączyć przy użyciu przecinka, np.:

chmod a+r,g+w skrypt.py

nadaje wszystkim prawo do odczytu, a grupie dodatkowo prawo do zapisu.

Na koniec:

Na koniec najważniejsze polecenie. Musimy dodać nasze dzieło do skryptów uruchamianych wraz z systemem, dokonamy tego poprzez:

sudo update-rc.d tightvncserver defaults

Gotowe!
 

2 odpowiedzi na “Chcę poruszać wreszcie myszką”

Leave a Reply