Pi 3B+ als desktop-pc
Raspberry Pi 3B+ in plaats van desktop-pc
Sinds de Raspberry Pi bestaat, beweren de makers dat hij grote en dure desktop-pc's moet kunnen vervangen. De rekenkracht van de Pi steeg gestaag en de ondersteuning in de Linux-kernel werd volwassener. Redenen genoeg eens te kijken of hij als pc-vervanger kan dienen.
Vandaag moet ik wat programmeren, dus start ik de IDE PyCharm. Die doet er een paar seconden over om het project te indexeren, dus start ik parallel daaraan Thunderbird op om snel nog even naar mijn e-mails te kijken. Terwijl het mailprogramma nog contact maakt met de IMAP-server, opent Firefox en vraagt of ik al mijn tabbladen wil herstellen. Natuurlijk! Dan heb ik nog net even de tijd om Telegram te starten, dat als Electron-app de Chromium-engine start. Ongeveer een halve seconde na de muisklik op het pictogram staan alle programma's klaar voor gebruik. En dat dankzij de geraffineerde organisatie van de rekentijd en schijftoegang in Linux.
Terwijl ik mijn e-mails nog doorlees, ontstaat op mijn kantoor een discussie over het feit dat nieuwe software zo pompeus is tegenwoordig. Mijn inbreng daarbij is dat ik net een wachttijd van een schandalige 1,5 seconde moest wachten tot mijn inlogmanager GDM eindelijk eens klaar was. Hoeveel onnodige onzin is die software aan het berekenen dat hij zo lang nodig heeft om mijn wachtwoord te controleren en een desktop op te starten? De knikkende instemming van mijn collega's stimuleert mij om er een schepje bovenop te doen: een smartphone heeft net zoveel kernen als mijn pc … ik zou net zo goed op een Raspberry Pi kunnen werken!
Er kwamen wat sceptische blikken mijn kant op, maar dat hield me niet tegen: met de juiste software zou dat moeten kunnen, en toch zeker met een Raspberry Pi 3B+ met 64-bit, 1 GB RAM en vier kernen op 1,4 GHz?
De vier tests
Het is me duidelijk dat ik me voor een dergelijk avontuur verre moet houden van mijn gebruikelijke computeromgeving, dus vraag ik advies aan een oudgediende in de vorm van Thorsten Leemhuis. Ik leg hem uit dat ik van plan ben van een Raspberry Pi een desktop-pc te maken. Hij kijkt me kritisch aan. Ik probeer hem te overtuigen door te stellen dat de nieuwe Raspberry Pi een nog hogere frequentie heeft en met 64-bit kan werken. Bovendien zou er intussen ook een Mainline-kernel op kunnen draaien.
Thorsten kijkt me wat meewarig aan en vraagt welke distributie ik wil gaan gebruiken. Dat moet denk ik iets met een heel actuele kernel zijn. Arch Linux misschien? Daar heb ik op mijn pc al wat ervaring mee. Hij houdt zijn hooft wat schuin. Blijkbaar heb ik niet meteen wat heel doms gezegd, maar hij zegt wel dat ik zonder Raspbian wel tegen een groot aantal detailproblemen en hindernissen aan zal lopen. Alleen het uitkiezen van een snelle opslagkaart ziet hij al als probleem. Bovendien moet ik dan wat geduld, focus en concentratie opbrengen – en geen al te hoge verwachtingen hebben. Ik kom tot de conclusie dat Thorsten mijn plan niet meteen compleet onzinnig vindt en negeer de rest.
Verwachtingen
Op het bureau er tegenover ga ik te rade bij Lutz Labs, onze specialist op het gebied van flashopslagruimte. Er zijn geheugenkaarten met de A1-standaard, die eigenlijk bedoeld zijn voor een geheugenuitbreiding bij smartphones. Die zouden volgens hem bij een Raspberry Pi ook wat meer IOPS moeten kunnen leveren dan gewone sd-kaarten. Ik bestel een Rasberry Pi 3B+ voor 39 euro en een geheugenkaart van 128 GB voor 38 euro. Daar komt nog een voeding bij die minstens 2,5 ampère kan leveren, voor 10 euro. Ik had natuurlijk ook een compleet starterspakket kunnen kopen, maar de sd-kaarten die daarbij zitten hebben vaak niet genoeg opslagruimte. Het lukt al met al in elk geval om onder de 100 euro te blijven.
Daarna heb ik een 64-bit Arch-image voor de Raspberry Pi gedownload en die op de sd-kaart gezet met Etcher. Toen ik de voeding aansloot, gebeurde er echter niets. Het bleek dat de betreffende image met een 4.14-kernel wel op een Raspberry Pi 3 werkt, maar niet kan booten op een 3B+. Daar heb je een kernel voor nodig met Pispecifieke patches. Die kun je bij een draaiend systeem wel installeren, maar er zijn geen kant-en-klare images voor. Volgens verschillende fora op internet kun je de distributie met 32-bit voor ARMv7 installeren, alle pakketten verwijderen en de 64-bit versies voor ARMv8 daar overheen installeren. Of je boot met een oudere Raspberry Pi 3, installeert de kernel en stopt de sdkaart vervolgens in de nieuwe Pi.
Geduld
De inlogmanager GDM doet er meer dan 20 seconden over om het inlogscherm te tonen. Daarna moet ik nog 20 seconden wachten totdat de desktop verschijnt. De Gnome-shell verschijnt na een druk op de Windows-toets na nog eens tien seconden wachten.
Ik ben geschokt, maar geef nog zeker niet op. Ik kom erachter dat Arch de grafische driver-stack van de Broadcommontwikkelaar Eric Anholt niet automatisch instelt. Bovendien krijgt de VideoCore4 te weinig RAM toegewezen. Ik activeer de driver en pas bij /boot/config aan dat de firmware van VideoCore4 256 MB van het werkgeheugen mag afsnoepen. Na de volgende boot draait de desktop wat soepeler. Er vallen me wel wat witte pixels op, die nogal random op verschillende plekken optreden.
Tijdens de lange wachttijden voel ik even aan de verschillende chips op de printplaat en constateer dat de processor, de usb-controller, het RAM en zelfs de opslagkaart mijn vingers zouden kunnen verbranden. De Raspberry Pi heeft immers geen koeling! Ik bestel meteen wat koellichamen, warmtegeleidende kleefstof en een stille 60mm-ventilator voor 5 volt. Dat kost me in zijn totaliteit iets meer dan 30 euro, maar ik kan niet riskeren dat mijn Pi-desktop zijn frequentie gaat verlagen omdat hij te heet wordt.
À propos frequentie: hoe snel draait mijn 3B+ idle eigenlijk ? Ik lees de frequentie uit bij /sys/ en moet gechoqueerd vaststellen dat hij maar met 600 MHz in plaats van de mogelijke 1,4 GHz werkt. Dat komt doordat de Pi-kernel de cpufreq-governor standaard op powersave instelt. Met rootrechten zet ik de instelling in /sys/ dan ook op performance. Hij werkt dan in principe op de hoogst mogelijke frequentie. Vol goede hoop start ik Firefox onder Gnome. De hogere frequentie is merkbaar, maar een twee keer zo hoge snelheid is het niet. De browser scrolt desondanks maar met slechts ongeveer tien beelden per seconde en alle input hinkt er altijd minstens een halve seconde achteraan.
Tandenknarsend installeer ik de als 'lichtgewicht' bekend staande desktops Xfce en LXDE. Dat die zuiniger omgaan met de krappe resources van de Raspberry Pi is meteen te merken. Ze starten sneller, vergen minder RAM en voor het starten van programma's hoef ik niet telkens tien seconden op de Gnome-shell te wachten. Helaas komen ook zij niet tot 30 beelden per seconde. Zelfs de muis hapert een klein beetje. Die was bij Gnome eerder nog zonder vertraging in beeld.
In een directe vergelijking draait LXDE op de Raspberry Pi iets sneller dan Xfce. LXDE is met de bij Arch meegeleverde standaardconfiguratie esthetisch echter in de jaren negentig blijven hangen. YouTube-video's beginnen te haperen zo gauw ik HD of full-screen activeer. Een desktop om mee te werken had ik me toch anders voorgesteld.
Concentratie
Ter vergelijking overschrijf ik mijn Arch een keer met een heel normale Raspbian. Die werkt met de oudere ARMv7-instructieset, 32-bit en gebruikt Broadcomms proprietaire grafische driver in plaats van de opensource driver. De cpufreq-governor wordt door Raspbian standaard op ondemand gezet, waardoor de processor onder belasting naar de hoogste frequentie doorschakelt. De met overscan in /boot/config. txt geconfigureerde zwarte rand rondom het scherm heb ik wel uitgeschakeld. Afgezien daarvan start onder Raspbian meteen een goed geconfigureerd, klein systeem met LXDE, dat er duidelijk minder ouderwets uitziet.
De voorgeïnstalleerde Chromium laat webpagina's draaglijk snel zien en speelt ook YouTube-video's full-screen af zonder dat ze al te veel haperen. Dat lijkt veel meer op een system waarmee je zou kunnen werken. Ik val dan ook vrij snel terug op oude werkmanieren en installeer een aantal programma's die ik op mijn Core i5-pc ook gebruik.
De in Java geprogrammeerde IDE PyCharm start op de Raspberry Pi wel, maar heeft daar duidelijk meer tijd voor nodig. Als de dialoog voor het aanmaken van een project eindelijk verschijnt, krijg je echter geen directory te zien en reageert het programma niet meer. Ik laat de moed niet zakken en start de IDE opnieuw vanuit een Terminal-venster, waarbij ik het pad aangeef voor het programmeerproject. Daar komt de IDE al verder mee, maar hij blijft bij het indexeren van het project dan hangen in een loop. Om te kunnen program-
meren moet ik dus overstappen naar wat zuinigere software.
Ik laat de IDE nog even in zijn sop gaar koken, in de hoop dat hij daar op magische wijze nog uit komt, en start de browser. Dat had ik niet moeten doen. In de proceslijst staat kswapd nu helemaal bovenaan en probeert het systeem in leven te houden, terwijl er allang geheugen tekort is. Het systeem voelt meteen aan alsof je in een dikke gelei bent terecht gekomen: de muis loopt er in slakkentempo achteraan en menu's openen pas na een paar seconden vertraging.
Ik heb er dan wel spijt van dat ik zonder na te denken op het programmapictogram geklikt heb en probeer het probleem met Alt+F2 en xkill onder controle te krijgen. Eigenlijk wist ik ook wel dat het geheugen niet toereikend is, maar ja, het is een reflex die ik mezelf aangeleerd heb op mijn pc met een hele massa aan werkgeheugen.
Zo gauw de groene led op de printplaat van de Pi uitgaat, reageert de desktop weer normaal. Dat heeft me geleerd wat ik eigenlijk al wist: vier kernen en een geoptimaliseerde Linux-kernel zijn niet voldoende als de computer niet voldoende RAM heeft om de digitale informatie kwijt te kunnen. Op een Raspberry Pi moet je je altijd beperken tot één taak en alleen de programma's parallel starten die je op dat moment dan ook echt nodig hebt. Ik moet leren om eerst alle lopende programma's af te sluiten voordat ik wat nieuws op de Pi-minicomputer wil gaan beginnen.
Focus
Om op die manier op de Raspberry Pi te werken, heb ik een veel beter plan nodig. Ik haal mijn to-do-lijst voor de dag en open die op mijn smartphone, om daar op de Pi geen RAM aan te verspillen. Helemaal bovenaan op het lijstje staat het redigeren van de tekst van een artikel. Daar start ik LibreOffice en een editor voor. Na het starten van die programma's heb ik zelfs nog 80 MB vrij. Ik kan inderdaad aan het werk!
Later moet ik de lay-out van een artikel nakijken met behulp van een interne webapplicatie. Omdat ik daar de browser voor moet starten, sluit ik van tevoren eerst het office-programma. Als ik daar mee klaar ben, open ik voor het eerst sinds uren het e-mailprogramma. Normaal gesproken blijft dat op de achtergrond actief en krijg ik meldingen over nieuwe e-mails zodra die binnenkomen. Omdat ik niet bereikbaar was, heb ik een vraag van een collega niet op tijd kunnen beantwoorden. Alle andere mails kan ik alsnog naar tevredenheid afwerken. Het valt me op dat ik de onderbrekingen door Thunderbird eigenlijk helemaal niet gemist hebt, en dat zelfs wel prettig vond. Tijdens mijn 'offline'-tijd zijn er ook geen grote ongelukken gebeurd. Maar in plaats van mezelf te dwingen met een Raspberry Pi te werken, had ik op mijn i5-pc natuurlijk ook Thunderbird gewoon kunnen afsluiten.
Het volgende item op de to-do-lijst is een kleine bug in een neuraal netwerk. Ik check de repository met Git, maak een virtualenv, installeer TensorFlow en wacht. Wat normaal maar een paar seconden duurt, vergt op de Raspberry Pi minuten. Uit angst dat het misgaat, surf ik ondertussen op mijn smartphone en lees daar een blogpost over de kunst van het onthaasten.
Terug naar af
Na een paar dagen werken met de minipc start ik voor het eerst mijn gewone pc weer eens op. Dat maakt meteen indrukwekkend duidelijk dat er toch wel een verschil is tussen een 65W-x86-processor en een 2W-ARM. De ssd reduceert de wachttijden, waar ik in de tussentijd eigenlijk al aan gewend was, tot slechts fracties. Het lijkt alsof de sterke computer ook mijn mogelijkheden vergroot – een geweldig gevoel! Werken met een pc is veel leuker dan met een Pi. Mijn productiviteit wordt door de honderd keer snellere computer echter niet echt wezenlijk hoger.
Ik voel me een beetje een reiziger die in een afgelegen Boeddhistisch klooster onbarmhartig getraind wordt door een sifu. De Raspberry Pi heeft me geleerd gestructureerd te werken en te focussen op enkele taken. Het voor de Raspberry Pi benodigde geduld en de concentratie helpen me wel om op de pc sneller en efficiënter te werken.
Toch zou ik al met al niet zonder de performance van mijn pc kunnen. De Raspberry Pi beperkt me en wil dat ik me tevreden stel met een paar programma's en een puur seriële workflow. De pc werkt mijn opdrachten indien gewenst ook parallel uit – maar vooral veel sneller.
Thorsten komt mijn kamer binnen en vraagt hoe het gegaan is en of ik wat geleerd heb. Ik kan nu wat wijsheid van mezelf toevoegen: ik heb inmiddels meer geduld en concentratie. Ik wist van tevoren helemaal niet dat ik die eigenlijk niet had. Maar ik zal niemand echt aanraden om een Raspberry Pi als pc-vervanger te gaan gebruiken. (nkr)