De Raspberry Pi – een klein, goedkoop en vernuftig apparaatje – met tal van mogelijkheden. Feitelijk een minicomputer draaiend op Linux. Gisteren vijlzelde ik in korte tijd weer een hoop basis-kennis m.b.t. Linux op. Ik ben verre van een Linux guru namelijk.
Het leuke van de Raspberry Pi, in ieder geval het gene wat mij het meest heeft getriggered, is het feit dat je eenvoudig apparaten en elektronica moet kunnen aan- en uitzetten. Op de printplaat zitten namelijk een aantal connectors, waaronder ééntje met – in de uitvoering die ik heb – 40 pinnetjes. Middels die pinnetjes is het mogelijk om signalen op te vangen of juist uit te sturen. En dat moet je dan met een beetje moeite allemaal redelijk eenvoudig zelf kunnen programmeren.
En wat ga je er dan precies mee doen? En wat is het nut daar dan van? Ik hoor het je denken. Nou, dat weet ik ook allemaal nog niet, maar het feit dat dat moet kunnen is voor al genoeg om wat hobby-tijd hieraan te spenderen 😉
Feitelijk zijn er twee stappen die ik gisteren wist te nemen; het installeren van de nodige software op de Raspberry Pi en het aansluiten van een multimeter op de pinnen. Ik begin hier met de installatie van de software en de nodige configuratie-aanpassingen.
WiringPi
Het aansturen van die verschillende pinnen blijkt eenvoudig mogelijk gemaakt te worden door het installeren van een software-bibliotheek; WiringPi (bron: http://wiringpi.com/download-and-install/). Het installeren van die software ging bij mij opvallend eenvoudig moet ik zeggen via het commando:
git clone git://git.drogon.net/wiringPi
Dit commando geef je of rechtstreeks in het console als je niet opstart met een grafische Desktop-interface, of je opent in je interface in een terminal. Heb je een standaard installatie van Raspbian (zoals ik ook heb) dan moet je hiervoor de LXTerminal starten.
De installatie start nu automatisch en rond zichzelf als het goed is ook netjes af. Zo simpel zou het moeten gaan en zo simpel ging het bij mij dan ook. Ik was er ook verbaasd over.
Om te testen of de library het ook echt doet geef je het commando:
gpio -v
In mijn geval krijg ik dan onderstaande terug:
gpio version: 2.26
Copyright (c) 2012-2015 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
Raspberry Pi Details:
Type: Model B+, Revision: 1.2, Memory: 512MB, Maker: Sony
Je krijgt dus de nodige sofware informatie terug, maar ook handig (mocht je dat zelf niet direct meer weten), je krijgt informatie te zien over het type Raspberry Pi dat je gebruikt. Er zijn namelijk een aantal verschillende versies in omloop. En afhankelijk van de versie, heb je verschillende layouts van de eerder genoemde pootjes op de printplaat.
Maar daarover later meer…
Apache webserver + PHP5
Nu we toch bezig zijn met de installatie van software, is het handig om gelijk de webserver te installeren zoals beschreven in deze turorial: http://www.instructables.com/id/Simple… Waarom? Omdat het daarmee weer mogelijk wordt om via een webinterface apparaten aan en uit te zetten.
Wonderbaarlijk genoeg ging ook deze installatie kinderlijk eenvoudig met dit commando:
sudo apt-get install apache2 php5 libapache2-mod-php5
Hiermee installeer je de Apache webserver met de PHP5 programmeertaal.
Configuratie-aanpassingen
Dan heb ik nog een drietal configuratie-trucs uitgehaald die ik specifiek wilde om e.e.a. voor mijzelf zo eenvoudig mogelijk te maken;
- Opstarten zonder Desktop-interface
Bij de standaard installatie heb ik aangegeven dat de Raspberry Pi altijd met de grafische Desktop-interface (lijkt op Windows) moet opstarten. Deze interface heeft echter twee kleine nadelen; het opstarten duurt hierdoor langer en er is meer geheugen in gebruik. Dat laatste heb je niet zo snel last van. Maar waarom iets laten opstarten wat je toch niet gebruikt?
Nou heeft de Raspberry Pi een hele mooie configuratie tool aan boord, die krijg je bij de installatie ook heel mooi voorgeschoteld, maar daarna kan je die niet meer zo 1, 2, 3 terug vinden. Om deze weer op te starten geef je het volgende commando:
sudo raspi-config
De “sudo” staat hier voor Superuser Do (heb ik ook moeten Googlen) en wil zoveel zeggen als dat je met admin-rechten het commando “raspi-config” wil opstarten. Die admin rechten heb je nodig omdat je e.e.a. aan de basis configuratie wil veranderen, niet zo heel gek dus.
In deze tool kan je uiteindelijk onder optie 3 kiezen voor de mogelijkheid om op te starten in de “Console Text console, requiring login (default)”.
De volgende keer dat je opstart, wordt de Desktop interface niet meer geladen en ben je verplicht om in te loggen met de standaard gebruikersnaam (pi) en het standaard wachtwoord (raspberry). Wil je vervolgens de Desktop weer opstarten, dan geef je het commando
startx
- Mogelijkheid om in te loggen met SSH
Een andere handige optie kan je ook in deze tool aanzetten. Voor wie – net als ik – niet per sé een apart beeldscherm + muis + toestenbord wilt hoeven aansluiten, is het mogelijk om via SSH in te loggen op de Raspberry Pi.
In de configuratie tool zit dit verborgen onder optie 8 (Advanced options). Hier kies je vervolgens voor optie A4 en zet je SSH aan.
Met software als bijvoorbeeld Putty, kan je nu vanaf je normale computer inloggen op je Raspberry Pi. Ook hier gelden weer de standaard username (pi) en wachtwoord (raspberry).
- Opstarten zonder inloggen
Het laatste van stap 1 – bij het opstarten verplicht moeten inloggen met gebruikersnaam en wachtwoord – is dus precies iets wat ik niet wil. Ja is heel erg veilig, dat begrijp ik, maar als ik de Raspberry Pi in de toekomst bijvoorbeeld in de meterkast wil plaatsen, dan wil ik natuurlijk niet een beeldscherm + toetsenbord nodig hebben om in te kunnen loggen.
Een klein beetje Googlen leerde mij dat er een truc is om dit af te vangen (bron: http://www.opentechguides.com). Om te beginnen geef je het commando:
sudo nano /etc/inittab
Nano is een text-editor en om het bestand inittab te mogen aanpassen hebben we blijkbaar admin-rechten nodig. Het bestand bevat eigenlijk niet zo heel veel regels text (ik had veel meer verwacht in ieder geval). Ga in ieder geval op zoek naar deze regel:
1:2345:respawn:/sbin/getty 115200 tty1
Van deze regel maak je commentaar (zodat deze dus niet meer uitgevoerd wordt bij het opstarten) door er een # voor te zetten. Dus deze regel komt er dan zo uit te zien:
# 1:2345:respawn:/sbin/getty 115200 tty1
Vervolgens geef je achter aan deze regel een enter en zet je op de nieuwe lege regel het volgende:
1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1
Uiteraard is het meer dan belangrijk dat je hier geen typfout maakt. Ik weet niet precies wat er gebeurd als je hier wel een typfout maakt (voor het gemak heb ik het niet uitgeprobeerd), maar ik sluit niet uit dat je volledig in de herstelmodus moet om vervolgens bovenaan volledig opnieuw te proberen.
Even extra checken voordat je opslaat en afsluit dus.
Dus waar sta ik nu?
Ik heb nu het Raspian operating system geïnstalleerd, WiringPi is geinstalleerd (waarmee het mogelijk is om de verschillende aansluitpinnetjes aan te sturen) en ik heb de Apache webserver geïnstalleerd met PHP5.
Daarnaast heb ik geconfigureerd dat de Raspberry standaard opstart in de Text Console (dus zonder de Deskop-interface), en dat ie volledig opstart zonder dat ik eerst hoef in te loggen. Daarnaast heb ik ervoor gezorgd dat ik op afstand kan inloggen op de Text Console met SSH, zodat ik niet per sé een apart beeldscherm + toestenbord + muis erop aan hoef te sluiten.