Samenwerken of uitbuiten? Groepsvorming in embedded Linux

Author:

Klaas van Gend is senior solutions architect bij Montavista Software, leverancier van diensten en oplossingen op basis van embedded Linux. Daarnaast is hij medeoprichter en -organisator van de Embedded Linux Conference Europe.

Reading time: 8 minutes

De regie over embedded Linux ligt niet in handen van bedrijven maar van community‘s. Dat betekent niet dat het allemaal gratis en communistisch is; het zijn wel degelijk de bedrijven die de controle proberen te houden. Diverse lezingen en aankondigingen op de afgelopen Embedded Linux Conference Europe toonden dat duidelijk aan.

In het begin van dit decennium richtten Sony en Matsushita (Panasonic, Pioneer) het CE Linux Forum (Celf) op om embedded Linux voor consumentenelektronica te promoten. Al snel sloten alle grote fabrikanten en enkele Linux-leveranciers zich aan bij deze non-profitorganisatie. Zo hebben de oprichters onder meer gezelschap gekregen van Canon, Hitachi, HP, IBM, Intel, LG, Mips, Nec, Philips, Renesas, Samsung en Toshiba.

Van een eigen distributie of specificatie is het tot op heden niet gekomen, maar Celf is opvallend succesvol gebleken in het organiseren van evenementen om kennis te delen: van kleine jamborees in Japan en Korea tot grote conferenties in Californië en Europa. Daarnaast bevordert het consortium kennisdeling via elinux.org, een wiki die vaak hoog scoort in de Google-zoekresultaten voor embedded-onderwerpen. Door kleinschalige sponsoring heeft het bovendien diverse voor embedded belangrijke projecten opgenomen gekregen in de kernel: Linux-Tiny, LZMA-compressie, PrintKTimes en SquashFS.

De Linux Foundation (LF, linuxfoundation.org) heeft eenzelfde doel als Celf, maar heeft zich tot nu toe vooral gericht op de enterprisemarkt – desktops en servers voor bedrijven. Dit consortium heeft leden als AMD, Arm, Cisco, Dell, Google, Hitachi, HP, IBM, Intel, LG, Mips, Motorola, Nec, Nokia, Oracle, Qualcomm, Siemens, Sun, TI en Toshiba. Ook heeft het een aantal belangrijke ontwikkelaars in dienst, onder wie chef-pinguïn Linus Torvalds.

In het voorjaar van 2009 werd al duidelijk dat Celf en de LF het goed kunnen vinden toen ze hun hoofdconferenties gezamenlijk in San Francisco organiseerden. De aankondiging op de Embedded Linux Conference Europe (ELC-E, embeddedlinuxconference.com), eind oktober in Cambridge, kwam dan ook niet helemaal als een verrassing: Celf gaat op in de LF. Die maakte meteen bekend dat alle conferenties behouden blijven en dat kleinschalige projecten twee keer zo veel budget krijgen. Goed nieuws voor de embedded-wereld dus.

Foto’s: Klaas van Gend

10-24

De Linux Foundation wordt zo steeds invloedrijker. Het consortium doet echter meer dan alleen wat lobbyen en conferenties organiseren. Diverse specificatiewerkgroepen en opensourceprojecten hangen rechtstreeks onder de LF. Voor embedded had de organisatie natuurlijk al de regie over het Meego-project, een fusie van Intels Moblin- en Nokia‘s Maemo-distributie (meego.com). De eerste Meego-gebaseerde apparaten staan op het punt van uitkomen, waaronder enkele Atom-gebaseerde tablets en settopboxes en de nieuwe high-end smartphone van Nokia. Tegelijkertijd lonkt Meego naar de automotivemarkt.

Officieel is Meego een community: Intel, Nokia en diverse andere bedrijven, enkele ZZP‘ers, studenten en hobbyisten werken samen aan de vervolmaking van deze embedded-Linux-smaak voor Arm en X86. Dat betekent dat niemand het echt voor het zeggen heeft; de meeste beslissingen worden genomen in de openbaarheid. Intel en Nokia verdienen hieraan doordat ze niet allebei een eigen distributie hoeven bij te houden, maar ook doordat anderen bijdragen. Het effect is significant: er zijn meer ontwikkelaars die met Meego werken buiten Intel dan daarbinnen. Ongeveer tweehonderd van hen krijgen wel betaald van de chipgigant. Dit model is natuurlijk afgekeken van hoe de Gnome-desktop, de Linux-kernel, Openoffice en verschillende andere opensourceprojecten worden ontwikkeld.

Een van de laatste toevoegingen aan dit lijstje is het LF-initiatief Yocto (10-24, yoctoproject.org). In Cambrigde werd het officieel aangekondigd als volwaardig project, hoewel diverse mensen van vooral Intel er al een jaar in het geheim aan werken. Yocto is geen concurrent van Meego, want het is geen distributie. Doel is om eindelijk eens een gezamenlijke bouwinfrastructuur te maken voor embedded-Linux-oplossingen. Gelukkig heeft het project besloten het wiel niet opnieuw uit te vinden, maar voort te borduren op Openembedded. Yocto wil geen vervanging zijn voor deze embedded-distributie, maar er wel voor zorgen dat alle ontwikkelingen in de diverse afgeleiden ervan worden doorgegeven en opgenomen in de basis zodat iedereen ervan kan profiteren. Mentor Graphics, Montavista en Wind River hebben een zetel aangeboden gekregen in het Yocto-bestuur. Om deelnemers te trekken, gaf het project op de ELC-E vijftig Atom N450-gebaseerde ontwikkelkits weg.

Foto: Klaas van Gend

Foto: Yann Morin (beschikbaar gesteld onder de CC-BY-SA-licentie)

Kritiek

Openembedded (openembedded.net) ligt aan de basis van vrijwel alle recente opensourcesuccessen in embedded. Hoewel het project alweer aardig op leeftijd is, heeft het juist de afgelopen twee jaar kritische massa bereikt. Op dit moment gebruiken bijna alle embedded-leveranciers de distributie als infrastructuur. Mentor Graphics en Montavista hebben bijvoorbeeld hun onlangs uitgebrachte Linux-pakketten gebaseerd op Openembedded.

Belangrijke onderdelen van de distributie zijn de tool Bitbake en de recepten die beschrijven hoe opensource software zoals de Linux-kernel, X, Qt, Busybox en compilers kan worden gepatcht, gebouwd en opgenomen in een embedded bestandssysteem. Openembedded compileert dus altijd alles rechtstreeks uit broncode. Hoewel zo‘n bouwcyclus gemakkelijk een halve dag kan duren, is het de beste manier om controle te houden over het eindresultaat. Aan de hand van de informatie in de recepten weet Bitbake waar het de broncodearchieven kan downloaden, welke wijzigingen er nodig zijn om de code te laten draaien op specifieke platforms en welke pakketten in welke volgorde nodig zijn om afhankelijkheden op te lossen. Daarnaast zitten alle bestanden in packages (Deb, IPK of RPM), zodat later ook gecontroleerd updates zijn uit te voeren.

Kritiek op Openembedded is er ook. De community werkt bijvoorbeeld maar matig, omdat verschillende ontwikkelaars te weinig kwaliteitsbesef tonen en patches committen die compilatie op andere platforms spaak laten lopen. Gelukkig is er nu een stabiele tree, maar juist hier verzetten commerciële partijen bergen werk om een stabiele codebase op te bouwen. Ook Yocto zal op termijn zorgen voor verbetering, aangezien de ontwikkelaars die betaald gaan worden door dit project alleen aan Openembedded zullen werken en niet aan een specifieke feature voor een specifiek bord.

Boze blogpost

Een andere belangrijke speler in embedded Linux is Android. In de VS zijn de eerste televisies en settopboxen op basis van dit platform reeds verkrijgbaar, de mobieltjes zijn niet meer aan te slepen en de tablets liggen opgestapeld bij de elektronicaboer. Android is zonder meer succesvol, niet in de laatste plaats door de vele applicaties in de Android Market van Google.

Toch verklaart dit maar een deel van het succes. Juist de community die werkt aan de echt opensource versie van Android heeft ervoor gezorgd dat het nu ook beschikbaar is voor andere dan Arm-platforms. Bedrijven hebben delen van de benodigde porting betaald, waarna ze hebben geprobeerd hun code opgenomen te krijgen in de Android-repository‘s. En open projecten als 0xdroid (code.google.com/p/0xdroid), Cyanogen en Pandroid maken dat echt open Android bestaansrecht heeft. Er zijn al verschillende leveranciers (vooral in Azië) die overwegen om Android-apparaten uit te brengen zonder de ’enige echte‘ Google Android Market.

Waar de community echt werk in heeft moeten steken, is om de deels bedrijfseigen audiostack van Android te vervangen door een open alternatief op basis van het GStreamer-multimediaframework. Een groep voormalige NXP‘ers, nu bij ST-Ericsson, presenteerde op de ELC-E een techniek om grote delen van de gesloten lagen te openen. Jammer genoeg kon nog niet alles open – wat ze meteen op een boze blogpost van GPL Violations-oprichter Harald Welte kwam te staan.

Foto: Yann Morin (beschikbaar gesteld onder de CC-BY-SA-licentie)

Foto: Ralf Bächle

Onhandig

Ook rond GStreamer is een enthousiaste community ontstaan. Dat maakte de opkomst  op de bijbehorende conferentie wel duidelijk, een dag voor de Embedded Linux Conference Europe: het was er drie keer zo druk als in 2008.

Alle deelnemers waren het erover eens dat het multimediaframework de afgelopen twee jaar veel aan stabiliteit heeft gewonnen. Het is nu echt bruikbaar en er zijn goede producten mee te maken, en niet alleen om audio en video mee af te spelen; er zijn ook al tv-studio‘s waar een flink deel van de apparatuur gebruikmaakt van GStreamer. Goed nieuws is verder dat het framework is gekozen als multimediaback-end voor onder meer Meego.

Projectleider Wim Taymans ziet versie 1.0 al aan de horizon. Hij zegt heel tevreden te zijn met alle feedback die hij de laatste tijd heeft ontvangen. Hoewel de patentsituatie nog steeds onhandig is, lijkt het er dus op dat beeld- en geluidbewerking op Linux volwassen begint te worden.

Pandaboard

Twee jaar geleden sloeg het Beagleboard (beagleboard.org) in als een bom. Dit Omap3-gebaseerde ontwikkelbord is door twee TI-engineers ontworpen in hun vrije tijd. Het kost slechts 170 dollar, terwijl ontwikkelborden gewoonlijk voor meerdere duizenden euro‘s over de toonbank gaan.

Bedrijven en hobbyisten sprongen er dan ook bovenop. Waar werd gehoopt op een paar honderd verkochte Beagleboards, staat de teller inmiddels op ruwweg tienduizend. Verschillende opensourcegroepen werken hard om de oorspronkelijke TI-code te verbeteren voor onder meer Bluetooth, draadloos en multimedia, zodat de code eindelijk kan worden opgenomen in de Linux-kernel. Belangrijke factor in het succes is de meegeleverde distributie Ångström (angstrom-distribution.org). Dit eveneens op Openembedded gebaseerde platform maakt het eenvoudig om een klein embedded bordje om te toveren in een Omap3-desktopcomputer.

Goed voorbeeld doet goed volgen, moeten ze hebben gedacht bij TI. In een poging hetzelfde succes te bereiken met de Omap4 lanceerde een andere groep engineers van de chipfabrikant op de ELC-E het Pandaboard-project (pandaboard.org). Dit initiatief volgt het beproefde recept, maar heeft meteen twintig ingenieurs aangewezen om voltijds te werken aan de community. Natuurlijk is de hoop dat TI hierdoor meer chips verkoopt – de Omap4 met zijn dubbele Arm Cortex-A9-core is een zeer krachtige processor. Als klap op de vuurpijl hebben nog twee TI-groepen vergelijkbare plannen naar buiten gebracht: het Hawkboard en het Leopardboard.

Vacatures

Een aantal maanden geleden was Linaro groot in het nieuws. Dit is alweer een samenwerkingsverband, nu van Arm, Freescale, IBM, Samsung, ST-Ericsson en TI (linaro.org). Waar Yocto zich bezighoudt met buildtools voor embedded in het algemeen, richt dit project zich specifiek op toolketens voor Arm.

Doel van Linaro is om het Arm-platform een flinke kwalitatieve oppepper te geven, onder meer door nu eens echt werk te maken van de diverse optimalisaties van GCC die in omloop zijn. Onderdelen van de compiler kunnen al specifiek code genereren voor de Neon-coprocessor of de Thumb2-instructieset. Linaro wil ervoor zorgen dat al deze code beschikbaar komt in de bestaande GCC-toolketens 4.4 en 4.5. Ook veel werk voor de Linux-kernel dat nooit is gemerged, staat op de radar. Uiteindelijk moet het initiatief een goede, kwalitatief betrouwbare toolketen, debugger en kernel afleveren waarmee andere distributies snel aan de slag kunnen op Arm.

Linaro heeft nu al zeventig engineers en volgens de presentatie in Cambridge zijn er verschillende vacatures. Jammer genoeg was de Linaro Developer Summit tegelijkertijd met de ELC-E, maar dan een continent verderop.