Neem contact met ons op

Cursusaanbod

1. Inleiding tot de Linux-kernel

  • Overzicht van ingebedde Linux
  • Architectuur van de Linux-kernel
  • Gebruikersruimte (user space) vs. kernelruimte (kernel space)
  • Verantwoordelijkheden van de kernel
  • Werkflow voor kernelontwikkeling
  • Overzicht van ondersteunde ingebedde platformen

2. Inrichten van de ontwikkelomgeving

  • Voorbereiden van het ontwikkelstation
  • Begrippen rondom cross-compilatie
  • Installatie van vereiste ontwikkelingshulpmiddelen
  • Instellen van het BeagleBone Black ontwikkelingsbord
  • Configuratie van de serielele console
  • Opstarten van het doeleindetoestel

3. Verkrijgen en begrijpen van de kernalcodebron/h3>
  • Linux-kernelbroncodeboom
  • Stabiele kernels vs. kernels met langdurige ondersteuning
  • Downloaden van de kernalcodebronnen
  • Verkenning van de structuur van de broncode
  • Kernel-documentatie
  • Beheer van kernelversies

4. Configureren, compileren en opstarten van de kernel

  • Kernelconfiguratie met behulp van menuconfig
  • Selecteren van kernelfuncties
  • Cross-compileren van de kernel
  • Bouwen van kernelafbeeldingen
  • Installeren van kernalmodules
  • Overzicht van de bootloader
  • Opstarten van een aangepaste kernel

5. Basisbegrippen van Device Tree

  • Doel van Device Tree
  • Device Tree Source (DTS)-bestanden
  • Device Tree Blob (DTB)
  • Begrippen rondom hardwarebeschrijving
  • Aanpassen van Device Tree-bestanden
  • Bouwen en implementeren van Device Trees

6. Linux-kernalmodules

  • Architectuur van kernalmodules
  • Bouwen van laadbare kernalmodules
  • Laden en ontladen van modules
  • Moduleparameters
  • Afhankelijkheden van modules
  • Interactie met kernalmodules
  • Technieken voor het debuggen van modules

7. Debuggen van de Linux-kernel

  • Kernelloggen met printk()
  • Gebruik van dmesg
  • Dynamisch debuggen
  • Analyse van kernel panics
  • Oops-berichten
  • Debuggen met GDB
  • Basisprestatiesporen (performance tracing) tools

8. Karakterapparaatstuurprogramma's

  • Linux-apparaatstuurprogramma-model
  • Karakterapparaten
  • Registreren van stuurprogramma's
  • Bestandsoperaties
  • Lees- en schrijfoperaties
  • IOCTL-interface
  • Gheugbeheer
  • Opschonen van stuurprogramma's

9. Stuurprogrammaintegratie en hardware-toegang

  • Platformapparaten en -stuurprogramma's
  • GPIO-programmering
  • Bewerking van onderbrekingen (interrupts)
  • Timers en uitgestelde taken (deferred work)
  • Toegang tot hardware-registers
  • Werken met memory-mapped I/O

10. Versiebeheer met Git

  • Git-basisbegrippen
  • Beheer van kernalcodebroncode
  • Takken (branching) en samenvoegen (merging)
  • Creëren van patches
  • Beoordelen van wijzigingen
  • Samenwerken aan kernelontwikkeling

11. Hands-on lab's voor kernelontwikkeling

  • Configureren van een aangepaste kernel
  • Bouwen en implementeren van de kernel
  • Creëren van een eenvoudige kernalmodule
  • Ontwikkelen van een basis karakterapparaatstuurprogramma
  • Aanpassen van Device Tree-bestanden
  • Debuggen van kernelproblemen op BeagleBone Black

12. Beste praktijken en samenvatting

  • Stijl voor kernelcoderen
  • Schrijven van onderhoudbare stuurprogramma's
  • Gemene valkuilen in de ontwikkeling
  • Kernel-documentatiebronnen
  • Werkflow voor open-source bijdragen
  • Bespreking van kernbegrippen
  • Vragen en antwoorden
  • Volgende stappen voor Linux-kernelontwikkeling
}

Vereisten

Basisbekendheid met het gebruik van een GNU/Linux-systeem

 14 Uren

Aantal deelnemers


Prijs per deelnemer

Getuigenissen (2)

Voorlopige Aankomende Cursussen

Gerelateerde categorieën