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.

Utbildningen genomförs antingen under två eller tre dagar. Fördelningen av innehållet under dagarna är:

  • Dag 1 till 2
    • Vad Yocto Project är
    • Att sätta upp en utvecklingsmiljö med Yocto
    • Hur man skapar recept och lager
    • Hur man utökar och anpassar befintliga lager
    • Hur man skapar en egen Image
    • Hur man skapar en SDK för applikationsutveckling
  • Dag 3
    • Vad klasser är och hur de fungerar
    • Hur man patchar källkod och hur man kan förändra konfigurationen för applikationer
    • Hur man säkert uppdaterar ett inbyggt system
    • Vad toaster är
    • Hur man kan felsöka


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.

Bakgrundskunskaper
Deltagarna förväntas ha grundläggande kunskaper i Linux och ha grundläggande kännedom om mjukvaruutveckling.

Språk
Utbildningsmaterialet finns både på engelska och på svenska. Utbildningen genomförs på svenska eller engelska.

Kurslängd
Kursen genomförs under två eller tre dagar.

Innehåll

Dag 1 till 2:
  • 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 3:
  • 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


Mer information
För mer information kontakta Åsa Detterfelt, 070-659 58 12, alternativt maila asa.detterfelt@mindroad.se.