Takk for at du sendte din henvendelse! En av våre teammedlemmer vil kontakte deg straks.
Takk for at du sendte din bestilling! En av våre teammedlemmer vil kontakte deg straks.
Varighet 14 timer
Kursplan
1. Innføring i Linux-kjernen
- Oversikt over innebygd Linux
- Linux-kjernes arkitektur
- Brukerrom vs. kjernerom
- Kjernen ansvarsområder
- Kjerneutviklingsprosess
- Oversikt over støttede innebygde plattformer
2. Innretting av utviklingsmiljø
- Forberedelse av utviklingsarbeidsstasjonen
- Konsepter for krysskompilering
- Installasjon av nødvendige utviklingsverktøy
- Innretting av BeagleBone Black-utviklingskortet
- Konfigurasjon av seriell konsoll
- Opptast av målutstyret
3. Innhenting og forståelse av kjernens kildekode
- Linux-kjernes kildekodeløype
- Stabile kjerner vs. kjerner med langtidssupport
- Nedlasting av kjernekildekoder
- Utforskning av kildekodestrukturen
- Kjedokumentasjon
- Versjonsstyring av kjerner
4. Konfigurering, kompilering og oppstart av kjernen
- Konfigurering av kjernen med menuconfig
- Valg av kjernefunksjoner
- Krysskompilering av kjernen
- Bygging av kjernebilder
- Installasjon av kjernemoduler
- Oversikt over bootloadere
- Oppstart av en tilpasset kjerne
5. Grunnleggende kunnskaper om enhetre (Device Tree)
- Formålet med enhetre (Device Tree)
- Enhetrekildefiler (DTS-filer)
- Enhetreblob (DTB)
- Konsepter for hardvarebeskrivelse
- Modifisering av enhetre-filer
- Bygging og utsettelse av enhetre
6. Linux-kjernemoduler
- Arkitektur for kjernemoduler
- Bygging av lastbare kjernemoduler
- Lasting og avlasting av moduler
- Moduparametre
- Modavhengigheter
- Interaksjon med kjernemoduler
- Feilsøkningsteknikker for moduler
7. Feilsøking i Linux-kjernen
- Kjeloggføring med printk()
- Bruk av dmesg
- Dynamisk feilsøking
- Analyse av kjerneheng (kernel panic)
- Oops-meldinger
- Feilsøking med GDB
- Grunnleggende verktøy for ytelsestracing
8. Karakterenhetssjåfører (Character Device Drivers)
- Linux-enhetssjåførmodell
- Karakterenheter
- Registrering av sjåfører
- Filtoperasjoner
- Les- og skriveoperasjoner
- IOCTL-grensesnitt
- Minnestyring
- Rensing av sjåfør
9. Integrering av sjåfører og tilgang til hardvare
- Plattformenheter og -sjåfører
- GPIO-programmering
- Avbrytsbehandling (interrupt handling)
- Tidsur og utsatt arbeid
- Tilgang til hardvareregistre
- Arbeid med minnekortet I/O
10. Versjonsstyring med Git
- Git-grunnleggende
- Styring av kjernekildekode
- Grener og sammenmerging
- Opprettelse av rettelsesprogrammer (patches)
- Gjennomgang av endringer
- Samarbeid i kjerneutvikling
11. Hands-on-laboratorier for kjerneutvikling
- Konfigurering av en tilpasset kjerne
- Bygging og utsettelse av kjernen
- Opprettelse av en enkel kjernemodul
- Utvikling av en grunnleggende karakterenhetssjåfør
- Modifisering av enhetre-filer
- Feilsøking av kjerneproblemer på BeagleBone Black
12. Beste praksis og oppsummering
- Kjekoderingsstil
- Skriv vedlikeholdbare sjåfører
- Vanlige feil ved utvikling
- Ressurser for kjeranedokumentasjon
- Arbeidsflyt for bidrag til open source
- Gjennomgang av viktige konsepter
- Spørsmål og svar
- Neste steg i Linux-kjerneutvikling
Krav
Grunnleggende kjennskap til bruk av et GNU/Linux-system
Referanser (2)
Trainerens kunnskaper. Han kunne svare på alle mine spørsmål, selv spørsmål om vår plattform. Han fortsatte også å hjelpe oss inntil vi alle forsto stoffet.
James O'Donnell - Tennant Company
Kurs - Embedded Linux Kernel and Driver Development
Maskinoversatt
I liked the hands-on nature of it.
Maurice Egan
Kurs - Embedded Linux Kernel and Driver Development
Maskinoversatt