De BeagleBone Black
- May 9, 2017
- 0
De BeagleBone Black is een betaalbaar singelboard-computertje met veel uitbreidingsmogelijkheden. Het hardware design is volledig open source en is gericht op Linux als besturingssysteem.
Wanneer we het over een Linux-server hebben, dan denk je al snel aan een beest van een machine, met vijf of meer harde schijven, veel geheugen en meerdere krachtige processoren. Maar voor veel toepassingen is dat helemaal niet nodig en spelen andere aspecten een rol. Omdat een server 24×7 aan staat, is een laag energieverbruik ook belangrijk. Vaak heb je thuis geen serverruimte en daarom is een stil systeem beter. Een embedded systeem kan soms een goede oplossing zijn. Een Raspberry Pi is een vaak gekozen oplossing, maar er bestaan veel alternatieven. Een van die alternatieven is de BeagleBone Black. Dit is een open source singleboard-computer op creditcard-formaat die een enthousiaste community van gebruikers kent.
De BeagleBone Black is een bordje met een volledig open source hardware design. Iedereen kan met behulp van dit design de printplaat maken en de componenten daar op solderen. Wij kochten voor iets minder dan € 60,- een BeagleBone Black revision C, gebouwd door Element 14. Het bordje wordt afgeleverd met Debian voor geïnstalleerd, je kunt dus meteen aan de slag.
De BeagleBone Black bevat een 1 GHz Cortex-A8 Arm-processor, 512 Mb RAM, 4 Gb eMMC flash geheugen, een netwerkaansluiting, USB cliënt en -host, microSD kaart-slot, Micro HDMI en twee 46-pins I/O connectors. Het bordje vraagt een 5 Watt voeding en kan zowel van het interne eMMC als van de externe microSD booten. Er kunnen verschillende Linux distributies op draaien, of bijvoorbeeld een Android-poort. Wij willen het als thuis-servertje gaan inzetten.
Uitpakken
In de doos treffen we naast het bordje een USB-kabel aan. We sluiten de BeagleBone Black met deze kabel aan op onze Linux laptop. Meteen worden we getrakteerd op een lichtshow van knipperende blauwe ledjes. Nadat de lichtshow tot bedaren is gekomen, kunnen we een kleine partitie mounten. Hierin staan een aantal bestanden, waaronder START.htm. Die openen we in de browser en we krijgen uitleg over de BeagleBone Black en een linkje naar de webserver op het bordje. Deze verwijst naar 192.168.7.2, dit is blijkbaar het IP-adres van het bordje over de USB-kabel. Met het commando ‘dmesg’ zien we in de meldingen op de laptop een regel met daarin register ‘rndis_host’. Aan het begin van deze regel staat het netwerk-device, bij ons eth1. Met ifconfig eth1 192.168.7.1 geven we de USB-poort van onze laptop in het betreffende netwerksegment een eigen netwerk-adres. We hebben nu een netwerkje over USB en kunnen browsen naar 192.168.7.2. We surfen dan naar de webserver van het bordje. Je kunt nu via een paar buttons de blauwe ledjes op de BeagleBone Black aan of uitzetten of laten knipperen. Leuker is het om met ssh in te loggen: ssh root@192.168.7.2, je kunt inloggen met een leeg wachtwoord.
Met ps aux zien we een hele rits processen draaien, waaronder de Apache webserver, maar ook een grafische desktop met LXDE en Openbox. Waarschijnlijk valt er dus wat te zien op de HDMI-port. Ook zien we dat de ‘echte’ UTP netwerk-interface geen IP-adres heeft. Het bordje wacht op een DHCP-server, maar omdat nog geen netwerkkabel was aangesloten, lukt dat natuurlijk niet.
Beeld
Wanneer straks de BeagleBone Black als servertje draait, is de grafische desktop overbodig. Maar voordat we die killen, is het natuurlijk wel leuk om even rond te snuffelen. Dit kan door een monitor op de micro HDMI-poort aan te sluiten. We zien echter in ps aux dat xrdp draait, dit betekent dat we remote naar de desktop kunnen. Het enige dat we daar voor nodig hebben is een rdp-client, zoals bijvoorbeeld krdc. In /etc/passwd op de BeagleBone Black zien we ook een gebruiker met de naam debian. Deze heeft als default wachtwoord temppwd, we loggen als deze gebruiker met krdc via RDP in op de BeagleBone Black. In het startmenu (zie het screenshot) zien we dat ook nog de Chromium webbrowser aan bord hebben, verder is het menu vrij kaal. We laten de grafische desktop verder voor wat het is, wij willen de BeagleBone Black als servertje inzetten en dan hebben we dit allemaal niet nodig.
Om de machine als server te gebruiken geven we root een wachtwoord. Verder moeten we zorgen dat bij een volgende boot de grafische desktop niet meer gestart wordt. Dit kan met het systemctl disable commando, zoals bijvoorbeeld systemctl disable wpa_supplicant.service. Dit doen we met alle overbodige services, zoals xrdp, lightdm, dbus en dergelijke. In ons netwerk draait een DHCP-server die straks de BeagleBone Black een IP-adres geeft, heb je dat niet dan moet je even de netwerkconfiguratie aanpassen. Nu rebooten we het bordje om die vervolgens als server in te richten.
Eigen server
Wij zagen dat Apache al draait, dus door jouw html-files op de goede plaats te zetten, kun je meteen het bordje als webserver gebruiken. Daarnaast kun je de BeagleBone Black bijvoorbeeld ook inzetten als advertentie blokkerende DNS-server, proxy-server, Git-server, Jabber-server, PXE-server, VPN-server, enz. Installeren van applicaties gaat vaak op de gebruikelijke manier met apt-get. Voordat je het bordje met het internet verbindt, moet dit veilig zijn. Maak voor jezelf een gebruiker aan, verwijderen de gebruiker “debian” en hardt ssh (geen root-toegang, beperk de toegang tot enkele gebruikersnamen en uitsluitend met ssh-key authenticatie). Denk er verder aan om schrijfacties naar het flash-geheugen beperkt te houden door /var/log en dergelijke in tmpfs te mounten. Voor de voeding gebruiken we een USB-adapter.
Capes
De BeagleBone Black heeft meer en/of betere I/O opties, ADC, PWM’s en PRU’s etc. dan de Raspberry Pi en is daardoor veel geschikter voor allerlei elektronica projecten. Dit maakt het bordje in die kringen zo populair, rondom de BeagleBone Black bestaat dan ook een uitgebreide community. Vanuit deze community zijn diverse uitbreidingsbordjes ontwikkeld, deze worden ‘capes’ genoemd. Hiermee kun je tal van toepassingen maken, zoals robotjes, video-walls, navigatiesystemen, domotica-oplossingen, bewakingssystemen enz.
BSD
Wellicht wil je een ander besturingssysteem op je BeagleBone Black. Voor FreeBSD, NetBSD en OpenBSD zijn images beschikbaar. Echter niet voor alle hardwarecomponenten zijn drivers beschikbaar. Bijvoorbeeld geluid en beeld kunnen een probleem opleveren. Omdat het installeren zonder beeld lastig is en het oplossen van problemen daarbij helemaal, is het handig om eerst de seriële console aan de praat te hebben.
De seriële RS232 aansluiting van de BeagleBone Black werkt op 3,3 Volt, verbinden met een 5 of 12 Volt seriële poort heeft fatale gevolgen. Je kunt dit oplossen door een FTDI naar TTL kabel te gebruiken of een seriële USB-F-kabel. Deze laatste kabel heeft aan de ene kant een standaard USB-stekker en aan de andere kant vier losse draadeindjes met elk een connector die je op de bekende IO-pinnetjes kunt drukken. Deze laatste is het meest breed toepasbaar en koop je voor circa € 8,-. Het is handig een dergelijk kabeltje aan te schaffen, zeker wanneer je vaker met dit soort bordjes wilt gaan stoeien. De USB-F-kabel verbind je met drie pinnen, pin 1 is aarde, pin 4 is receive en pin 5 is transmit. In minicom kies je voor 115200 8N1.
De BeagleBone Black is een bordje met fantastisch veel mogelijkheden, zowel voor elektronica knutselaars als voor Linux liefhebbers. Je kunt er veel plezier mee beleven en het prima als lichtgewicht servertje inzetten.