Netwerktoegang
Start dit hoofdstuk met een nieuwe reservekopie van de Basisimage.
IP-adres vervangen door computernaam
Thuisnetwerken werken met dynamische IP-adressen, met andere woorden het IP-adres van jouw Raspberry Pi zal regelmatig veranderen. Als je er dan even verbinding mee wilt maken, is het wel een heel gedoe om er een toetsenbord, muis en monitor op aan te sluiten om alleen het IP-adres te achterhalen. Zou het niet handiger zijn als je alleen de naam van de Raspberry Pi in de terminal hoeft in te typen om er verbinding mee te maken? Dat klinkt te mooi om waar te zijn, maar het kan in feite vrij gemakkelijk.
Je hebt alleen een stukje software nodig dat hosts en services in een lokaal netwerk niet met hun IP-adres laat zien, maar met hun naam. Multicast Domain Name System (mDNS) maakt het gebruik van computernamen (hostnames) in kleine netwerken mogelijk zonder centrale DNS-server (Domain Name Server). Het is een ZeroConf dienst waarbij je dus niets moet configureren en zonder problemen samen kan werken met bestaande DNS-servers.
Zowel Apple- (Bonjour) als Linux (Avahi) en Windows (vanaf Windows 10 1703) systemen ondersteunen standaard mDNS.
We illustreren dit door in de terminal een ping opdracht naar de Raspberry Pi te sturen. Op sommige besturingssystemen moet je ping afbreken met de toetscombinatie Ctrl+c.
dany@main:~$ ping raspberrypi.local
PING raspberrypi.local(2a02:a03f:e02a:8901:122d:5426:18c2:8565%2 (2a02:a03f:e02a:8901:122d:5426:18c2:8565%2)) 56 data bytes
64 bytes from 2a02:a03f:e02a:8901:122d:5426:18c2:8565 (2a02:a03f:e02a:8901:122d:5426:18c2:8565): icmp_seq=1 ttl=64 time=1.26 ms
64 bytes from 2a02:a03f:e02a:8901:122d:5426:18c2:8565 (2a02:a03f:e02a:8901:122d:5426:18c2:8565): icmp_seq=2 ttl=64 time=2.44 ms
64 bytes from 2a02:a03f:e02a:8901:122d:5426:18c2:8565 (2a02:a03f:e02a:8901:122d:5426:18c2:8565): icmp_seq=3 ttl=64 time=2.55 ms
64 bytes from 2a02:a03f:e02a:8901:122d:5426:18c2:8565 (2a02:a03f:e02a:8901:122d:5426:18c2:8565): icmp_seq=4 ttl=64 time=2.95 ms
^C
--- raspberrypi.local ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.257/2.300/2.951/0.631 ms
Merk op dat de ZeroConfnaam van de Raspberry Pi bestaat uit twee delen, de computernaam (hostname) raspberrypi en het domein local gescheiden door een punt. Elke ZeroConfnaam heeft als domeinnaam local. Merk ook op dat ZeroConf indien mogelijk de voorkeur heeft aan IPv6-adressen. Om het IPv4-adres van de Raspberry Pi te achterhalen, gebruik je de opdracht:
dany@main:~$ ping -4 raspberrypi.local
PING (192.168.129.54) 56(84) bytes of data.
64 bytes from 192.168.129.54 (192.168.129.54): icmp_seq=1 ttl=64 time=2.51 ms
64 bytes from 192.168.129.54 (192.168.129.54): icmp_seq=2 ttl=64 time=6.35 ms
64 bytes from 192.168.129.54 (192.168.129.54): icmp_seq=3 ttl=64 time=5.30 ms
64 bytes from 192.168.129.54 (192.168.129.54): icmp_seq=4 ttl=64 time=3.05 ms
^C
--- ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 2.505/4.300/6.354/1.581 ms
Het spreekt voor zich dat als je meerdere Raspberry Pi's in huis hebt, je die best veelzeggende unieke computernamen geeft.
Virtual Network Computing
VNC (Virtual Network Computing is een systeem voor het grafisch delen van een scherm, toetsenbord en muis zodat een gebruiker vanaf zijn eigen computer het scherm van een andere computer kan bekijken en bedienen.
Dit heeft veel nuttige toepassingen: je kunt op afstand de controle overnemen van een systeem, bijvoorbeeld om een andere computergebruiker te helpen of om een netwerkcomputer te gebruiken zonder dat daar een beeldscherm, toetsenbord of muis hoeft aan te hangen.
In ons geval is het handig om toegang te hebben tot de Raspberry Pi zonder de bovengenoemde randapparatuur. Op deze manier kun je er alles op doen wat je normaal zou doen terwijl de Pi alleen aan het lichtnet en het netwerk is aangesloten. Dat scheelt ruimte en voorkomt het maken van extra kosten.
VNC kan je als volgt in Raspberry Pi OS activeren:
- Start een SSH verbinding naar de uw Raspberry Pi
- Start het
raspi-config
configuratieprogramma - Start de module Interface Options
- Start VNC
- Selecteer de knop <Ja> en bevestig met de Return toets
- Bevestig de melding met de ingeschakelde VNC Server
- Sluit het configuratieprogramma af.
- Door de herconfiguratie van de Raspberry Pi kan de SSH verbinding verbroken worden.
VNC Viewer
Raspberry Pi OS gebruikt standaard de WayVNC server, als Viewer kan je elke VNC Viewer gebruiken, in deze cursus gebruiken we RealVNC. Voor elk besturingssysteem kan je vanaf de RealVNC Viewer downloadpagina een gepaste viewer downloaden. Je kunt daarbij kiezen voor een installeerbare versie of een alleenstaande versie. Je moet om de RealVNC Viewer te gebruiken geen account aanmaken.
Bij de eerste start van VNC Viewer moet je verschillende dialoogvensters doorlopen:
- In het venster met de gebruiksvoorwaarden activeer je na het lezen van End Users License Agreement de optie I have read and accept these terms and conditions en klik je op de knop .
- Om over het internet een apparaat met een RealVNC server (dus niet voor de Raspberry Pi) over te nemen, moet je een online RealVNC account aanmaken. Dit is niet verplicht voor het gebruiken van de RealVNC viewer in een thuisnetwerk. Voor mensen die een Raspberry Pi project willen maken dat je via het internet op elke locatie en op elk apparaat wilt bedienen, kunnen gebruik maken van Raspberry Pi Connect (zie de Praktijk opdracht). Je kunt dan vanaf elk apparaat via een browser surfen naar het scherm van de Raspberry Pi en deze zo bedienen. Deze methode is veel veiliger dan het openen van poorten in de router (nooit doen). Klik op de knop .
- Aangezien dit niet verplicht is voor de viewer in een thuisnetwerk kan je op de knop klikken om door te gaan.
De RealVNC Viewer is nu klaar voor gebruik:
- Typ bovenaan in het tekstvak de hostnaam of het IP-adres van de Raspberry Pi.
- Aangezien dit het eerste contact is tussen de VNC Viewer en VNC Server op de Raspberry Pi, wordt deze niet herkend.
Er verschijnt een Identity Check dialoogvenster.
Klik op de knop Continue om de vingerafdruk (signature) van de VNC Server te vertrouwen en op te slaan voor latere herkenning.
- Daarna geef je in het Authentication venster de gebruikersnaam en wachtwoord van de Raspberry Pi gebruiker in.
- En daar is het scherm van jouw Raspberry Pi.
Soms krijg je de volgende foutmelding:
De RealVNC Viewer werkt met sessies, die zichtbaar zijn als tegels in het RealVNC venster. Pas als je de sessie verwijderd, kan je terug een VNC verbinding maken. Verwijder een sessie door er rechts op te klikken en de Delete opdracht uit te voeren.
Werken met de Real VNC Viewer/Server
Alle bewerkingen die je met de muis, het toetsenbord en een scherm op de Raspberry Pi kunt uitvoeren, kan je nu via het venster van de VNC Viewer. Uitgezonderd indien de beelden hardwareversnelling gebruiken (bijvoorbeeld bij het afspelen van video).
Bovenaan het VNC scherm zie je in het midden een klein gedeelte van een paneel dat uitvouwt door het aan te wijzen.
Dit paneel bevat blauwe pictogrammen om schermvullend te werken; het scherm aan te passen aan het venster; de toetscombinatie Ctrl+Alt+Del, informatie weer te geven, de VNC Viewer in te stellen en de verbinding af te breken.
Sommige functies werken enkel als je zowel de RealVNC server (betalend en werkt niet op de Raspberry Pi) als de RealVNC viewer gebruikt.
Praktijk opdracht
- Eerst zorgen we voor wat oefenmateriaal (een ZIP archief met foto's) op de Raspberry Pi.
- Download dit ZIP-archief met foto's.
- Start Filezilla en maak een SSH verbinding met jouw Raspberry Pi.
- Verplaats het gedownloade Zip-archief naar de map Downloads op de Raspberry Pi.
- OF Start op de Raspberry Pi de Web Browser en download het ZIP-archief op de Raspberry Pi.
- Start de RealVNC Viewer op jouw computer en maak een VNC verbinding naar de Raspberry Pi. Blijf verder werken via de VNC verbinding op jouw computer.
- Klik in de map Downloads met de rechtermuisknop op het ZIP archief Foto's.zip.
- Voer in het snelmenu de opdracht Hier uitpakken uit.
- Verplaats de uitgepakte map met Foto's naar de Pictures map in de Thuismap op de Raspberry Pi.
- Open in de map Foto's de eerste foto. Deze wordt geopend met de applicatie Oog van Mate.
- Om alle foto's in de Pictures map te bekijken, start je in het menu Venster een diavoorstelling.
- De diavoorstelling wordt schermvullend weergegeven. Zo maak je met een extra LCD-scherm voor de Raspberry Pi en het uitzoeken van prachtige aan de schermresolutie aangepaste foto's een prachtig fotokader.
- Druk Esc om de diavoorstelling in volledige schermweergave te verlaten.
- Een echt fotokader laat de foto's niet zo snel variëren. In het menu Bewerken met de Voorkeuren van het 'Oog van Mate' op het tabblad Diavoorstelling kan je de optie Wissel naar volgende afbeelding na in seconden instellen. Een rustig fotokader gebruikt tussenpozen van een uur en meer. Stel dit in op 60 seconden.
- Test de aanpassing.
- Sluit alle toepassingen en vensters op de Raspberry Pi.
- Sluit het VNC venster om de verbinding te verbreken.
- Nu je een VNC verbinding kunt opzetten, kan je via het onveilige internet jouw Raspberry Pi bedienen.
Daarvoor heb je echter een externe dienst als dataplicity nodig.
Je moet de bedrijven achter deze diensten dan wel vertrouwen.
Raspberry Pi (het bedrijf) biedt zelf een versleutelde dienst aan:
- We starten met het obligate bijwerken van het systeem en de software.
Start een terminal of SSH verbinding en voer de volgende opdrachten uit:
pi@raspberrypi:~ $
sudo apt update
Geraakt:1 http://deb.debian.org/debian bookworm InRelease Ophalen:2 http://deb.debian.org/debian-security bookworm-security InRelease [48,0 kB] Ophalen:3 http://deb.debian.org/debian bookworm-updates InRelease [55,4 kB] Ophalen:4 http://archive.raspberrypi.com/debian bookworm InRelease [23,6 kB] Ophalen:5 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages [413 kB] Ophalen:6 http://archive.raspberrypi.com/debian bookworm/main armhf Packages [422 kB] 859 kB opgehaald in 1s (620 kB/s) Pakketlijsten worden ingelezen... Klaar Boom van vereisten wordt opgebouwd... Klaar De statusinformatie wordt gelezen... Klaar 1 pakket kan opgewaardeerd worden. Voer 'apt list --upgradable' uit om het te zien. pi@raspberrypi:~ $sudo apt upgrade
Pakketlijsten worden ingelezen... Klaar Boom van vereisten wordt opgebouwd... Klaar De statusinformatie wordt gelezen... Klaar Opwaardering wordt doorgerekend... Klaar De volgende pakketten zullen opgewaardeerd worden: raspberrypi-sys-mods 1 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd. Er moeten 18,8 kB aan archieven opgehaald worden. Na deze bewerking zal er 1.024 B extra schijfruimte gebruikt worden. Wilt u doorgaan? [J/n] Ophalen:1 http://archive.raspberrypi.com/debian bookworm/main arm64 raspberrypi-sys-mods arm64 20240527+1 [18,8 kB] 18,8 kB opgehaald in 0s (62,5 kB/s) De changelogs worden ingelezen... Klaar (Database wordt ingelezen ... 147626 bestanden en mappen momenteel geïnstalleerd.) Uitpakken van .../raspberrypi-sys-mods_20240527+1_arm64.deb wordt voorbereid... Bezig met uitpakken van raspberrypi-sys-mods (20240527+1) over (20240527) ... Instellen van raspberrypi-sys-mods (20240527+1) ... Bezig met afhandelen van triggers voor initramfs-tools (0.142) ... update-initramfs: Generating /boot/initrd.img-6.6.28+rpt-rpi-v8 '/boot/initrd.img-6.6.28+rpt-rpi-v8' -> '/boot/firmware/initramfs8' update-initramfs: Generating /boot/initrd.img-6.6.28+rpt-rpi-2712 '/boot/initrd.img-6.6.28+rpt-rpi-2712' -> '/boot/firmware/initramfs_2712' update-initramfs: Generating /boot/initrd.img-6.6.20+rpt-rpi-v8 update-initramfs: Generating /boot/initrd.img-6.6.20+rpt-rpi-2712 - Installeer Raspberry Pi Connect met de volgende opdracht:
pi@raspberrypi:~ $
sudo apt install rpi-connect
Pakketlijsten worden ingelezen... Klaar Boom van vereisten wordt opgebouwd... Klaar De statusinformatie wordt gelezen... Klaar De volgende NIEUWE pakketten zullen geïnstalleerd worden: rpi-connect 0 opgewaardeerd, 1 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd. Er moeten 7.281 kB aan archieven opgehaald worden. Na deze bewerking zal er 18,8 MB extra schijfruimte gebruikt worden. Ophalen:1 http://archive.raspberrypi.com/debian bookworm/main arm64 rpi-connect arm64 1.1.0 [7.281 kB] 7.281 kB opgehaald in 2s (3.210 kB/s) Voorheen niet geselecteerd pakket rpi-connect wordt geselecteerd. (Database wordt ingelezen ... 147627 bestanden en mappen momenteel geïnstalleerd.) Uitpakken van .../rpi-connect_1.1.0_arm64.deb wordt voorbereid... Bezig met uitpakken van rpi-connect (1.1.0) ... Instellen van rpi-connect (1.1.0) ... Created symlink /etc/systemd/user/default.target.wants/rpi-connect-wayvnc.service → /usr/lib/systemd/user/rpi-connect-wayvnc.service. Created symlink /etc/systemd/user/default.target.wants/rpi-connect.service → /usr/lib/systemd/user/rpi-connect.service. - Herstart de Raspberry pi met de volgende opdracht:
pi@raspberrypi:~ $
sudo reboot
Broadcast message from root@raspberrypi on pts/1 (Tue 2024-05-28 15:16:27 CEST): The system will reboot now! - Om Raspberry Pi Connect te gebruiken, heb je een Raspberry Pi ID nodig, dat je hier online kunt aanmaken.
- Daarna moeten we de Raspberry Pi koppelen aan het Raspberry Pi ID:
- Klik op de Raspberry Pi in het systeemvak bovenaan rechts op de knop Raspberry Pi Connect, dit is een lichtgrijze knop met een cirkel pictogram met twee bollen.
- Klik op de opdracht Sign in.
- Na een tijdje start de browser om in te loggen met jouw Raspberry Pi ID. Klik op de knop .
- Vul jouw Raspberry Pi ID gegevens in en klik op de knop .
- Geef jouw Raspberry Pi een naam en klik op de knop .
- Na een tijdje wordt de knop in het systeemvak actief (krijgt kleur). Sluit de browser.
- Om de Raspberry Pi via het internet te bedienen, surf je op om het even welk apparaat, om het even waar naar https://connect.raspberrypi.com/.
- Log in (Sign in) met jouw Raspberry Pi ID gegevens.
- Je komt automatisch terecht op de pagina met verbonden apparaten. Klik bij de apparaatnaam van de Raspberry Pi op de knop .
- Na een tijdje verschijnt het beeld van jouw Raspberry Pi in de browser.
- Meer en recentere informatie kan je op de documentatie webpagina van Raspberry Pi Connect vinden.
- We starten met het obligate bijwerken van het systeem en de software.
Start een terminal of SSH verbinding en voer de volgende opdrachten uit: