Linuxsystem från grunden

Möjligheten att bygga ett anpassat Linuxsystem är en nödvändighet för inbyggda produkter.

Rätt funktioner och inget mer är sunda principer när man tar fram ett inbyggt system. Genom att eliminera onödiga funktioner får man ett mindre, snabbare, stabilare och säkrare system.

För att kunna leverera moderna Linuxsystem till våra kunder har vi på Martinsson använt Yocto sedan det skapades. Nedan följer en kort sammanfattning om vad Yocto är och varför vi uppskattar det så mycket.

Yocto är ett byggsystem som sammanställer ett komplett Linuxsystem från källkod. Här ingår allt från bootloaders, kärna och root-filsystem, allt man behöver. 

Systemet har sitt ursprung i OpenEmbedded och hämtar för närvarande sitt byggsystem därifrån. Även om man kan använda OpenEmbedded direkt så är Yocto ett mer tillgänglig ekosystem där dokumentation, referensdistributioner och standarder alla hjälper till att göra systemet så lättillgängligt som möjligt.

Hierarkisk uppbyggnad

Yocto bygger på recept som hanteras i lager. Ett recept berättar vad som skall byggas samt hur detta sker. Ett recept kan i sin tur återanvända generell funktionalitet från klasser. Hela systemet konfigureras enkelt upp med konfigurationsfiler. 

Lagerhantering gör att man lätt kan byta ut och modifiera befintlig kod. Detta gör allt väldigt strukturerat när man vill skräddarsy sitt system samt bidrar till att minimera underhåll. 

Gjord för att anpassas

Yocto har en referensdistribution som kallas Poky. Denna distribution är en bra utgångspunkt för ett eget system.

Poky

Om man vill lägga till ex Qt-funktionalitet till sin skräddarsydda distribution importerar man Qt5 lagren till sitt arbetsträd och berättar för Yocto att man vill arbeta med dessa (via konfigurationsfil). Nu behöver man bara inkludera de paketnamn man är intresserade av, från Qt5, i recepten. 

Behöver man modifiera något specifikt i ett recept kan man bifoga (append) dessa ändringar utan att för den delen behöva modifiera eller skriva om det ursprungliga receptet. Detta har enorma fördelar vid underhåll.


Transparent maskinstöd

Maskinberoende paket läggs i så kallade bsp-lager. Dessa lager berättar för Yocto vilken bootloader, kärna, och andra komponenter som skall användas. Det är inga problem att ha flera av dessa lager i sitt arbetsträd.  Allt som behövs är en ändring i en konfigurationsfil för att bygga om hela systemet till en annan hårdvaruplattform. Detta är väldigt effektivt när man vill uppdatera eller köra sin produkt på flera olika maskiner, och minimerar behovet av testning.

SDK

Yocto har även möjligheten att generera en komplett SDK (Software Development Kit) tillhörande Linuxsystemet för programutveckling. Detta har fördelen att allt kommer vara kompatibelt då SDK genereras från de filer som användes vid sammanställning av systemet. Det är såklart möjligt att skapa recept för sina egna projekt direkt i Yocto.


Sammanfattning

Genom att använda Yocto för att bygga upp sina Linuxdistributioner har man alltid en modern distribution utformad efter sina specifika krav. Underhåll av egna ändringar är enkelt med lager och klasser, och stöd för flera plattformar sker transparent. 

Yocto hjälper oss, och er, att hålla sig uppdaterad utan större omkostnader och ger tillgång till enormt mycket från open source samhället.


Tillbaka till alla artiklar

Article Yocto