ID.nl logo
Zo start je je Raspberry Pi vanaf usb of je netwerk
© PXimport
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 alles-in-één laserprinters voor een mooie prijs
© Tim Allen
Huis

Waar voor je geld: 5 alles-in-één laserprinters voor een mooie prijs

Bij ID.nl zijn we gek op producten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we daarom binnen een bepaald thema naar zulke deals. Een all-in-one-printer is een handig apparaat voor het scannen, kopiëren en printen van documenten en foto's. De allerbeste afdrukkwaliteit krijg je met een laserprinter. Wij vonden vijf betaalbare modellen voor je.

Een laserprinter maakt gebruik van toner in plaats van inkt om afdrukken te produceren. Toner is een fijn poeder dat met hoge temperaturen op het papier wordt gesmolten. Dit proces zorgt ervoor dat je met grote toners kunt printen, wat betekent dat je langere tijd kunt blijven afdrukken zonder de toner te hoeven vervangen. Laserprinters zijn vaak snel en efficiënt, waardoor ze uitstekend zijn voor gebruik op kantoor. Maar ook als je thuis veel print, bijvoorbeeld als zzp'er, kan een laserprinter uitkomst bieden.

HP Color Laser 179fnw

De HP Color Laser MFP 179fnw is een van de kleinste kleurenlaserprinters in zijn klasse en is daardoor ideaal voor thuisgebruik en plekken waar niet veel plek voor een printer is. Met functies zoals printen, scannen, kopiëren en zelfs nog faxen biedt deze 4-in-1 printer een hoop veelzijdigheid. De afdruksnelheid bedraagt tot 18 pagina's per minuut in zwart-wit en 4 ppm in kleur, met een resolutie van 600 x 600 dpi.

Dankzij de automatische documentinvoer (ADF) voor 40 pagina's en wifi-verbinding is deze printer gebruiksvriendelijk en multi-inzetbaar. Hoewel de afdruksnelheid lager ligt dan bij sommige concurrenten, is zijn compacte formaat juist een pluspunt.

Brother DCP 1610W

De Brother DCP-1610W is een compacte zwart-wit laserprinter die printen, kopiëren en scannen combineert. Met een afdruksnelheid van 20 pagina's per minuut en een resolutie van 2400 x 600 dpi levert hij haarscherpe resultaten. Dankzij wifi-connectiviteit kunnen meerdere gebruikers eenvoudig draadloos printen.

De papierlade biedt plaats aan 150 vellen en het apparaat is voorzien van anti-jam-technologie om papierstoringen tot een minimum te beperken. In vergelijking met de HP Color Laser MFP 179fnw biedt deze printer geen kleurafdrukken, maar hij is wel een stuk sneller met zijn afdrukken.

HP Laserjet Pro 2Z622

De HP LaserJet Pro 2Z622 is geschikt voor onder meer kantooromgevingen. Met afdruksnelheden tot 42 pagina's per minuut en functies zoals dubbelzijdig printen, scannen, kopiëren en faxen is dit een lekker veelzijdige 4-in-1-laserprinter. Het apparaat ondersteunt zowel bekabelde als draadloze netwerken en biedt geavanceerde beveiligingsfuncties.

Canon i-SENSYS MF272wd

De Canon i-SENSYS MF272dw is een monochrome laserprinter en drukt af met en snelheid van 29 pagina's per minuut. Met een resolutie van 2400 x 600 dpi levert hij snelle en scherpe resultaten. Dankzij automatische dubbelzijdige afdrukken, wifi- en ethernetverbinding is hij veelzijdig inzetbaar.

In vergelijking met de Brother DCP-1610W levert deze Canon i-SENSYS MF272dw snellere prestaties en meer connectiviteitsopties, hoewel hij geen kleurendruk ondersteunt; dan moet je toch echt bij de HP Color Laser MFP 179fnw zijn.

Xerox B225 A4

De Xerox B225 is een zwart-wit all-in-one-laserprinter die printen, kopiëren en scannen combineert. Met een afdruksnelheid van maar liefst 34 pagina's per minuut en een eerste afdruktijd van slechts 6,4 seconden is hij goed in te zetten als je veel en vaak print. De printer beschikt over automatische dubbelzijdige afdrukken, een papierlade voor 250 vellen en kan via wifi of een vaste netwerkverbinding met je thuisnetwerk worden verbonden.

▼ Volgende artikel
Garmin kondigt Instinct 3 - Tactical Edition aan
Gezond leven

Garmin kondigt Instinct 3 - Tactical Edition aan

Garmin heeft de Instinct 3 - Tactical Edition aangekondigd, een nieuwe serie tactische smartwatches die verkrijgbaar zijn met een AMOLED-scherm of een display op zonne-energie.

De smartwatches zijn volgens Garmin ontworpen voor gebruik in uitdagende omgevingen en voorzien van een met metaal versterkte rand voor extra duurzaamheid, een rucking-activiteit voor training en ingebouwde LED-verlichting op zowel de 45mm als 50mm modellen. De batterijduur van het AMOLED-model kan oplopen tot 24 dagen in smartwatchmodus, terwijl de modellen op zonne-energie onder ideale omstandigheden onbeperkt kunnen functioneren.

Robuust ontwerp

De Instinct 3 - Tactical Edition is voorzien van een stevige constructie met een metalen versterkte rand, een behuizing van met vezels versterkt polymeer en een krasbestendig scherm. De smartwatches zijn gebouwd volgens de MIL-STD 810 norm voor thermische en schokbestendigheid en zijn waterdicht tot 100 meter. De ingebouwde zaklamp biedt variabele lichtsterktes, een groene modus om het natuurlijke nachtzicht te behouden en een stroboscoopmodus voor locatiebepaling in moeilijk terrein. Voor nachtelijk gebruik is er een NVG-modus (Night Vision Goggle) die het scherm dimt tot een niveau dat functioneel blijft voor de gebruiker maar vrijwel onzichtbaar is voor anderen.

Uitgebreide functionaliteit

De Instinct 3 - Tactical Edition beschikt over diverse speciale functies, waaronder rucking-activiteit waarmee gebruikers het gewicht van hun bepakking kunnen invoeren voor beter inzicht in hun fysieke inspanning. Deze functie kan ook worden gebruikt bij activiteiten zoals trailrunning, wandelen en hiken. Alle modellen bevatten de Applied Ballistics solver en zijn compatibel met de Applied Ballistics Quantum app.

De smartwatches zijn verkrijgbaar in twee formaten: 45mm of 50mm met display op zonne-energie, en een 50mm-variant met AMOLED-scherm. De zonne-efficiëntie is verbeterd met een grotere, efficiëntere zonnelens. Vergeleken met het vorige model heeft het nieuwe 50mm model op zonne-energie een vijf keer langere batterijduur in GPS-modus bij opladen via zonlicht.

De smartwatch biedt multi-band GPS met SatIQ technologie voor nauwkeurige positiebepaling met geoptimaliseerde batterijduur. Voor gezondheidsmonitoring houdt de Instinct 3 stappen, hartslag, slaap, zuurstofsaturatie via de pols, hartslagvariabiliteit en meer bij.

Gebruikers ontvangen e-mails, sms'jes en meldingen direct op het horloge wanneer dit is gekoppeld met een compatibele Apple of Android smartphone.

Navigatie en veiligheid

Gebruikers kunnen navigeren met een 3-assig kompas, barometrische hoogtemeter en multi-band GPS. De Instinct 3 kan worden gekoppeld met de Garmin Explore App voor gedetailleerde kaarten, waypoints en routes.

Voor gebruik op gevoelige locaties biedt de Stealth Mode de mogelijkheid om draadloze communicatie uit te schakelen terwijl het horloge nog steeds activiteitsgegevens verzamelt zonder locatiegegevens op te slaan. De Kill Switch kan alle gebruikersgeheugen wissen als de veiligheid in het geding komt. Andere functies zijn weergave van twee posities tegelijkertijd op één scherm, Jumpmaster en geprojecteerde waypoints.

Trainingsfuncties

De Instinct 3 - Tactical Edition bevat sportapps voor rucken, wandelen, hardlopen, klimmen, jagen, skiën en meer. De TracBack-functie helpt bij het uitstippelen van een route terug naar het beginpunt. Naast buitensportapps bevat de smartwatch ook apps voor HIIT, cardio, hardlopen op binnen- en buitenbanen, basketbal en andere activiteiten.

Gebruikers kunnen trainingsplannen volgen met Garmin Coach voor hardlopen en fietsen, of workouts maken uit meer dan 1.600 oefeningen in de Garmin Connect app. De smartwatch volgt ook intensiteitsminuten, VO2 max en hersteltijd.

Veiligheidsfuncties zoals incidentdetectie en Assistance kunnen een bericht met de GPS-locatie van de gebruiker naar contactpersonen sturen in noodsituaties, wanneer het horloge gekoppeld is met een smartphone.

Beschikbaarheid en prijzen

Het Instinct 3 - Tactical Edition AMOLED-model is vanaf 30 april te bestellen op Garmin.com voor een adviesprijs van 599,99 euro. De modellen op zonne-energie beginnen bij een adviesprijs van 499,99 euro.

Bekijk andere Garmin-producten op Kieskeurig.nl: