ID.nl logo
Zo start je je Raspberry Pi vanaf usb of je netwerk
© Reshift Digital
Huis

Zo start je je Raspberry Pi vanaf usb of je netwerk

Een Raspberry Pi opstarten doe je normaal vanaf een (micro-)sd-kaart. Maar soms is dat niet zo handig. Sinds kort hebben de ontwikkelaars van de familie minicomputertjes twee nieuwe bootmodi toegevoegd: usb en netwerk. Met de usb-modus start je de Raspberry Pi vanaf een besturingssysteem op een usb-stick of harde schijf die je via usb aansluit.

Met de netwerkmodus heb je zelfs geen lokaal opslagapparaat nodig: de Raspberry Pi downloadt zijn besturingssysteem via het netwerk van een andere computer. Zo kun je ook eenvoudig meerdere Raspberry Pi’s laten opstarten via een besturingssysteem op een centrale computer. Update je dat centrale besturingssysteem, dan draaien al je Raspberry Pi’s automatisch de nieuwste versie.

01 Experimentele bootmodi

De nieuwe bootmodi zijn experimenteel en ontwikkeld voor de Raspberry Pi 3. De bootcode die daarvoor nodig is, zit in de BCM2837: de processor van de Raspberry Pi 3. Heb je een Raspberry Pi 1, 2 of Zero, dan kun je ook van de nieuwe bootmodi gebruikmaken, maar via een omweg: formatteer een sd-kaart met fat32, kopieer het bestand bootcode.bin naar het kaartje en start je Pi van dit kaartje op. Dat is dan wel niet volledig zonder sd-kaart, maar je kunt je Pi wel vanaf usb of het netwerk opstarten.

02 Mogelijke problemen met usb

Opstarten van usb lukt niet altijd. Zo schakelen sommige usb-sticks zich te traag in. Ook externe harde schijven reageren niet altijd binnen de twee seconden, de tijd die de bootcode standaard wacht. Je kunt die time-out wel verhogen naar vijf seconden, maar sommige schijven zijn dan zelfs nog niet klaar. Andere usb-sticks stellen heel specifieke eisen aan het communicatieprotocol, waaraan de (tot 32 kB rom beperkte) bootcode van de Raspberry Pi 3 niet voldoet. Je zult dus misschien enkele schijven moeten uitproberen.

©PXimport

03 Firmware upgraden

We gaan ervan uit dat je Raspbian op je Raspberry Pi draait. Indien niet, download dan een image en zet het op een sd-kaart met het programma Win32DiskImager en start de Pi ervan op. Ververs eerst alle pakketbronnen met sudo apt-get update. Als je Raspbian Lite draait (de versie zonder grafische interface), voer dan eerst sudo apt-get install rpi-update uit omdat die minimale versie van Raspbian het pakket rpi-update niet heeft. Voer dan een update van de firmware uit de ‘next’-branch uit met sudo BRANCH=next rpi-update.

04 Usb-modus inschakelen

Open het opstartconfiguratiebestand met sudo nano /boot/config.txt en voeg de opdracht program_usb_boot_mode=1 toe aan het einde. Sla het bestand op met Ctrl+O en sluit nano af met Ctrl+X. Herstart je Pi met sudo reboot, en controleer na de herstart of de usb-modus is ingeschakeld. Dat doe je met de opdracht vcgencmd otp_dump | grep 17:, die als resultaat een getal moet tonen dat eindigt op 0x3020000a. Open daarna weer het opstartconfiguratiebestand en verwijder de opdracht program_usb_boot_mode=1, zodat je niet per ongeluk de usb-bootmodus inschakelt op een andere Pi waarin je deze sd-kaart steekt.

©PXimport

05 Usb-opslag partitioneren

Sluit nu je usb-opslagapparaat op je Pi aan. Partitioneer dit apparaat met sudo parted /dev/sda. Maak een nieuwe partitietabel aan met mktable msdos en bevestig met Yes dat je alle gegevens op de schijf wilt vernietigen. Maak daarna een fat32-partitie van 100 megabyte aan met mkpart primary fat32 0% 100M en een ext4-partitie die de rest van de schijf inneemt met mkpart primary ext4 100M 100%. Bekijk de wijzigingen met print en sluit parted af met quit. Creëer dan het bootbestandssysteem met sudo mkfs.vfat -n BOOT -F 32 /dev/sda1 en het rootbestandssysteem met sudo mkfs.ext4 /dev/sda2.

06 Raspbian kopiëren

Installeer het programma rsync met sudo apt-get install rsync. Maak daarna een nieuwe directory aan met sudo mkdir /mnt/usb en koppel het ext4-bestandssysteem van de usb-opslag daarop aan met sudo mount /dev/sda2 /mnt/usb/. Maak dan een boot-directory aan met sudo mkdir /mnt/usb/boot en koppel het bootbestandssysteem erop aan met sudo mount /dev/sda1 /mnt/usb/boot/. Kopieer nu het Raspbian-systeem dat je vanaf de sd-kaart draait naar het bestandssysteem op je usb-opslag. Dat doe je met de opdracht sudo rsync -ax --progress / /boot /mnt/usb. Heb even geduld, want dat kan een tijdje duren.

07 Chroot

De usb-opslag bevat nu een kopie van je draaiende Raspbian, maar niet alles mag identiek zijn. Zo heeft het nieuwe systeem andere ssh-sleutels nodig. Ga daarom naar de usb-opslag met cd /mnt/usb en koppel een aantal speciale bestandssystemen aan met sudo mount --bind /dev dev, sudo mount --bind /sys sys en sudo mount --bind /proc proc. Voer daarna een chroot (change root) uit met sudo chroot .. Alle opdrachten die je nu uitvoert, worden in het systeem op de usb-opslag uitgevoerd, niet meer in het systeem op de sd-kaart.

©PXimport

08 Nieuwe ssh-sleutels

Je bent nu root-gebruiker in de chroot. Verwijder eerst de bestaande ssh-sleutels, want dat zijn degene die we van het systeem van de sd-kaart hebben gekopieerd. Dat doe je met rm /etc/ssh/ssh_host*. Genereer daarna nieuwe ssh-sleutels door de OpenSSH-server te herconfigureren met dpkg-reconfigure openssh-server. Verlaat daarna de chroot met exit. Alle opdrachten die je nu uitvoert, worden weer in het systeem op de sd-kaart uitgevoerd. Ontkoppel dan de speciale bestandssystemen met sudo umount dev, sudo umount sys en sudo umount proc.

©PXimport

09 Rootbestandssysteem aanpassen

Zorg nu dat de Pi het rootbestandssysteem op de usb-opslag gebruikt in plaats van dat op de sd-kaart. Daarvoor pas je het bestand /boot/cmdline.txt aan met sudo sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/usb/boot/cmdline.txt. Doe hetzelfde in het bestand /etc/fstab: sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/usb/etc/fstab. Ga daarna naar je home-directory met cd, ontkoppel de bestandssystemen van de usb-opslag met sudo umount /mnt/usb/boot en sudo umount /mnt/usb en schakel de Pi uit met sudo poweroff. Trek de voedingskabel uit, verwijder de sd-kaart en steek de voedingskabel er terug in. Als alles goed gaat, start je Pi nu op van je usb-opslag.

©PXimport

10 Mogelijke problemen met ethernet

Voor opstarten vanaf het netwerk is er een belangrijke beperking: dit werkt niet vanaf wifi, alleen vanaf de ingebouwde ethernetpoort. Maar sommige switches zijn te traag met hun reactie op de dhcp-aanvraag van de bootcode van de Pi. Bovendien duurt het soms lang voor de bootcode van een time-out is hersteld. Hoe meer computers er op je netwerk hangen, hoe sneller de Pi ontwaakt door een willekeurig netwerkpakket. Verder geldt hetzelfde als bij usb: je moet eerst je firmware upgraden. En op een Raspberry Pi 1, 2 of Zero kun je experimentele bootcode op de sd-kaart installeren.

11 Client en server

Om een Pi op te starten vanaf het netwerk, heb je een server nodig. Die server biedt het bestandssysteem met Raspbian aan een of meerdere Pi’s aan, die het bestandssysteem via het netwerk downloaden en ervan opstarten. Dat heeft heel wat voordelen. Een Pi met klassieke opstartmodus die bijvoorbeeld niet correct is uitgeschakeld, kan met een corrupte sd-kaart te maken krijgen en niet meer opstarten. Download je het bestandssysteem via het netwerk, dan kan dat probleem niet voorkomen. Bovendien kun je hetzelfde bestandssysteem delen met meerdere Pi’s: één keer upgraden is dan voldoende.

©PXimport

12 Client en bestandssysteem prepareren

Op de client installeer je Raspbian, upgrade je de firmware en schakel je de usb-modus in (zie stappen 3 en 4). Haal de sd-kaart (met een capaciteit van minimaal 16 GB) uit de client. Als server gebruiken we ook een Pi met Raspbian. Steek de sd-kaart in de server en start die op. Voer sudo raspi-config uit en breid het rootbestandssysteem uit zodat het de hele sd-kaart inneemt. Herstart de Pi en installeer het programma rsync met sudo apt-get install rsync. Maak daarna een nieuwe directory aan met sudo mkdir -p /nfs/client1. Kopieer je volledige Raspbian-systeem naar die directory met sudo rsync -xa --progress --exclude /nfs / /nfs/client1.

13 Statisch netwerk

Voer daarna stap 7 uit, maar met cd /nfs/client1 in plaats van cd /mnt/usb. Voer daarna stap 8 uit, maar voordat je de chroot verlaat, typ je nano /etc/rc.local en voeg je voor de regel met exit 0 de regel /etc/init.d/ssh start toe. Vraag daarna (als je de chroot hebt verlaten) het adres van je gateway op met ip route | grep default | awk '{print $3}' en voer ip -4 addr show dev eth0 | grep inet uit. Na inet krijg je het ip-adres van je server te zien en na brd het broadcastadres van je netwerk.

14 Netwerkaanpassingen

Voer sudo nano /etc/network/interfaces uit en vervang iface eth0 inet manual door iface eth0 inet static. Voeg voor die regel auto eth0 toe en erna address IPADRES, netmask 255.255.255.0 en gateway GATEWAY, met uiteraard de juiste ip-adressen. Schakel de dhcp-client uit met sudo systemctl disable dhcpcd, schakel het standaard netwerk in met sudo systemctl enable networking en herstart met sudo reboot. Voeg daarna het adres van je gateway, die ook je dns-server is, toe aan /etc/resolv.conf. Dat doe je met de opdracht echo "nameserver GATEWAY" | sudo tee /etc/resolv.conf, waarbij je uiteraard het juiste ip-adres invult. Maak het bestand daarna onveranderlijk met sudo chattr +i /etc/resolv.conf.

©PXimport

15 TFTP

Installeer daarna een dhcp-server: sudo apt-get install dnsmasq. Voer dan sudo rm /etc/resolvconf/update.d/dnsmasq uit. Nu moeten we ervoor zorgen dat de dhcp-server het bestandssysteem aan de clients doorstuurt. Voer sudo nano /etc/dnsmasq.conf uit en voeg de volgende regels bovenaan het bestand toe: port=0, dhcp-range=BROADCAST,proxy (met in plaats van BROADCAST je broadcastadres), log-dhcp, enable-tftp, tftp-root=/tftpboot en pxe-service=0, Raspberry Pi Boot". Sla het bestand op met Ctrl+O en sluit nano af met Ctrl+X. Maak de tftp-directory aan met sudo mkdir /tftpboot en geef die de juiste gebruikersrechten met sudo chmod 777 /tftpboot. Schakel dnsmasq in met sudo systemctl enable dnsmasq.

©PXimport

16 NFS-server

Kopieer het bootbestandssysteem met cp -r /boot/* /tftpboot. Het rootbestandssysteem hebben we eerder al gekopieerd, maar moeten we nog beschikbaar stellen. Installeer een nfs-server met sudo apt-get install nfs-kernel-server. Exporteer nu het rootbestandssysteem met echo "/nfs/client1 *(rw,sync,no_subtree_check,no_root_squash)" | sudo tee -a /etc/exports. Activeer en herstart rpcbind met sudo systemctl enable rpcbind en sudo systemctl restart rpcbind en doe hetzelfde met de nfs-server: sudo systemctl enable nfs-kernel-server en sudo systemctl restart nfs-kernel-server. Voer dan nano /tftpboot/cmdline.txt uit en vervang de configuratie vanaf root= door root=/dev/nfs nfsroot=IPADRES:/nfs/client1 rw ip=dhcp elevator=deadline rootwait.

©PXimport

17 Client opstarten

Voer nu sudo nano /nfs/client1/etc/fstab uit en verwijder de regels met /dev/mmcblkp1 en /dev/mmcblkp2. Alleen de regel met het proc-bestandssysteem mag blijven staan. Sla je wijzigingen op met Ctrl+O en sluit nano af met Ctrl+X. Herstart je server met sudo reboot. Zodra dat is gebeurd, verbind je de client met het netwerk en sluit je de stroomkabel aan. Na ongeveer tien seconden zouden de ledjes op het bordje moeten aangaan. Als alles goed gaat, start je Pi nu op van de kernel in /tftpboot op je server en koppelt die daarna ook het bestandssysteem in /nfs/client1 op je server aan.

©PXimport

18 Troubleshooting

Als je client na een minuutje of zo nog niet online is, installeer dan op de server tcpdump met sudo apt-get install tcpdump en start het programma om te kijken of je een dhcp-pakketje van de client te zien krijgt: sudo tcpdump -i eth0 port bootpc. Als je de client opstart, zou je op de server de boodschap DHCP/BOOTP, Request from ... moeten zien. Lukt dat al, sluit het programma dan af met Ctrl+C en kijk met tail -f /var/log/daemon.log naar foutmeldingen. Overigens kun je tftp ook gebruiken als je al een dhcp-server hebt draaien. Verwijder dan in /etc/dnsmasq.conf de regel die begint met dhcp-range= en voer het ip-adres van je server in de instellingen van je router in bij TFTP-server.

©PXimport

▼ Volgende artikel
Waar voor je geld: 5 betaalbare smartphones voor minder dan 300 euro
Huis

Waar voor je geld: 5 betaalbare smartphones voor minder dan 300 euro

In de rubriek Waar voor je geld gaan we op zoek naar producten waar je niet de hoofdprijs voor betaalt. Een aantal keer per week geven we je een overzicht van deze producten. Dit keer: vijf moderne smartphones die voor minder dan 300 euro in de winkel liggen.

Een nieuwe smartphone hoeft niet duur te zijn. Wie goed zoekt, vindt voor minder dan 300 euro verrassend complete toestellen met scherpe schermen, snelle hardware en degelijke camera’s. In dit overzicht vind je vijf recente smartphones die binnen dit budget vallen. Ze bieden elk hun eigen balans tussen prestaties, opslagruimte en accuduur. De één blinkt uit in schermkwaliteit, de ander juist in snelheid of camera-opties. Hieronder lees je wat je van elk toestel kunt verwachten, zonder poespas of verkooppraatjes.

Samsung Galaxy A56

Met de Galaxy A56 richt Samsung zich op gebruikers die een groot scherm en snelle 5G-connectiviteit willen zonder de prijs van een topmodel. Dit toestel heeft een 6,7-inch Super AMOLED-scherm met een resolutie van 1080 × 2340 pixels. Binnenin draait een Samsung Exynos-processor met 8 GB werkgeheugen en 128 GB opslag, uitbreidbaar via een geheugenkaart. De hoofdcamera heeft een resolutie van 50 megapixel, aangevuld met ultragroothoek- en dieptesensoren. De batterij van 5000 mAh ondersteunt 25 W snelladen. Het toestel werkt met Android 14 en biedt ondersteuning voor dual-sim en 5G-netwerken.

Energy Label B
Specificaties

Schermgrootte: 6,7 inch
Soort scherm: Super AMOLED
Werking op volle accu:
44u34min
Aantal megapixels:
50
Opslag:
128 GB

OPPO Reno 12 5G

De Reno 12 heeft een afgerond OLED-scherm van 6,7 inch met een verversingssnelheid van 120 Hz. Het toestel draait op de MediaTek Dimensity 7300-processor met 12 GB RAM en 256 GB opslagruimte. De hoofdcamera telt 50 megapixel en wordt bijgestaan door een ultragroothoek- en dieptecamera. De batterij heeft een capaciteit van 5000 mAh en ondersteunt 80 W snelladen via USB-C. Deze telefoon draait op Android 14 met ColorOS. Het toestel ondersteunt 5G, dual-sim en Wi-Fi 6, en beschikt over een vingerafdrukscanner onder het scherm.

Energy Label F
Specificaties

Schermgrootte: 6,7 inch
Soort scherm:
OLED
Werking op volle accu:
niet opgegeven
Aantal megapixels:
50 MP
Opslag:
256 GB

Motorola Edge 50 Neo

De Motorola Edge 50 Neo beschikt over een 6,55-inch P-OLED-display met een resolutie van 2400 × 1080 pixels en een verversingssnelheid van 120 Hz. Binnenin zit de Qualcomm Snapdragon 7s Gen 2, gekoppeld aan 12 GB RAM en 512 GB interne opslag. De hoofdcamera heeft een 50-megapixelsensor met optische beeldstabilisatie, de tweede lens is een 13-megapixel ultragroothoek. De batterij heeft een capaciteit van 5000 mAh en ondersteunt 68 W snelladen. De telefoon draait op Android 14 en heeft 5G, NFC en dual-sim.

Energy Label A
Specificaties

Schermgrootte: 6,5 inch
Soort scherm: P-OLED
Werking op volle accu:
50u44m
Aantal megapixels:
50 MP
Opslag:
512 GB

Samsung Galaxy A16

De Galaxy A16 is een toestel met een 6,5-inch PLS-LCD-scherm met een resolutie van 1600 × 720 pixels. De telefoon werkt met de MediaTek Helio G85-processor en 4 GB werkgeheugen, met 128 GB opslag. De camera achterop bestaat uit drie lenzen, waarvan de hoofdcamera 50 megapixel heeft. De batterij van 5000 mAh ondersteunt 15 W snelladen. Het toestel draait op Android 14 met One UI. De telefoon heeft een 3,5-mm-aansluiting en ruimte voor twee simkaarten.

Energy Label B
Specificaties

Schermgrootte: 6,5 inch
Soort scherm: LCD
Werking op volle accu:
43u30m
Aantal megapixels:
50 MP
Opslag:
128 GB

Xiaomi Redmi Note 14 5G

De Redmi Note 14 5G heeft een 6,6-inch AMOLED-scherm met een verversingssnelheid van 120 Hz. Binnenin zit de Snapdragon 4 Gen 2-chip, samen met 8 GB RAM en 256 GB opslagruimte. De hoofdcamera aan de achterkant heeft 108 megapixel, terwijl de frontcamera 16 megapixel levert. De batterij van 5000 mAh ondersteunt 33 W snelladen via USB-C. Het toestel biedt ondersteuning voor 5G, Bluetooth 5.3, NFC en een infraroodzender. Android 14 met MIUI vormt de softwarebasis.

Energy Label D
Specificaties

Schermgrootte: 6,6 inch
Soort scherm:
AMOLED
Werking op volle accu:
38u56m
Aantal megapixels:
108 MP
Opslag:
256 GB

▼ Volgende artikel
LG komt met 6K-monitor
Huis

LG komt met 6K-monitor

LG heeft een nieuwe monitor aangekondigd voor creatieve professionals: de UltraFine evo 6K (model 32U990A). Dit scherm valt op als de eerste 6K-monitor met Thunderbolt 5-ondersteuning en richt zich op gebruikers die werken met zware videoprojecten, grafisch ontwerp of andere veeleisende taken.

De 32U990A heeft een resolutie van 6.144 bij 3.456 pixels en een pixeldichtheid van 224 PPI. Dat zorgt voor bijzonder scherpe tekst en een hoge detailweergave. Volgens LG is het scherm in de fabriek gekalibreerd voor consistente kleuren binnen macOS. De monitor dekt bijna de volledige DCI-P3- en Adobe RGB-kleurruimte, wat hem geschikt maakt voor foto- en videobewerking en drukwerk. Ook voldoet hij aan de VESA DisplayHDR 600-standaard, wat zorgt voor een goede helderheid en kleurechtheid. Daarnaast heeft LG een Studio Mode toegevoegd, met drie kleurprofielen die speciaal zijn bedoeld voor Mac-gebruikers.

De UltraFine evo 6K biedt 2,5 keer zoveel pixels als een 4K-scherm, en wie twee van deze monitoren naast elkaar gebruikt, krijgt bijna vijf keer zoveel werkruimte. Via Thunderbolt 5 kunnen gebruikers bovendien eenvoudig meerdere schermen koppelen. De monitor kan ook dienen als hub, met ingebouwde KVM-switch en diverse aansluitingen, waarmee snel tussen Mac- en Windows-systemen kan worden gewisseld.

Dankzij de Thunderbolt 5-ondersteuning haalt de monitor overdrachtssnelheden tot 120 Gbps, drie keer sneller dan Thunderbolt 4. Dat maakt hem geschikt voor het werken met zware 8K-RAW-bestanden en real-time 4K-rendering. Het ontwerp is strak en vrijwel randloos, en het scherm kan in hoogte worden versteld of verticaal worden gedraaid – handig voor wie veel met verticale content werkt. Er zijn minder kabels nodig, wat zorgt voor een opgeruimde werkplek.

“Nu veel videomakers meerdere projecten tegelijk beheren, is de behoefte aan ultrahoge resolutie, nauwkeurige kleuren en snelle verbindingen groter dan ooit,” zegt YS Lee, hoofd van de IT-divisie van LG Media Entertainment Solution Company. “Met de UltraFine evo 6K bieden we een toekomstbestendig scherm van compromisloze kwaliteit, waarmee professionals sneller, slimmer en beter kunnen werken.”

Beschikbaarheid en prijzen

De LG UltraFine evo 6K-monitor wordt in oktober in Europa en de VS uitgebracht, maar een adviesprijs is nog niet bekendgemaakt.