Kom i kontakt

Kursplan

1. Introduktion till Linux-kärnan

  • Översikt över Embedded Linux
  • Linux-kärnans arkitektur
  • Användarutrymme jämfört med kärnutrymme
  • Kärnans ansvarsområden
  • Arbetsflöde för kärnutveckling
  • Översikt över de stödda embedded-plattformarna

2. Installation av utvecklingsmiljön

  • Förbereda arbetsstationen för utveckling
  • Begrepp kring cross-kompilering
  • Installation av nödvändiga utvecklingsverktyg
  • Konfigurera utvecklingskortet BeagleBone Black
  • Seriell konsolkonfiguration
  • Starta målenheten

3. Hämtning och förståelse av kärnkällkoden

  • Linux-kärnans källkodsträd
  • Stabila vs långtidsstöttade kärnor (LTS)
  • Hämta kärnkällkod
  • Kontrollera strukturen i källkoden
  • Kärndokumentation
  • Vårdera kärnversioner

4. Konfiguration, kompilering och start av kärnan

  • Konfigurera kärnan med menuconfig
  • Välja kärnfunktioner
  • Kompilera kärnan för cross-kompilering
  • Bygg kärnavbildningar
  • Installera kärnmoduler
  • Översikt över bootloader
  • Starta en anpassad kärna

5. Grunderna i EnhetsTräd (Device Tree)

  • EnhetsTräds syfte
  • Enhetsträkällfiler (DTS)
  • Enhetsträdblob (DTB)
  • Koncept för hårdvarubeskrivning
  • Ändra enhetsträdfiler
  • Bygg och distribuera EnhetsTräd

6. Linux-kärnmoduler

  • Kärnmodularkitektur
  • Bygga laddningsbara kärnmoduler
  • Ladda och ta bort moduler
  • Modulparametrar
  • Modulberoenden
  • Kommunicera med kärnmoduler
  • Felsökningsmetoder för moduler

7. Felsökning av Linux-kärnan

  • Kärnloggning med printk()
  • Använda dmesg
  • Dynamisk felsökning
  • Analys av Kernel Panic
  • Oops-meddelanden
  • Felsöka med GDB
  • Grunder för prestandaspårningsverktyg

8. Drivrutiner för teckenenheter (Character Device Drivers)

  • Modellen för Linux-enhetsdrivrutiner
  • Teckenenheter
  • Anmäla drivrutiner
  • Filoperationer
  • Läs- och skrivoperationer
  • IOCTL-gränssnittet
  • Minnen hantering
  • Rensa upp drivrutinen

9. Integration av drivrutiner och hårdvaruåtkomst

  • Platformenheter och-drivrutiner
  • GPIO-programmering
  • Avbrotshantering
  • Timers och deferrade arbeten
  • Åtkomst till hårdvaruregistrar
  • Arbeta med minnesspårade I/O (Memory-mapped I/O)

10. Versionshantering med Git

  • Git-grunder
  • Hantera kärnans källkod
  • Grenning och sammanfogning (Branching and merging)
  • Skapa patches
  • Granska ändringar
  • Samarbeta på kärnutveckling

11. Praktiska laborationer i kärnutveckling

  • Konfigurera en anpassad kärna
  • Bygg och distribuera kärnan
  • Skapa en enkel kärnmodul
  • Utveckla en grundläggande drivrutin för teckenenheter
  • Ändra filer för EnhetsTräd (Device Tree)
  • Felsöka kärnproblem på BeagleBone Black

12. Bäst prática och sammanfattning

  • Kodningsstil för kärnan
  • Skriva drivrutiner som går att underhålla
  • Vanliga fallgropar vid utveckling
  • Kärndokumentationsresurser
  • Arbetsflöde för bidrag till öppen källkod
  • Genomgång av nyckelbegrepp
  • Frågor och svar
  • Nästa steg för Linux-kärnutveckling

Krav

Grunder i att använda ett GNU/Linux-system

 14 Timmar

Antal deltagare


Pris per deltagare

Vittnesmål (2)

Kommande Kurser

Relaterade Kategorier