Er zijn verschillende opties om op afstand in te loggen op een Raspberry Pi. Ben je tevreden met een commandline prompt, dan gebruik je ssh en/of de seriële console (zie elders in dit blad). Wil je een grafische desktop? Dan gebruik je een vnc- of rdp-client. We hebben twee opties voor jullie getest.
Auteur: Filip Vervloesem
Niet alle distributies voor de Raspberry Pi bevatten standaard een grafische desktop. Voor deze test gebruikten we het ‘Raspbian buster with Desktop’ image van https://www.raspberrypi.org/downloads/raspbian. Raspbian beschikt al over de nodige software voor inloggen op afstand, maar je moet die wel nog inschakelen. Dat kan via het commando sudo raspi-config of via Voorkeuren > Raspberry Pi configuratie programma op de desktop. In het onderdeel ‘Interfacing Options’ (commandline) of het tabblad ‘Interfaces’ (gui) schakel je ‘VNC’ in. Kijk vervolgens even na of jouw laptop of desktop al een vnc-client bevat: waarschijnlijk is dat niet het geval. Voor Windows download je de RealVNC VNC Viewer van https://www.realvnc.com/en/connect/download/viewer/windows. In Linux installeer je Remmina met de VNC-plugin (pakketten remmina en remmina-plugin-vnc) of download je de Linux-versie van de RealVNC Viewer.
Als voorbeeld gebruiken we de RealVNC Viewer onder Linux, zodat ook Windows-gebruikers kunnen volgen. Zoek eerst uit wat het IP-adres is van jouw Raspberry Pi. Op de desktop houd je de muiscursor even boven het netwerkicoontje in het systeemvak rechtsboven. Op de terminal vind je dit achter ‘src’ in de output van het commando ‘ip route’. Vul dat IP-adres vervolgens in het invoervak bovenaan de VNC Viewer in en druk op ‘Enter’ om te verbinden. Bij de eerste poging moet je bevestigen dat je met het ingevoerde IP-adres wilt verbinden. Klik op ‘Continue’ en vul vervolgens de login-gegevens van je Pi in (standaard is dat de gebruiker pi met wachtwoord raspberry). De VNC Client neemt vervolgens het bureaublad over van jouw actieve sessie op de Raspberry Pi. Die sessie blijft ook netjes draaien als je de VNC Viewer afsluit. In het hoofdvenster vind je nu een snelkoppeling terug voor de verbinding naar je Pi: je hoeft het IP-adres dus niet te onthouden.
Houd je in de remote desktop jouw muiscursor in het midden tegen de bovenste rand van het scherm, dan komt de werkbalk van de VNC Viewer tevoorschijn. Die bevat knoppen om het scherm al dan niet te herschalen naar de venstergrootte van de viewer, naar fullscreen over te schakelen, bestanden te verzenden of allerlei geavanceerde instellingen aan te passen. Tekst kopiëren en plakken tussen de remote desktop en de lokale desktop werkt probleemloos. Bestanden kopiëren via ctrl-c / ctrl-v of drag-and-drop lukt echter niet. De procedure daarvoor verschilt afhankelijk van de richting waarin je wilt kopiëren. De Transfer files-knop uit de werkbalk laat je bestanden van jouw PC naar de Pi kopiëren. Op de desktop van de Pi verschijnt dan een venster dat de voortgang toont. Voor de omgekeerde richting, dus om bestanden van de Pi naar jouw PC te kopiëren, klik je rechts op het VNC-icoontje in het systeemvak op de Pi en kies je ‘File Transfer’. Vervolgens klik je op ‘Send files’ en kies je welke bestanden je wilt downloaden vanaf de Pi. Het voortgangsvenster verschijnt nu op de desktop van jouw PC of laptop. In beide gevallen komen alle bestanden terecht op je bureaublad. Erg snel is de bestandsoverdracht via vnc echter niet. We haalden nauwelijks snelheden van 1MB/s. Voor grotere bestanden is het handiger om bestandsdeling via nfs of Samba te gebruiken.
Windows-systemen gebruiken voor inloggen op afstand niet het vnc-protocol, maar rdp. Installeer je een rdp server op je Pi, dan heb je dus geen extra software meer nodig onder Windows. Daarom gebruiken we een Windows 10-systeem als voorbeeld. Op een Linux client installeer je het eerder vermelde Remmina, maar nu met de rdp-plugin (remmina-plugin-rdp). Om te beginnen, installeer je dus de xrdp server op je Pi:
sudo apt install xrdp
Vervolgens start je de applicatie ‘Verbinding met extern bureaublad’ uit het Accessoires-menu in Windows. In het Computer-veld vul je het IP-adres van je Pi in en klik je op ‘Verbinden’. De app toont dan een waarschuwing dat het de identiteit van de externe computer niet kan verifiëren. Vink de optie om aan die vraag niet meer te stellen en bevestig dat je de verbinding wilt maken. De xrdp server toont nu een loginscherm waaruit je verschillende sessies kan kiezen. Maar let op: zonder verdere configuratie werkt enkel de eerste sessie (Xorg).
Een groot verschil met de vnc server is dat xrdp een nieuwe sessie voor je aanmaakt. Dat betekent dat je géén toegang hebt tot de reguliere desktop van de Pi (degene die je ook met een rechtstreeks verbonden muis/toetsenbord/beeldscherm gebruikt). Terwijl je met de RealVNC Viewer als het ware die desktop overneemt op afstand, log je met rdp een tweede keer in en werk je in een tweede sessie. Gebruik je de Pi nooit rechtstreeks, dan maakt dat verschil uiteraard niets uit. (Het is overigens mogelijk om via rdp alsnog de reguliere desktop van je Pi over te nemen. Daarvoor installeer je x11vnc en gebruik je dat als backend voor de rdp-sessie.)
Rdp heeft de integratie met Windows iets beter voor elkaar dan vnc. Via ctrl-c en ctrl-v kan je zowel tekst als bestanden kopiëren. Je hebt dus geen speciale tools meer nodig om bestanden uit te wisselen tussen je Windows-desktop en de Pi. Ook de kopieersnelheid ligt hier aanmerkelijk hoger dan bij de VNC Viewer. Bestanden via drag-and-drop kopiëren is nog steeds niet mogelijk, maar dat zien we graag door de vingers. Er is geen werkbalk met configuratie-opties, maar het contextmenu van de titelbalk bevat enkele functies om de venstergrootte aan te passen aan het bureaublad van de Pi. Wil je andere opties instellen? Dat kan alleen via de knop ‘Opties weergeven’ voordat je de verbinding opent. Denk dan aan zaken, zoals de beeldschermresolutie, het delen van printers van je Windows-computer, enz.
Beide oplossingen hebben hun sterke en zwakke punten. Het voordeel van vnc is dat je niets hoeft te installeren op de Pi én dat je dezelfde client gebruikt op Linux- en Windows-systemen. Helaas is het kopiëren van bestanden tamelijk omslachtig en tijdrovend. Daarvoor gebruik je dus beter een andere oplossing, zoals Samba. Voor rdp moet je een extra pakket installeren op de Pi, maar de client zit al ingebouwd in Windows. Bestanden kopiëren is ook gemakkelijker én sneller dan in de vnc client. Een belangrijk verschil is wel dat rdp standaard een tweede sessie opent naast je reguliere desktop. Wil je die laatste overnemen, dan moet je xrdp herconfigureren of bij vnc blijven.