Intrati in legatura
 Durata 14 ore

Schița de curs

1. Introducere în kernelul Linux

  • Prezentare generală a Linux embedded
  • Arhitectura kernelului Linux
  • Spațiul utilizator vs. spațiul kernel
  • Responsabilitățile kernelului
  • Fluxul de lucru pentru dezvoltarea kernelului
  • Prezentarea platformelor embedded suportate

2. Configurarea mediului de dezvoltare

  • Pregătirea stației de lucru pentru dezvoltare
  • Concepte de compilare încrucișată
  • Instalarea instrumentelor de dezvoltare necesare
  • Configurarea plăcii de dezvoltare BeagleBone Black
  • Configurarea consolei seriale
  • Pornirea dispozitivului țintă

3. Obținerea și înțelegerea codului sursă al kernelului

  • Arborele de cod sursă al kernelului Linux
  • Kerneluri stabile vs. kerneluri cu suport pe termen lung
  • Descărcarea surselor kernelului
  • Explorarea structurii codului sursă
  • Documentația kernelului
  • Gestionarea versiunilor de kernel

4. Configurarea, compilarea și pornirea kernelului

  • Configurarea kernelului folosind menuconfig
  • Selectarea funcționalităților kernelului
  • Compilarea încrucișată a kernelului
  • Construirea imaginilor de kernel
  • Instalarea modulelor de kernel
  • Prezentarea bootloaderului
  • Pornirea unui kernel personalizat

5. Fundamentele Device Tree

  • Scopul Device Tree
  • Fișierele Device Tree Source (DTS)
  • Device Tree Blob (DTB)
  • Concepte de descriere a hardwareului
  • Modificarea fișierelor Device Tree
  • Construirea și implementarea Device Tree

6. Module de kernel Linux

  • Arhitectura modulelor de kernel
  • Construirea modulelor de kernel încărcabile
  • Încărcarea și descărcarea modulelor
  • Parametrii modulelor
  • Dependențele modulelor
  • Interacțiunea cu modulele de kernel
  • Tehnici de depanare a modulelor

7. Depanarea kernelului Linux

  • Jurnalizarea kernelului cu printk()
  • Utilizarea dmesg
  • Depanare dinamică
  • Analiza panicării kernelului
  • Mesajele Oops
  • Depanare cu GDB
  • Instrumente de bază pentru urmărirea performanței

8. Drivere de dispozitiv de tip caracter

  • Modelul de drivere de dispozitiv din Linux
  • Dispozitive de tip caracter
  • Înregistrarea driverelor
  • Operații pe fișiere
  • Operații de citire și scriere
  • Interfața IOCTL
  • Gestionarea memoriei
  • Eliberarea resurselor driverului

9. Integrarea driverelor și accesul la hardware

  • Dispozitive și drivere de platformă
  • Programarea GPIO
  • Gestionarea întreruperilor
  • Temporizatoare și lucru amânat
  • Accesarea registrelor hardware
  • Lucrul cu I/O mapat în memorie

10. Controlul versiunilor cu Git

  • Bazele Git
  • Gestionarea codului sursă al kernelului
  • Branching și merging
  • Crearea de patchuri
  • Revizuirea modificărilor
  • Colaborarea în dezvoltarea kernelului

11. Laboratoare hands-on de dezvoltare a kernelului

  • Configurarea unui kernel personalizat
  • Construirea și implementarea kernelului
  • Crearea unui modul de kernel simplu
  • Dezvoltarea unui driver de caracter de bază
  • Modificarea fișierelor Device Tree
  • Depanarea problemelor de kernel pe BeagleBone Black

12. Bune practici și rezumat

  • Stilul de codare pentru kernel
  • Scrierea de drivere ușor de întreținut
  • Capcane comune de dezvoltare
  • Resurse de documentație a kernelului
  • Fluxul de lucru pentru contribuții open-source
  • Rezumatul conceptelor cheie
  • Întrebări și răspunsuri
  • Pașii următori pentru dezvoltarea kernelului Linux

Cerințe

Familiaritate de bază cu utilizarea unui sistem GNU/Linux

Numărul de participanți


Pret per participant

Mărturii (2)

Cursuri viitoare

Categorii înrudite