Utveckling av inbyggda system med Yocto Project






Produkter med inbyggda system har vuxit både i storlek och i funktionalitet från små kontroll- och mätenheter till uppkopplade produkter med ett stort antal applikationer. Det kan vara produkter med grafiska användargränssnitt eller webbaserade användargränssnitt som hanterar många nätverksprotokoll med olika standarder som t ex TCP/IP.
Linux är idag det vanligaste valet när man utvecklar mer kraftfulla och uppkopplade inbyggda system. Linux går att köra på ett antal olika arkitekturer som PowerPC, ARM och MIPS och stöder alla sorters applikationer. Det gör det möjligt att snabbt få upp det mesta av ett inbyggt system med hjälp av standardverktyg och standardapplikationer.
Yocto Projects är idag det verktyg som de flesta använder för att utveckla ett inbyggt system i Linux. Yocto är en industristandard och har funnit sedan 2010. Projektet drivs av Linux Foundation och stöds av flera stora företag.
I kursen går vi igenom hur man börjar utveckla i Yocto och gör en djupdykning i byggsystemet, utveckling av recept, lager och hur man konfigurerar och optimerar Yocto. Det ingår ett antal övningar där du får prova på olika aspekter på utvecklingsprocessen för ett inbyggt Linux-system. Övningarna utförs på ett ARM-baserat kort som heter BeagleBone black.
Utbildningsformer
Remote
Längd
2 dagar
Pris
20450 kr
Målgrupp
Målgruppen är utvecklare som snabbt vill komma igång med att utveckla inbyggda Linux-system med Yocto.
Mål
Efter genomgången utbildning vet du vilka möjligheter Yocto Project erbjuder. Du har de praktiska verktygen för att utveckla ett inbyggt Linux-system med Yocto.
Förkunskaper
Deltagarna förväntas ha grundläggande kunskaper i Linux och ha grundläggande kännedom om mjukvaruutveckling.
Utbildningsmaterialet finns både på engelska och på svenska. Utbildningen genomförs på svenska eller engelska.
Kursinnehåll: Utveckling av inbyggda system med Yocto Project
Dag 1
Inledning
- Embedded Linux
- De fyra elementen
Introduktion till Yocto
- Poky
- Översikt över Yocto och hur allt hänger ihop
- Exempel
Bitbake
- Sätta upp miljön
- Filtyper
- Tasks
- Bitbakeoperationer
- Byggkatalogen
Konfiguration
- Enskilda byggen
- Konfigurationer för meta-lager
- Maskinkonfigurationer i BSP-lager
Recept
- Hur man skriver recept
- Appendfiler
- Exempelfiler
- Externa resurser
- Licenshantering
- Virtuella recept/paket
- Python tasks, datastore och events
Meta-lager
- Vad är ett lager och översikt över lager
- Standardlager som finns
- Skapa nya lager
- BSP-lager
- Lager med imagerecept och image-konfiguration
SDK - Software Development Kit
- Översikt och inledning
- Tillgängliga SDK
- Generisk SDK och Imagebaserad SDK
- Installera och använda SDK
Optimering och jobba effektivare
- Sstate cache
- rm_work
- nedladdning av källkod
- Spegelsiter och proxys
Dag 2
Klasser
- Introduktion till klasser
- Vanliga klasser
- Arv och inkludering
Patchar
- Patcha källkod
- Förändra paketkonfiguration (bootloader, Linuxkärna etc.)
Säker uppdatering av målsystemet
- Varför uppdatera
- Om uppdateringar
- Symmetrisk och asymetrisk uppdatering
- U-Boot-variabler
- Olika programvaror och exempel med Mender
- Atomär filuppdatering
Toaster & felsökning
- Toaster
- Felsökning
Referenser