Ansluta grafiskt till Raspberry PI med VNC
Man kan förutom den textbaserade uppkopplingen via ssh ansluta sig och få upp den grafiska skärmen på en fjärransluten dator ungefär som Remote Desktop fungerar mellan Windows datorer. Linux använder samma system som man använder sig mellan Apple datorer, nämligen VNC. VNC eller Virtual Network Computing är ett protokoll för att dela skärm, tangentbord och mus från avstånd och är plattformsoberoende så man kan visa och styra en Raspberry PI X Windows skärm från t.ex en annan dator. Längre ner finns beskrivningar hur man kopplar upp sig via en VNC klient från Windows, Mac och Linux.
För att kunna dela ut skärm m.m måste vi först installera en tjänst som man ansluter sig till, den VNC server som finns till Raspberry PI heter TightVNC och installeras med
sudo apt-get install tightvncserver
Sedan är det dax för att sätta upp en startfil så att tjänsten startas upp vi uppstart, kör följande kommando
sudo wget http://downloads.arctics.se/etc/init.d/vncserver -O /etc/init.d/vncserver
Filen innehåller följande rader
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
#!/bin/sh -e ### BEGIN INIT INFO # Provides: vncserver # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: vncserver initscript # Description: script to start and stop VNC server ### END INIT INFO # Author: Kjell Havneskold (nimmis) <kjell.havneskold@gmail.com> # Do NOT "set -e" # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="vncserver" NAME=vncserver DAEMON=/usr/bin/$NAME PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME DAEMON_ARGS=":${DISPLAY} -name '${VNCNAME}' -depth ${DEPTH} -geometry ${GEOMETRY}" HOSTNAME=`hostname` PIDNAME="${HOSTNAME}:${DISPLAY}" HOMEDIR=`awk -F: -v v="pi" '{if ($1==v) print $6}' /etc/passwd` PIDFILE="$HOMEDIR/.vnc/$PIDNAME.pid" . /lib/lsb/init-functions do_start() { su ${VNCUSER} -c "$DAEMON ${OPTIONS}" } do_stop() { su ${VNCUSER} -c "$DAEMON -kill :${DISPLAY}" } do_status() { if [ -r $PIDFILE ]; then echo -n "Running PID=" cat $PIDFILE else echo "Not Running" exit 1 fi } case "$1" in start) log_action_begin_msg "Starting $NAME for user '${VNCUSER}' on $HOSTNAME:${DISPLAY}" do_start ;; stop) log_action_begin_msg "Stoping $NAME for user '${VNCUSER}' on $HOSTNAME:${DISPLAY}" do_stop ;; restart) log_action_begin_msg "Restarting $NAME for user '${VNCUSER}' on $HOSTNAME:${DISPLAY}" do_stop do_start ;; status) echo -n "Status $NAME for user '${VNCUSER}' on $HOSTNAME:${DISPLAY} : " do_status ;; esac exit 0 |
Gör den sedan körbar med
sudo chmod +x /etc/init.d/vncserver
För att få VNC server att starta automatiskt vid uppstart kör man
sudo update-rc.d vncserver defaults
Det som är kvar är att lägga in konfigurationsfilen, kör
sudo wget http://downloads.arctics.se/etc/default/vncserver -O /etc/default/vncserver
Filen innehåller följande rader
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# configuration file for vncserver init script # # Kjell Havneskold nimmis <kjell.havneskold@gmail.com> # # # The Username that will run vncserver VNCUSER="pi" # The display that vncserver will use DISPLAY="1" # Color depth (between 8 and 32) DEPTH="16" # The Desktop geometry to use. #GEOMETRY="x" GEOMETRY="800x600" #GEOMETRY="1024x768" #GEOMETRY="1280x1024" # The name that the vncserver Desktop will have. VNCNAME="Raspberry PI" |
Om du vill ändra några parametrar, kör
sudo nano /etc/default/vncserver
och spara filen sedan.
Nu behöver vi starta den en första gång manuellt, för att lägga in lösenordet som ska användas vid anslutning till maskinen, kör
sudo /etc/init.d/vncserver start
Ange lösenordet för att kunna ansluta sig efter Password: och upprepa samma lösenord efter Verify:. Den kommer sedan att fråga om man även vill ha ett löseord för att enbart titta på skärmen utan att kunna styra tagentbord eller mus, svara n för att avaktivera funktionen.
Om du vill byta lösenord eller gjorde fel på något sätt så börja med att stanna vncserver med
sudo /etc/init.d/vncserver stop
och ta bort filen som finns i användarens hemmakatalog i .vnc/passwd, så för användare pi så blir kommadot
rm /home/pi/.vnc/passwd
kör
sudo /etc/init.d/vncserver start
igen och sätt nya lösenord
Om du vill ta bort den automatiska uppstarten kör
sudo update-rc.d vncserver remove
Tjänsten kan sedan startas manuellt med
sudo /etc/init.d/vncserver start
och stoppas med
sudo /etc/init.d/vncserver stop
Nu har du en fungerande VNC server, nästa steg är att ansluta sig från en annan dator. Hur det går till beror på vilket operativsystem som du använder
Microsoft Windows
Windows har ingen inbyggd klient för att ansluta sig utan man blir tvungen att ladda ner och installera den. TightVNC har en gratisversion att ladda ner här, nackdelen är att man får en VNC server för windows med i installationen. Jag har använt Real VNC klient som också är gratis, den går att ladda ner här. Ladda ner exe filen för antingen 32- eller 64-bits beroende på vilken version du använder. Kör installationen next, next …. finished.
När du sen startar Real VNC klienten får du följande
I rutan för VNC server matar du in antingen IP nummer eller namn (om du följt min beskrivning om detta här) följt av ett kolon (:) och nummer på den display (bildskärm) som du vill koppla dig emot. I exemplet ovan är displayen definierad som 1 och då kopplar jag upp mig mot min dator med raspberrypi.local:1
Nu ska det bara vara att trycka på Connect knappen för att ansluta sig, eftersom tightvnc inte använder sig av kryptering kommer man att få upp en varning om detta
Om man inte vill se denna varning igen kan man klicka i rutan till vänster om Do not warn me about… , Klicka på Continue för att forsätta uppkopplingen. Nu får man upp frågan om lösenordet som man satte när man startade vncserver först gången.
om du inte kommer ihåg vad du satte så finns det beskrivet högre upp i artikeln hur man sätter ett nytt lösenord. Om du matat in rätt lösenord så får får du upp en grafisk miljö i ett fönster.
VNC fungerar på samma sätt som Remote Desktop dvs om du kopplar ner anslutningen så kan du fortsätta där du var om du ansluter dig igen, detta förutsätter naturligtvis att du inte startat om maskinen eller vncserver under tiden.
Mac OS X
Tyvärr hade jag inte någon Svensk MAC OS X tillgängligt när jag skrev detta så referenserna är på Engelska, ska försöka uppdatera detta så snart som möjligt.
Macen har i Mac OS X inbyggt stöd för VNC eftersom Mac själv använder det protokollet för sin skärmdelning. Öppna Findern och välj Go -> Connect to Server eller Command + K
för att öppna fönstret för fjärranslutning
Eftersom man kan koppla upp både diskenheter och fjärrskärmar måste man även ange protokoll för uppkoppling, i detta fall är detta vnc och anslutningen skrivs vnc://ip eller DNS namn:port
Här finns en skillnad mot både Windows och Ubuntu, när man ska ange display så ska man inte ange display nummer utan port på fjärrmaskinen. Den är 5900 + display nummer, så för display 1 blir det 5901
Tryck på + om du vill spara anslutningen och tryck på Connect knappen. Man får då upp en varning om osäker anslutning eftersom vncserver inte krypterar
Tryck på Connect så fortsätter uppkopplingen och man får frågan om lösenord för anslutningen.
Om du angett rätt lösenord så får du upp skärmen från Raspberry PI
Ubuntu
Tyvärr hade jag inte någon Svensk Ubuntu tillgängligt när jag skrev detta så referenserna är på Engelska, ska försöka uppdatera detta så snart som möjligt.
I Ubuntu finns ett paket som heter Remote desktop client for Gnome desktop environment som innehåller fjärranslutning med en massa olika protokoll bl.a VNC som vi är ute efter. Starta Ubuntu Software Center och mata in remmina i sökrutan så hittar du paketet.
Klicka på knappen install och vänta på att applikationen installeras, när den är färdig stäng Software Center. Klicka på Dash Board och skriv in remmina så hittar du applikationen.
Klicka på iconen för att starta applikationen.
Klicka på ikonen för att skapa en ny profil, fyll i de inställningar som är lämpliga
Tryck på Save knappen för att spara profilen, ny har du en profil som du kan koppla upp dig med.
Dubbelklicka på Raspberry PI för att koppla upp
När det kopplat upp så har vi Raspberry PI skärmen
Jag köpte en Raspberry igår, jag har en laptop med windows 7. Jag köper alla kablar jag behöver. Inkluderat nätverkskabeln, en korskopplad sådan då det gäller dator till dator. Jag kopplar igång Raspberryn, men kommer inte ut på internet med den. På mijn laptop står det ” oidentifrat nätverk”,, nätverksåtkomst saknas. Jag är uppkopplad mot internet med mobilt berband, kontant Comviq.
HUR får jag iång detta lilla nätverk? Raspberryn är ju linux har jag förstått ( är helt ny med linux), måste min laptop även den köra linux, är det därför det inte fungerar.
Snälla besvara detta mysterium så fort som möjligt.
Var sitter usb modemet? Har du delat internet med raspberry pi? Det enklaste är väl att skaffa två trådlösa wifi enheter och via windows skapa en virtuell access point och dela ut internet från win 7..
Ser att du fått vänta på ett svar ett tag @seven.
här finner du svar på hur du skall göra http://raspberry.arctics.se/2013/04/01/raspberry-pi-kopplad-direkt-till-dator/
/nybörjare
Gör en guide för att köra vnc i pidora också. Jag har lyckats att installera vnc på den men när jag ansluter så får jag bara en svart skärm.
kan man använda joystik/gamepad till raspberry pi via pc’n … via vnc…
skulle vara jättebra om man fick ett litet svar , jag vet att denna tråd är
halv gammal , men man kan ju hoppas på svar 😉
/Henrik