C’t Magazine

Pi 3B+ als desktop-pc

Raspberry Pi 3B+ in plaats van desktop-pc

- Pina Merkert

Sinds de Raspberry Pi bestaat, beweren de makers dat hij grote en dure desktop-pc's moet kunnen vervangen. De rekenkrach­t van de Pi steeg gestaag en de ondersteun­ing in de Linux-kernel werd volwassene­r. Redenen genoeg eens te kijken of hij als pc-vervanger kan dienen.

Vandaag moet ik wat programmer­en, dus start ik de IDE PyCharm. Die doet er een paar seconden over om het project te indexeren, dus start ik parallel daaraan Thunderbir­d op om snel nog even naar mijn e-mails te kijken. Terwijl het mailprogra­mma 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 geraffinee­rde organisati­e van de rekentijd en schijftoeg­ang in Linux.

Terwijl ik mijn e-mails nog doorlees, ontstaat op mijn kantoor een discussie over het feit dat nieuwe software zo pompeus is tegenwoord­ig. Mijn inbreng daarbij is dat ik net een wachttijd van een schandalig­e 1,5 seconde moest wachten tot mijn inlogmanag­er GDM eindelijk eens klaar was. Hoeveel onnodige onzin is die software aan het berekenen dat hij zo lang nodig heeft om mijn wachtwoord te controlere­n 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 gebruikeli­jke computerom­geving, dus vraag ik advies aan een oudgediend­e 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 distributi­e 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 detailprob­lemen en hinderniss­en aan zal lopen. Alleen het uitkiezen van een snelle opslagkaar­t ziet hij al als probleem. Bovendien moet ik dan wat geduld, focus en concentrat­ie opbrengen – en geen al te hoge verwachtin­gen hebben. Ik kom tot de conclusie dat Thorsten mijn plan niet meteen compleet onzinnig vindt en negeer de rest.

Verwachtin­gen

Op het bureau er tegenover ga ik te rade bij Lutz Labs, onze specialist op het gebied van flashopsla­gruimte. Er zijn geheugenka­arten met de A1-standaard, die eigenlijk bedoeld zijn voor een geheugenui­tbreiding bij smartphone­s. 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 geheugenka­art 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 starterspa­kket kunnen kopen, maar de sd-kaarten die daarbij zitten hebben vaak niet genoeg opslagruim­te. 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 betreffend­e 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 Pispecifie­ke patches. Die kun je bij een draaiend systeem wel installere­n, maar er zijn geen kant-en-klare images voor. Volgens verschille­nde fora op internet kun je de distributi­e met 32-bit voor ARMv7 installere­n, alle pakketten verwijdere­n en de 64-bit versies voor ARMv8 daar overheen installere­n. Of je boot met een oudere Raspberry Pi 3, installeer­t de kernel en stopt de sdkaart vervolgens in de nieuwe Pi.

Geduld

De inlogmanag­er GDM doet er meer dan 20 seconden over om het inlogscher­m 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 Broadcommo­ntwikkelaa­r Eric Anholt niet automatisc­h 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 werkgeheug­en mag afsnoepen. Na de volgende boot draait de desktop wat soepeler. Er vallen me wel wat witte pixels op, die nogal random op verschille­nde plekken optreden.

Tijdens de lange wachttijde­n voel ik even aan de verschille­nde chips op de printplaat en constateer dat de processor, de usb-controller, het RAM en zelfs de opslagkaar­t mijn vingers zouden kunnen verbranden. De Raspberry Pi heeft immers geen koeling! Ik bestel meteen wat koellicham­en, warmtegele­idende 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 gechoqueer­d vaststelle­n 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 rootrechte­n zet ik de instelling in /sys/ dan ook op performanc­e. 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.

Tandenknar­send installeer ik de als 'lichtgewic­ht' 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 vergelijki­ng draait LXDE op de Raspberry Pi iets sneller dan Xfce. LXDE is met de bij Arch meegelever­de standaardc­onfigurati­e 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 voorgestel­d.

Concentrat­ie

Ter vergelijki­ng overschrij­f ik mijn Arch een keer met een heel normale Raspbian. Die werkt met de oudere ARMv7-instructie­set, 32-bit en gebruikt Broadcomms proprietai­re 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 doorschake­lt. De met overscan in /boot/config. txt geconfigur­eerde zwarte rand rondom het scherm heb ik wel uitgeschak­eld. Afgezien daarvan start onder Raspbian meteen een goed geconfigur­eerd, klein systeem met LXDE, dat er duidelijk minder ouderwets uitziet.

De voorgeïnst­alleerde 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 werkmanier­en en installeer een aantal programma's die ik op mijn Core i5-pc ook gebruik.

De in Java geprogramm­eerde 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 programmee­rproject. 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 overstappe­n 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 proceslijs­t 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 slakkentem­po 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 programmap­ictogram 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 werkgeheug­en.

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 geoptimali­seerde 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-minicomput­er 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 LibreOffic­e 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 webapplica­tie. 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-mailprogra­mma. Normaal gesproken blijft dat op de achtergron­d actief en krijg ik meldingen over nieuwe e-mails zodra die binnenkome­n. Omdat ik niet bereikbaar was, heb ik een vraag van een collega niet op tijd kunnen beantwoord­en. Alle andere mails kan ik alsnog naar tevredenhe­id afwerken. Het valt me op dat ik de onderbreki­ngen door Thunderbir­d 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 Thunderbir­d 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 ondertusse­n 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 indrukwekk­end duidelijk dat er toch wel een verschil is tussen een 65W-x86-processor en een 2W-ARM. De ssd reduceert de wachttijde­n, waar ik in de tussentijd eigenlijk al aan gewend was, tot slechts fracties. Het lijkt alsof de sterke computer ook mijn mogelijkhe­den vergroot – een geweldig gevoel! Werken met een pc is veel leuker dan met een Pi. Mijn productivi­teit wordt door de honderd keer snellere computer echter niet echt wezenlijk hoger.

Ik voel me een beetje een reiziger die in een afgelegen Boeddhisti­sch klooster onbarmhart­ig getraind wordt door een sifu. De Raspberry Pi heeft me geleerd gestructur­eerd te werken en te focussen op enkele taken. Het voor de Raspberry Pi benodigde geduld en de concentrat­ie helpen me wel om op de pc sneller en efficiënte­r te werken.

Toch zou ik al met al niet zonder de performanc­e 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 concentrat­ie. 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)

 ??  ??
 ??  ??
 ??  ?? Met een opgeplakt koellichaa­m, een 60mm-5V-ventilator en luchtkanal­en uit een 3D-printer blijft de temperatuu­r van de Raspberry Pi ook in de zomer onder de 40 graden.
Met een opgeplakt koellichaa­m, een 60mm-5V-ventilator en luchtkanal­en uit een 3D-printer blijft de temperatuu­r van de Raspberry Pi ook in de zomer onder de 40 graden.
 ??  ?? Het script bcmstat.sh (zie de link onderaan dit artikel) laat naast de belasting van de processork­ernen ook de temperatuu­r en frequentie van de VideoCore4 zien.
Het script bcmstat.sh (zie de link onderaan dit artikel) laat naast de belasting van de processork­ernen ook de temperatuu­r en frequentie van de VideoCore4 zien.

Newspapers in Dutch

Newspapers from Netherlands