Kom i kontakt

Kursplan

1. Inledning till Linux-kärnan

  • Översikt över inbäddad Linux
  • Linux-kärnans arkitektur
  • Användarutrymme vs. kärnutrymme
  • Kärnans ansvarsområden
  • Arbetsflöde för kärnutveckling
  • Översikt över supportade inbäddade plattformar

2. Inrättning av utvecklingsmiljön

  • Utgångspunkt för utvecklingsstationen
  • Concepts av korskompilering
  • Installation av nödvändiga utvecklingsverktyg
  • Inrättning av BeagleBone Black-utvecklingskortet
  • Konfiguration av seriell konsol
  • Start av mål enheten

3. Hämta och förstå kärnans källkod

  • Linux-kärnans källkodsstruktur
  • Stabila vs. långtidsstödda kärnor
  • Laddning ned av kärnans källkod
  • Utforskning av källkodens struktur
  • Dokumentation för kärnan
  • Hantering av kärnaversioner

4. Konfigurera, kompilera och starta kärnan

  • Kärnkonfiguration med menuconfig
  • Välj kärnfunktioner
  • Korskompilering av kärnan
  • Bygg av kärnbilder
  • Installation av kärnomoduler
  • Översikt av bootladdaren
  • Start av en anpassad kärna

5. Grunderna i Device Tree

  • Device Trees syfte
  • Device Tree Source (DTS)-filer
  • Device Tree Blob (DTB)
  • Koncept för hårdvarubeskrivning
  • Ändring av Device Tree-filer
  • Bygg och distribution av Device Trees

6. Linux-kärnomoduler

  • Arkitektur för kärnomoduler
  • Bygg av laddningsbara kärnomoduler
  • Laddning och urladdning av moduler
  • Modulparametrar
  • Modulberoenden
  • Interaktion med kärnomoduler
  • Tekniker för felsökning av moduler

7. Felsökning av Linux-kärnan

  • Kärnologgning med printk()
  • Användning av dmesg
  • Dynamisk felsökning
  • Analys av kärnpanik
  • Oops-meddelanden
  • Felsökning med GDB
  • Grundläggande prestandaspårningsverktyg

8. Karakterdrivrutiner

  • Linux-drivrutinmodell
  • Karaktermålenheter
  • Registrering av drivrutiner
  • Filoperationer
  • Läs- och skrivoperationer
  • IOCTL-gränssnitt
  • Minneshantering
  • Rensning av drivrutiner

9. Integrering av drivrutiner och åtkomst till hårdvara

  • Plattformar och drivrutiner
  • GPIO-programmering
  • Störningshantering
  • Timrar och utskjutna arbetsuppgifter
  • Åtkomst till hårdvaruregistrarer
  • Arbetande med minnesmappad in-ut

10. Versionshantering med Git

  • Git-grunder
  • Hantering av kärnans källkod
  • Grening och sammanslagning
  • Skapande av patchar
  • Granskning av ändringar
  • Samarbete inom kärnutveckling

11. Praktiska laborationsövningar i kärnutveckling

  • Konfigurering av en anpassad kärna
  • Bygg och distribution av kärnan
  • Skapande av en enkel kärnomodul
  • Utveckling av en grundläggande karakterdrivrutin
  • Ändring av Device Tree-filer
  • Felsökning av kärnproblem på BeagleBone Black

12. Bästa praxis och sammanfattning

  • Kodstil för kärnan
  • Skrivning av underhållsbara drivrutiner
  • Vanliga utvecklingsfällor
  • Dokumentationsresurser för kärnan
  • Arbetsflöde för bidrag till öppen källkod
  • Genomgång av centrala koncept
  • Frågor och svar
  • Nästa steg i Linux-kärnutveckling

Krav

Grundläggande kännedom om att använda ett GNU/Linux-system.

 14 Timmar

Antal deltagare


Pris per deltagare

Vittnesmål (2)

Kommande Kurser

Relaterade Kategorier