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:
Zostaniemy poproszeni o hasła podane podczas konfiguracji serwera.
Po chwili naszym oczom ukaże się piękny pulpit Raspbian’a:
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).
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!
Your answer was just what I nedeed. It’s made my day!