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.
Kursplan
1. Innføring i Linux-kjernen
- Oversikt over innbygd Linux
- Arkitektur for Linux-kjernen
- Brukerrom kontra kjernemodus
- Kjernens ansvar
- Arbeidsflyt ved utvikling av kjernen
- Oversikt over støttede innbygde plattformer
2. Oppsett av utviklingsmiljøet
- Forbereding av utviklingsarbeidsstasjonen
- Konsepter for kryss-kompilering
- Installasjon av nødvendige verktøy
- Oppsett av BeagleBone Black-utviklingskort
- Seriell konsollkonfigurasjon
- Oppstart av målenheten
3. Skaffe og forstå kjenekildekoden
- Kjerekode-trestrukturen
- Stabile vs. langtidssiktede versjoner
- Nedlasting av kildekode
- Utforskning av kildekodestrukturen
- Dokumentasjon for kjernen
- Håndtering av kjerneversjoner
4. Konfigurasjon, kompilering og oppstart av kjernen
- Konfigurasjon med menuconfig
- Valg av funksjoner i kjernen
- Kryss-kompilering av kjernen
- Bygging av kjernebilder
- Installasjon av kjernemoduler
- Oversikt over oppstartere (bootloader)
- Oppstart av en tilpasset kjerne
5. Grunnleggende om enhetstre (Device Tree)
- Hensikten med enhetstre
- Kilder for enhetstre (DTS-filer)
- Filer som inneholder kompilert enhetstre (DTB)
- Konsepter for maskinvarebeskrivelse
- Modifisering av enhetstre-filer
- Bygging og distribusjon av enhetstre
6. Linux-kjernemoduler
- Arkitektur for kjerne-moduler
- Bygging av lastbare moduler
- Lasting og fjerning av moduler
- Modulparametre
- Avhengigheter mellom moduler
- Interaksjon med kjerne-moduler
- Felletsøkning i moduler
7. Felletsøking av Linux-kjernen
- Kjede logging via printk()
- Bruk av dmesg
- Dynamisk felletsøking
- Analyse av kernel panic
- Oops-meldinger
- Felletsøking med GDB
- Enkle verktøy for ytelsessporing
8. Karaktère driver
- Modellen for Linux-enhetsdrivere
- Karakter enheter
- Registrering av drivere
- Filoperasjoner
- Lese- og skriveoperasjoner
- IOCTL-grensesnittet
- Hukommelseshåndtering
- Rydding av drivere
9. Integrasjon av drivere og tilgang til maskinvare
- Platformedenheter og -drivere
- GPIO-programmering
- Håndtering av avbrudd (interrupts)
- Tidsstyrt arbeid og utsatt kjøring
- Tilgang til maskinvareregister
- Jobbing med minneavbildet I/O
10. Versjonskontroll med Git
- Git-funksjonalitet
- Håndtering av kildekode for kjernen
- Greininger og sammenslåing (branching and merging)
- Oppretting av patcher
- Review av endringer
- Samarbeid ved utvikling av kjernen
11. Praktiske øvelser med kjerneutvikling
- Konfigurasjon av en tilpasset kjerne
- Bygging og distribusjon av kjernen
- Oppretting av en enkel kjerne-modul
- Utvikling av en grunnleggende karakterdriver
- Modifisering av enhetstre-filer
- Felletsøking av kjerne-problemer på BeagleBone Black
12. Beste praksis og oppsummering
- Kodestil for kjernen
- Skriving av vedlikeholdbare drivere
- Vanlige fallgruber under utvikling
- Ressurser for kjerndokumentasjon
- Arbeidsflyt for bidrag til åpen kildekode
- Gjennomgang av nøkke-konsepter
- Forespørsler og svar
- Neste steg innen utvikling av Linux-kjernen
Krav
Basis kjennskap til bruk av GNU/Linux-system
14 Timer
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