Raspberry PI

Via deze pagina’s wordt de achterliggende techniek uitgelegd. Dit kan varieren van tips en trucs tot images of scripts.

Opstarten van de Raspberry Pi

De RPi heeft geen BIOS en alles wat op het scherm verschijnt nadat de power is aangesloten is als er een juiste startup heeft plaats gevonden! Het gekleurde splash-screen wordt getoond nadat de GPU firmware, start.elf, is gestart. Een paar tellen later wordt deze vervangen door het Linux console. Mocht het gekleurde scherm blijven, dan is er iets mis met de kernel.img (of niet gevonden)

Dit laatste proces vraagt iets meer stroom van de power adapter en mocht er op dit punt telkens een reboot plaatsvinden, controleer dan of er genoeg stroom geleverd kan worden door de power adapter.

Als de RPi wel een bootimage op de SD card heeft gevonden en er kan van worden gestart, zal allerlei informatie op het scherm getoond worden totdat de prompt verschijnt.

Runlevels

De RPi bevindt zich dan in een zogenaamd runlevel. Deze kan een waarde hebben van 0 t/m 6:

  • 0 – is Halt. De RPi zal in een halt-status zijn bij runlevel 0.
  • 1 – is single-user Mode voor ‘administrative tasks’ voordat ‘non-essential services’ gestart worden.
  • 2 – is de eerste multi-user mode runlevel en in dit runlevel worden nog meerdere services gestart, meestal inclusief network services.
  • 3 – is een multi-user mode waarin ‘headless servers’ runnen. Alle essentiële en non-essentiële services zoals Apache HTTP Server zijn gestart.
  • 4 – is een speciale multi-user mode runlevel die uitsluitend voor specifieke situaties gebruikt wordt.
  • 5 – is wanneer de GUI desktops geladen zijn, zoals Gnome of KDE.
  • 6 – is de Reboot runlevel. het OS zal opnieuw starten als runlevel 6 wordt bereikt.

De huidige runlevel waarde kan gecontroleerd worden met het commando ‘runlevel‘.

Een ander runlevel kan geïnitieerd worden met het commando ‘init x‘ waarbij x dan het nummer van de runlevel is, bijvoorbeeld ‘init 6′ om opnieuw op te starten.

Elk runlevel heeft een directory in /etc dat begint met rc, gevolgd door het runlevelnummer:

/etc/rc0.d
/etc/rc1.d
/etc/rc2.d
/etc/rc3.d
/etc/rc4.d
/etc/rc5.d

Elke directory bevat control files voor het specifieke runlevel die de services starten. Indien een service wordt toegevoegd zal een control-file voor het bewuste runlevel toegevoegd worden. Informatie vind je in de README file in elke directory:

The scripts in this directory are executed each time the system enters this runlevel.
 The scripts are all symbolic links whose targets are located in /etc/init.d/ 
 
To disable a service in this runlevel, rename its script in this directory so that the new name begins with a 'K'
 and a two-digit number, and run 'update-rc.d script defaults' to reorder the scripts according to dependencies. 

A warning about the current runlevels being enabled not matching the LSB header in the init.d script will be
 printed. 

To re-enable the service, rename the script back to its original name beginning with 'S' and run 
 update-rc.d again.

Services

Het beheren van de services kan gedaan worden met ‘update.rc‘. We kunnen hiermee starten, stoppen, herstarten en de status opvragen van een service waarbij de service in het juiste runlevel ingesteld moet worden. Met het commando ‘service –status-all‘ kan een overzicht getoond worden en:

[-] = de service start niet bij een (re)boot
[+] = de service start wel bij een (re)boot

Starten van een service

Het starten van een service wordt gedaan met het commando ‘service‘ gevolgd door de naam van de service en het woord ‘start‘:

service mpd start

Stoppen van een service

Het stoppen van een service wordt gedaan met het commando ‘service‘ gevolgd door de naam van de service en het woord ‘stop‘:

service mpd start

Controleren van een service

Het status van een service wordt gecontroleerd met het commando ‘service‘ gevolgd door de naam van de service en het woord ‘status‘:

service mpd status

Verwijderen van een service

Een service kan verwijderd worden met het commando ‘update-rc.d -f‘ gevolgd door de naam van de service en het woord ‘remove‘:

update-rc.d -f mpd remove

Toevoegen van een service

Een service kan toegevoegd worden met het commando ‘update-rc.d ‘ gevolgd door de naam van de service en het runlevel of het woord ‘defaults‘ om de standaard runlevels te gebruiken:

update-rc.d mpd defaults