Intrati in legatura

Schița de curs

1. Introducere în Kernel-ul Linux

  • Panou de ansamblu al Linux-ului încorporat
  • Arhitectura kernel-ului Linux
  • Spațiul utilizator versus spațiul kernel
  • Responsabilitățile kernel-ului
  • Fluxul de lucru pentru dezvoltarea kernel-ului
  • Panou de ansamblu al platformelor încorporate suportate

2. Configurarea Mediului de Dezvoltare

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

3. Obținerea și Înțelegerea Surselor Kernel-ului

  • Arcivia surselor kernel-ului Linux
  • Kernele stabile versus cele cu suport pe termen lung (LTS)
  • Descărcarea surselor kernel-ului
  • Explorarea structurii codului sursă
  • Documentația kernel-ului
  • Gestionarea versiunilor kernel-ului

4. Configurarea, Compilarea și Încărcarea Kernel-ului

  • Configurarea kernel-ului utilizând menuconfig
  • Selecția funcționalităților kernel-ului
  • Compilarea încrucișată a kernel-ului
  • Construirea imaginilor kernel-ului
  • Instalarea modulelor kernel-ului
  • Panou de ansamblu asupra bootloader-ului
  • Încărcarea unui kernel personalizat

5. Fundamentele Arborelui de Dispozitive (Device Tree)

  • Scoalul arborelui de dispozitive
  • Fișiere sursă ale arborelui de dispozitive (DTS)
  • Blob-ul arborelui de dispozitive (DTB)
  • Concepte de descriere hardware
  • Modificarea fișierelor arborelui de dispozitive
  • Construirea și implementarea arborilor de dispozitive

6. Modulele Kernel-ului Linux

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

7. Depanarea Kernel-ului Linux

  • Jurnalizarea kernel-ului cu printk()
  • Utilizarea comenzii dmesg
  • Depanarea dinamică
  • Analis panicii kernel-ului
  • Mesaje Oops
  • Depanarea cu GDB
  • Instrumente de bază de urmărire a performanței

8. Drivere pentru Dispozitive Caracter

  • Modelul de driver pentru dispozitive Linux
  • Dispozitivele caracter
  • Înregistrarea driverelelor
  • Operații fișier
  • Operațiile de citire și scriere
  • Interfața IOCTL
  • Gestionarea memoriei
  • Curățarea driverului

9. Integrarea Driverelor și Accesul la Hardware

  • Dispozitive platformă și drivere
  • Programarea GPIO
  • Gestionarea întreruperilor
  • Timer-e și sarcini amânate
  • Accesarea registrilor hardware
  • Lucrul cu intrare/ieșire memorie-mapată

10. Controlul Versiunilor cu Git

  • Fundamentele Git
  • Gestionarea codului sursă al kernel-ului
  • Rameluri și îmbinări (branching and merging)
  • Crearea patch-urilor
  • Revisuirea modificărilor
  • Colaborarea la dezvoltarea kernel-ului

11. Laboratoare Practice de Dezvoltare a Kernel-ului

  • Configurarea unui kernel personalizat
  • Construirea și implementarea kernel-ului
  • Crearea unui modul simplu pentru kernel
  • Dezvoltarea unui driver de bază pentru dispozitive caracter
  • Modificarea fișierelor arborelui de dispozitive
  • Depanarea problemelor kernel-ului pe BeagleBone Black

12. Cele Mai Bune Practici și Rezumat

  • Stilul de programare pentru kernel
  • Scrierea driverelor ușor de întreținut
  • Eșecuri frecvente în dezvoltare
  • Resurse de documentație a kernel-ului
  • Fluxul de lucru pentru contribuția la open-source
  • Revisuirea conceptelor cheie
  • Răspunsuri la întrebări
  • Următorii pași în dezvoltarea kernel-ului Linux

Cerințe

Cunoștințe de bază despre utilizarea unui sistem GNU/Linux

 14 Ore

Numărul de participanți


Pret per participant

Mărturii (2)

Cursuri viitoare

Categorii înrudite