Pieter Edelman
12 March 2008

Na het succes van zijn snelstartsysteem voor embedded Linux kwam softwarehuis PTS afgelopen jaar met de tweede versie van Embedded Quickstart Linux. Naast een verbeterde documentatie biedt EQSL nu realtime gedrag, een grafische bibliotheek en een emulator. Verder zijn er geen beheerdersrechten meer nodig voor het gebruik. Volgens PTS kan iedereen binnen een middag aan de slag met een embedded Linux-systeem. Bits&Chips testte deze claim en beschrijft de ervaringen.

Wie aan de slag wil met Linux moet zich eerst door een moeras aan keuzes heen worstelen. Er zijn honderden verschillende distributies: pakketten van software, beheerstools en intstellingen. Elk met een eigen insteek of focus. Halverwege 2006 kwam ook softwarehuis PTS met een eigen distro, genaamd Embedded Quickstart Linux (EQSL). Waarom nog een distributie? EQSL is gericht op een specifiek doel, namelijk snel aan de slag met Linux-experimenten in een embedded omgeving. Het cd‘tje bevat alle benodigde basiscomponenten en een reeks gereedschappen om snel een eigen image in elkaar te timmeren. Afgelopen jaar bracht PTS versie 2.0 van EQSL uit met een aantal verbeteringen en een aantal nieuwe features ten opzichte van de eerste editie.

EQSL is bedoeld voor de embedded-ontwikkelaar die eens een keertje met Linux wil experimenteren. De insteek is dat iemand in een paar verloren uurtjes aan de slag kan. De cd biedt de tools om zelf snel een werkend systeem samen te stellen, waarop naar hartenlust met de eigen applicatie kan worden geëxperimenteerd. Als doelcomputer ondersteunt PTS een embedded pc of een XScale-gebaseerde Gumstix-computer. De EQSL-gebruiker hoeft geen verstand van Linux te hebben, maar volgens PTS is basale Unix-kennis wel handig.

De documentatie begint bij het boekje in het cd-hoesje. Dat lijkt in eerste instantie erg summier, maar die vrees blijkt onterecht. Meer hebben de PTS-jongens gewoon niet nodig. De handleiding bevat achtergrond en een stap-voor-stapuitleg over de installatie- en werkprocedure. Voor wie verder wil dan wat het boekje beschrijft, is er verdiepende informatie te vinden op de website van PTS of op de cd zelf. Daar staan onder meer artikelen over debuggen en over het ontwikkelen van grafische applicaties. Een minpuntje is wel dat alle documentatie uitsluitend in het Nederlands beschikbaar is.

Nieuwe computer

Ik sla het boekje open bij het hoofdstuk ’Stap voor stap‘. Voor het werken met de cd is als hostsysteem een pc met Linux nodig. Het mounten van het schijfje wordt beschreven als de meest complexe stap. Terecht, want het is door de keur van Linux-distributies lastig om daar een algemene procedure uit te destilleren. Het is de bedoeling om de cd te mounten in een eigen map onder de root-directory. De beschreven procedure zal bij de meeste systemen geen probleem opleveren, maar op mijn systeem werkt het in ieder geval niet vanwege een net even afwijkende configuratie.

Techwatch Books: ASML Architects

De beschrijving neemt je in heldere taal netjes aan het handje mee, legt niet alleen uit hoe je iets moet doen, maar waar relevant ook wat je aan het doen bent. Bovendien houdt de instructie rekening met verschillende scenario‘s. Zo lees ik bijvoorbeeld dat de waarschuwingen die tijdens het compileren voorbijrollen geen kwaad kunnen. Toch weer een geruststelling.

Met een standaard make image-commando compileer en bouw ik het hele systeem. De broncode van elke component staat in een eigen directory, samen met de benodigde bestanden voor het compileren ervan. In een aantal gevallen voert het systeem vóór het compileren een patch uit op de source, bijvoorbeeld om deze geschikt te maken voor de beoogde architectuur. ’Die patches komen vooral van ons‘, zegt Gerben Blom, technisch manager van Embedded Quickstart Linux. Ook zijn in deze versie realtime-patches voor de kernel opgenomen. Volgens de handleiding duurt de hele bouwstap op een modern ontwikkelsysteem een tiental minuten, maar op oudere, tragere systemen meer dan een uur. Goed, ik ben blijkbaar aan een nieuwe computer toe.

En dan, na 25 minuten compileren, slaat het noodlot toe: een fout met patchen van het pakket UtelnetD. De insteek van de cd is gelukkig dat de ontwikkelaar zelf zijn pakket aan software kan samenstellen. Dus even vooruitlopend op de leercurve schakelen we dit pakket maar even uit. En jawel, na een paar minuten verschijnt de boodschap dat het compileren klaar is. De volgende stap is om een image te creëren die daadwerkelijk op een embedded pc is in te zetten. Daarvoor heeft PTS een scriptje op het schijfje gebrand. De handleiding beschrijft netjes hoe om te gaan met systemen die meer ruimte nodig hebben dan de standaardwaarde.

Hello world

En dan zit je met een image. Nu zijn de Gumstix-computertjes voor minder dan 200 euro te krijgen, maar je zult altijd zien dat je net een middagje hebt om met EQSL te spelen als je geen embedded computertje rond hebt slingeren. Daar heeft PTS in de nieuwe versie rekening mee gehouden. EQSL bevat een embedded-pc-emulator, gebaseerd op Qemu. Daarmee is de pas gemaakte image in een geëmuleerde omgeving te draaien.

Na het bouwen van de initiële versie wordt het tijd om de gewenste componenten te selecteren. Een stel Gnu make-bestanden in de directorystructuur van de componenten specificeren welke bestanden er wel en niet meegenomen dienen te worden. Door het toevoegen van commentaartekens in de betreffende tekstbestanden zijn deze in of uit te schakelen. De documentatie is hier wellicht wel wat aan de beknopte kant. Ook de eigenschappen van het systeem zijn via een enkele makefile aan te passen. Een sterke verbetering op de vorige versie is de uitleg in de handleiding over het toevoegen van een eigen applicatie. Dat gaat eenvoudig door een directory aan te maken met de bronbestanden en daarin een makefile te zetten, die ik kan aanpassen van een voorbeeld. De documentatie waarschuwt netjes voor het gebruik van spaties en tabs in deze bestanden. Ten slotte moet de applicatie toegevoegd worden net als elke andere component. Ik probeer het zelf met een simpel ’Hello world‘-programmaatje. Al met al een uur en 20 minuten nadat ik het schijfje in mijn cd-drive stopte, spuugt dat de legendarische woorden op mijn beeldscherm.

Een interessante nieuwe feature van EQSL versie 2.0 is de toevoeging van de Simple Directmedia Layer (SDL)- en de DirectFB-bibliotheken. Daarmee kan de stap worden gezet van tekstinterfaces naar grafische toepassingen. ’Wij zien als bedrijf twee grote winnaars in de embedded OS‘en, namelijk Windows CE en Linux. CE wordt vaak gekozen vanwege de grafische interface‘, zegt Blom.

linux031 web

Het ontwikkelen van SDL-applicaties is niet geheel triviaal, zo valt te lezen in de online documentatie. Daarom biedt PTS een voorbeeldprogramma, te downloaden van de website. Helaas bleek dit bestand beschadigd. Ook het bouwen van de SDL-bibliotheek eindigde in een foutmelding.

Kom-het-is-vrijdagmiddag-laten-we-eens-met-embedded-Linux-gaan-spelen-gehalte

De cd lijkt zijn belofte voor het overgrote deel in te lossen, alhoewel het proces voor een complete Linux- of Unix-newbie wellicht wel enkele valkuilen zal bevatten. Maar de meeste ontwikkelaars zullen weinig moeite hebben met het intypen van een commando op de opdrachtregel.

De cd voelt beter afgewerkt aan dan bij de eerste versie. Een belangrijke nieuwe feature is dat er nagenoeg nergens meer beheerdersrechten vereist zijn voor het werken met EQSL. Dat moet goed vallen bij de IT-afdelingen. Ook de documentatie is meer gepolijst. Stonden in de vorige versie nog een aantal impliciete aannames, bij EQSL 2.0 komt dit nauwelijks meer voor.

Wel zitten er hier en daar nog scherpe randjes aan het systeem. Het bouwproces ging in eerste instantie de mist in. Het maken van een SDL-applicatie is uiteindelijk niet gelukt. Het gebeurde echter ook dat een scriptje aankondigde tien seconden te wachten, maar in werkelijkheid bijna een halve minuut pauzeerde.

Volgens het boekje is in principe elk Linux-systeem geschikt voor EQSL. PTS levert een eenvoudig scriptje mee dat controleert of de vereiste bestanden aanwezig zijn, het Shouldbeonhost-script. Dat zat ook bij de eerste versie, maar was toen niet duidelijk opgenomen in de documentatie. Het script controleert van een trits aan commando‘s of ze aanroepbaar zijn en of de standaard headerbestanden op het systeem zijn geïnstalleerd. Het boekje legt echter niet uit wat te doen als er iets ontbreekt. De online documentatie gaat wat dieper op de stof in. Op de website valt te lezen dat niet elk systeem de benodigde componenten zo maar in huis heeft. Voor Ubuntu, toch wel de meest populaire desktop-Linux-distributie op dit moment, staan er instructies over ontwikkelen met EQSL. Voor andere systemen blijft de gebruiker in het ongewisse. Natuurlijk is het ondoenlijk om voor elke mogelijke Linux-distributie een handleiding op te stellen, maar wellicht doet PTS er goed aan om expliciet een of enkele Linux-pakketten te ondersteunen.

Interessant is de online beschrijving voor werken met Knoppix. Knoppix is een live-cd, een besturingssysteem dat volledig van het schijfje opstart en draait. Daarmee is het mogelijk om alles rustig uit te proberen zonder het bestaande systeem aan te passen of te overschrijven. Dat komt het kom-het-is-vrijdagmiddag-laten-we-eens-met-embedded-Linux-gaan-spelen-gehalte zeker ten goede. Let wel, hiervoor is wel een pc met twee cd-stations nodig, een voor Knoppix en een voor de PTS-cd.

Ondertussen sleutelt PTS aan versie 3 van zijn EQSL-distributie, die later dit jaar zal uitkomen. Blom licht alvast een tipje van de sluier op voor de volgende editie: ’we willen de selectie van componenten gebruiksvriendelijker maken. Verder willen we meer kernelfeatures integreren en LTrace opnemen, een tracer voor bibliotheekaanroepen. Ook werken we aan Java-ondersteuning en willen we de UI-mogelijkheden uitbreiden.‘

PTS wil zich met ESQL profileren als bedrijf dat ook kennis van Linux in huis heeft. Volgens Blom is dat goed gelukt. Zowel potentiële werknemers als klanten reageerden volgens hem positief op de cd. Maar naast promotiemateriaal biedt het schijfje ook een echt werkend Linux-systeem. ’Bij een van onze klanten gebruiken ze het as-is voor productie‘, aldus Blom.