Pieter Edelman
11 May 2006

Embedded Linux heeft voor de oningewijde ontwikkelaar een steile leercurve. Dat maakt het lastig om met het besturingssysteem te experimenteren. Softwarehuis PTS ontwikkelde de Embedded Quickstart Linux-cd (EQSL) om nieuwkomers snel op weg te helpen. Bits&Chips nam de cd onder de loep en vroeg ook Sjoerd de Heer en Angelo Hulshout om hun mening.

’Met EQSL hebben ontwikkelaars een halve dag nodig om te starten met embedded Linux, waarvan het grootste deel bestaat uit het opzetten van de hardware.‘ Dat claimde Gerben Blom, de technisch manager van Embedded Quickstart Linux (EQSL) tijdens zijn presentatie op Bits&Chips 2006 Hightech Systemen. Softwarehuis PTS stelde de cd samen zodat bedrijven op een eenvoudige manier kunnen experimenteren met Linux. Daardoor krijgen ze snel een beeld of het besturingssysteem interessant is voor hun toepassing.

Volgens PTS is de drempel om met Linux te beginnen hoog. Voor specialisten is het besturingssysteem simpel maar voor buitenstanders erg onduidelijk, betoogt Blom in zijn presentatie. Daar is een aantal redenen voor aan te wijzen. Linux richt zich niet primair op embedded toepassingen. Ook moeten ontwikkelaars pakketten uitzoeken en bij elkaar brengen in een systeem. Een bijkomend probleem is dat het compileren van de software niet voor elk pakket op dezelfde manier gaat.

EQSL biedt een oplossing voor deze problemen zodat ontwikkelaars er binnen een middag mee aan de slag kunnen. ’Die vier uur is echt heilig bij mij‘, zegt EQSL-architect Albert Mietus. Met het systeem krijgen bedrijven bijvoorbeeld snel een indruk van de grootte van een Linux-systeem. ’Een aantal van hen ziet dan direct dat Linux te groot is voor hun toepassing‘, aldus Mietus. Ook krijgen ontwikkelaars een overzicht van het werk dat nodig is om de applicatie te poorten naar het vrije besturingssysteem. ’Als je toepassing geschreven is in Posix C kan je proberen of deze compileert op het testsysteem. Waarschijnlijk lukt dit niet, maar met de foutmeldingen en waarschuwingen van compiler krijg je een aardig beeld van wat er nodig is om het wel te laten werken‘, legt Mietus uit.

Linux

Macrotaal

EQSL is bedoeld voor ervaren embedded-ontwikkelaars met geen of weinig Linux-ervaring. De cd bevat de broncode voor softwarepakketten gericht op kleine systemen, waaronder shells, geluidsverwerking en webservers. In eerste instantie biedt EQSL een defaultselectie met onder meer de Linux 2.6-kernel, UCLibC, Busybox, de THTTPD-webserver en een telnetserver. Gebruikers kunnen hier direct mee aan de slag. Op een later moment zijn specifieke pakketten eenvoudig op te nemen of weg te laten.

 advertorial 

Raising the pillars of digital transformation

The electronics industry is fast approaching a new era of digital transformation. In this new paradigm, digital technologies create new business processes, cultures and customer experiences by bringing together all the aspects of product design, including mechanical and electrical, and streamlining the entire design process – from product inception all the way through to manufacturing.

Het verkrijgen van een werkend systeem vereist een handvol commando‘s in een terminalscherm. De cd bevat een summiere Nederlandstalige handleiding die met de gebruiker door het proces heen wandelt. ’De documentatie is bewust vrij klein gehouden om snel te kunnen starten‘, zegt Mietus. ’Als je eerst door een handleiding van 200 pagina‘s moet worstelen, lukt dat niet.‘

Nadat de gebruiker de EQSL-cd zichtbaar heeft gemaakt binnen het gastsysteem dient hij een paar honderd kilobyte aan configuratiebestanden naar zijn harde schijf te kopiëren. Deze vormen het hart van EQSL. Ze specificeren hoe pakketten gecompileerd moeten worden, welke pakketten er meegaan en wat het target is. Dit systeem is gebaseerd op Gnu Make. Het overgrote deel van de vrije software gebruikt deze macrotaal om de compilatie aan te sturen. Het commando ’make image‘ bouwt het testsysteem. De Make-software haalt de bronbestanden van de cd, compileert deze en zet de resultaten in een image. De cd bevat de nodige tools om dit bestand vervolgens naar de Compactflash-kaart te ’branden‘ waar het doelplatform van kan opstarten.

Het platform is eenvoudig te configureren via tekstbestanden. Kennis van Gnu Make is hier niet voor nodig. Een bestand in de hoogste directory, EQSLinux.mk, specificeert de globale compileeropties zoals het doelplatform en de gebruikte C-bibliotheek. De beschikbare pakketten zijn georganiseerd in een logische directorystructuur op de cd. Gnu Make-files specificeren welke pakketten of pakketgroepen uit de onderliggende directories meegenomen moeten worden in de image. Verwijderen en toevoegen gaat dan ook door simpelweg een commentaarteken (#) voor de naam van het desbetreffende pakket te zetten of weg te halen, en vervolgens de image opnieuw te maken. ’Toevoegen aan de configuratie via de componentendatabase verloopt makkelijk. Alleen dependencies worden niet gecontroleerd of aangeduid zodat je met de foutmeldingen tijdens de compilatie je weg moet vinden‘, zegt Sjoerd de Heer van S&R Solutions die de cd voor Bits&Chips testte.

Voetnoot

EQSL heeft wel enkele scherpe kantjes voor beginnende Linux-gebruikers. Zo kan het soms lastig zijn om de weg te vinden op het besturingssysteem. ’Ik kreeg ik een hele mooie melding bij ’make image‘ die voor een onbekende met Linux niet direct een goed te doorgronden is. Dat valt mij erg op bij alle foutmeldingen die de scripts geven‘, aldus De Heer. Mietus verwacht echter dat embedded-ontwikkelaars hier snel genoeg uitkomen. ’We presenteren Linux zoals het is, en dan krijg je inderdaad een weinig informatieve melding. Maar de meeste embedded-programmeurs zijn zeer ervaren en heel goed in staat om computerproblemen op te lossen‘, zegt hij.

Ook het ontwikkelsysteem kan een hindernis zijn bij het starten met EQSL. ’Een nadeel is dat de gebruiker eerst door de installatie van een Linux-ontwikkelsysteem op basis van een desktopdistributie heen moet‘, zegt Angelo Hulshout van ICT Noviq die de cd ook recenseerde. EQSL biedt weinig hulp bij het opzetten van dit ontwikkelsysteem. De handleiding geeft bijvoorbeeld niet aan waar dit aan moet voldoen. Gerben Blom zei in zijn presentatie dat een willekeurige distributie goed is, maar Linux is een monster met vele koppen en PTS had er wellicht goed aan gedaan om een aantal versies te vermelden waar EQSL op getest is. Het ontdekken van het mountpunt voor de cd werkt volgens de handleiding bijvoorbeeld niet op een Gentoo-systeem. Ook moeten de Gnu-ontwikkeltools aanwezig zijn. Niet alle desktopdistributies installeren deze standaard. De Heer: ’In een van de voetnoot staat een verwijzing naar een script ’ShouldBeOnHost‘ dat controleert of de gebruikte omgeving wel geschikt is. Dit zou wel een prominentere plaats mogen hebben. Het script verschaft ook geen duidelijkheid of het gestopt is na een melding of dat er verder geen problemen meer gevonden zijn‘. Bovendien kan de gebruiker het script pas draaien nadat het gastsysteem al geïnstalleerd is. Om deze pijn te verzachten heeft PTS instructies bijgesloten om EQSL vanaf een Linux-live-cd zoals Knoppix te draaien.

EQSL
EQSL bevat uiteenlopende pakketten voor kleine systemen, waaronder shells, busybox, webservers en multimedia.

Onderzoekstool

Naast een Linux-systeem bevat EQSL een aantal gereedschappen voor embedded-ontwikkeling. De cd bevat bijvoorbeeld compilers en debuggers voor de ondersteunde doelplatformen die vanaf de cd te draaien zijn. Door de cd op het doelplatform te mounten zijn deze gereedschappen beschikbaar voor native ontwikkeling.

Voor het overzetten naar het doelplatform raadt PTS een Compactflash-kaart van minstens 16 Mbyte aan. Andere media zijn ook te gebruiken maar EQSL biedt hier geen expliciete ondersteuning voor. Naast de materialen dient de gebruiker te beschikken over basale Unix-kennis, met name het omgaan met de opdrachtregel.

Een nadeel van EQSL is dat het niet geheel duidelijk is hoe de gebruiker zijn applicatie werkend moet krijgen op het doelplatform. De documentatie biedt geen aanknopingspunten over het compileren van een eigen toepassing onder Linux of het overzetten naar het doelsysteem. ’Ook dat staat bewust niet in de handleiding‘, licht Mietus toe. ’Onze ervaring is dat ontwikkelaars daar weinig moeite mee hebben als het systeem eenmaal draait.‘ Wel is het de bedoeling dat de website van het project meer informatie gaat bieden en dat PTS hier gebruikerservaringen in zal verwerken. Hij voegt eraan toe dat EQSL voornamelijk een onderzoekstool is en niet per se het uiteindelijke productieplatform hoeft te zijn. ’Voor embedded pc‘s en standaard hardware met niet al te strikte eisen kan het wel gebruikt worden als basis. Voor systemen met minder geheugen en rekenkracht zijn andere distributies echter meer geschikt.‘

Gumstix

EQSL liet over het algemeen een goede indruk achter. Het systeem steekt goed in elkaar en de configuratie is eenvoudig en overzichtelijk. De gevonden problemen waren relatief klein en eenvoudig op te lossen. De distributie heeft dan ook zeker de potentie om zijn belofte waar te maken. ’Al met al lijkt dit een aardige cd voor partijen die een begin willen maken met embedded Linux, of dat willen evalueren‘, oordeelt Hulshout. ’Uiteraard volgen daarna weer vragen ten aanzien van platformkeuze, bijpassende compilers enzovoorts, maar die vallen buiten de doelstelling van deze cd.‘

EQSL ondersteunt op dit moment embedded pc‘s en het Arm Gumstix-ontwikkelbord. De platformspecifieke gereedschappen staan elk in een aparte directory, en andere platforms of alternatieve configuraties kunnen via een extra map worden toegevoegd.

PTS maakt de EQSL-onderdelen beschikbaar onder een aantal vrije licenties. De gebruiker mag hierbij kiezen uit de GPL, LGPL of een BSD-achtige licentie. De documentatie is alleen in het Nederlands beschikbaar. De cd is gratis verkrijgbaar via de website. ’We hebben het EQSL-project om twee redenen opgezet‘, zegt Blom. ’Ten eerste hopen we natuurlijk dat bedrijven ons in de arm nemen als ze verder willen met Linux. Maar daarnaast doen we het ook omdat we vaak als Windows-bedrijf worden gezien, terwijl we meer te bieden hebben.‘

Angelo Hulshout is consultant op het gebied van software- en systeemarchitectuur bij ICT Noviq, een onderdeel van ICT Automatisering. Hij heeft onder meer met Linux gewerkt in Voip-omgevingen.

Sjoerd de Heer werkt bij S&R Solutions en ontwerpt Linux-servers voor educatieve systemen. Zijn ervaring met het besturingssysteem gaat terug tot 1995.