Mulțumim pentru trimiterea solicitării! Un membru al echipei noastre vă va contacta în curând.
Mulțumim pentru trimiterea rezervării! Un membru al echipei noastre vă va contacta în curând.
Schița de curs
1. Introducere în nucleul Linux
- Panorama generală a Linux-ului integrat
- Arechitectura nucleului Linux
- Diferența dintre spațiul utilizator și spațiul kernel
- Responsabilitățile nucleului
- Fluxul de lucru pentru dezvoltarea nucleului
- Panorama generală a platformelor embedded suportate
2. Configurarea mediului de dezvoltare
- Pregătirea stației de lucru pentru dezvoltare
- Concepte de compilare încrucișată (cross-compilation)
- Instalarea instrumentelor de dezvoltare necesare
- Configurarea plăcii de dezvoltare BeagleBone Black
- Configurarea consolei seriale
- Încărcarea în memorie (booting) a dispozitivului țintă
3. Obținerea și înțelegerea codului sursă al nucleului
- Arborele de cod sursă al nucleului Linux
- Nuclei stabili versus nuclee cu suport pe termen lung (LTS)
- Descărcarea surselor nucleului
- Explorarea structurii codului sursă
- Documentația nucleului
- Gestionarea versiunilor nucleului
4. Configurarea, compilarea și încărcarea în memorie a nucleului
- Configurarea nucleului folosind menuconfig
- Selectarea caracteristicilor nucleului
- Compilarea încrucișată a nucleului
- Construirea imaginilor nucleului
- Instalarea modulelor nucleului
- Panorama generală a bootloader-ului
- Încărcarea în memorie a unui nucleu personalizat
5. Fundamentele Arborelui de Dispozitive (Device Tree)
- Scopul Arborelui de Dispozitive
- Fișiere sursă ale Arborelui de Dispozitive (DTS)
- Blob-ul Arborelui de Dispozitive (DTB)
- Concepte de descriere a hardware-ului
- Modificarea fișierelor Arborelui de Dispozitive
- Construirea și deploy-ul Arborescilor de Dispozitive
6. Modulele nucleului Linux
- Arechitectura modulelor nucleului
- Compilarea modulelor încărcabile ale nucleului
- Încărcarea și descărcarea modulelor
- Parametrii modulului
- Dependențele modulelor
- Interacțiunea cu modulele nucleului
- Tehnici de depanare a modulelor
7. Depanarea nucleului Linux
- Înregistrarea jurnalelor nucleului prin printk()
- Utilizarea utilitarului dmesg
- Depanarea dinamică
- Analiza panicii nucleului
- Mesaje Oops
- Depanarea cu GDB
- Instrumente de bază pentru trasarea performanței
8. Drivere de dispozitive de tip caracter
- Modelul de drivere de dispozitive Linux
- Dispozitive de tip caracter
- Înregistrarea driverelor
- Operații cu fișiere
- Operațiile de citire și scriere
- Interfața IOCTL
- Gestionarea memoriei
- Curățarea driverului
9. Integrarea driverelor și accesul la hardware
- Dispozitive și drivere de platformă
- Programarea GPIO
- Gestionarea întreruperilor
- Timmere și sarcini amânate (deferred work)
- Accesul la registrile hardware
- Lucrul cu E/I mapat în memorie
10. Controlul versiunilor cu Git
- Fundamentele Git
- Gestionarea codului sursă al nucleului
- Rămuri și fuziuni (branching and merging)
- Crearea patch-urilor
- Revizuirea modificărilor
- Colaborarea în dezvoltarea nucleului
11. Laboratoare practice de dezvoltare a nucleului
- Configurarea unui nucleu personalizat
- Construirea și deploy-ul nucleului
- Crearea unui modul simplu pentru nucleu
- Dezvoltarea unui driver de dispozitiv de tip caracter de bază
- Modificarea fișierelor Arborelui de Dispozitive
- Depanarea problemelor nucleului pe BeagleBone Black
12. Practici recomandate și rezumat
- Stilul de codare pentru nucleu
- Scrierea driverelor care sunt ușor de întreținut
- Pitfall-uri comune în dezvoltare
- Resurse de documentație a nucleului
- Fluxul de lucru pentru contribuția la open-source
- Revizuirea conceptelor cheie
- Întrebări și răspunsuri
- Pașii următori pentru dezvoltarea nucleului Linux
Cerințe
Familiaritate de bază cu utilizarea unui sistem GNU/Linux
14 Ore
Mărturii (2)
Cunoașterea instrucționarului. A reușit să răspundă la toate întrebările mele, chiar și cele referitoare la platforma noastră. De asemenea, a continuat să ne ajute până am înțeles complet materialul.
James O'Donnell - Tennant Company
Curs - Embedded Linux Kernel and Driver Development
Tradus de catre o masina
I liked the hands-on nature of it.
Maurice Egan
Curs - Embedded Linux Kernel and Driver Development
Tradus de catre o masina