Réservez les formations disponibles partout en France !

location-dot
location-dot
location-dot
À partir de
location-dot
d5c159e3-16fb-47fc-9613-28213b21399a
image OF
  1. Accueil
  2. Numérique
  3. Informatique
  4. Linux
  5. Noyau Linux et développement de drivers
Noyau Linux et développement de drivers

Noyau Linux et développement de drivers

Qualiopi
En centre
Non éligible CPF
Objectifs
Programme

Introducing the Linux kernel (architecture, compilation)
Introducing the kernel development APIkernel module API
char, network and block devices
kernel support for PCI, USB and platform device
Introducing the device tree
Debugging and profiling  kernel and drivers

A practical work is available for each item with a “star” (*).

Linux introduction

  • Introducing the Linux project
  • Licensing !
  • Linux (UNIX) architecture (user/kernel space)
  • Introducing “systemd”
  • Using Linux kernel sourcesObtaining the source code
    Configuration
    Native (x86) and cross compilation (ARM) *

The kernel module API

  • Writing a simple “Hello World” module *The “init” and “exit” functions
    Writing a Makefile *
    Loading and unloading module using “kmod”
  • Module dependencies *
  • Using module parameters *

The char driver API

  • Module vs driver
  • Drivers categories (char, block, network)
  • Char driver syscalls (open, read, write, close, ioctl)
  • Registering a char driver *
  • Using kernel “classes” *
  • Using the CDEV interface *
  • Locking features (“spinlock” and “mutex”) *
  • Managing hardwareMemory allocation *
    Interrupt handling *
    I/O ports and memory-mapped access *
    Memory mapping (the “mmap” system call) *
    DMA *
  • Writing a generic PCI driver *
  • Writing a simple USB driver (HID) *
  • Using the platform device/driver API for embedded systemsIntroducing the device tree (with the QEMU/ARM platform)
    DT syntax and examples *
    Using “configfs” to load a DT overlay *

The network driver API

  • Using Linux network
  • Introducing network drivers
  • The “net_device” and “net_device_ops” structures
  • Socket buffer (SKB)
  • Writing and testing the “faketh” dummy network driver *

The block driver API

  • Block driver vs char driver
  • The new “blk-mq” framework (Linux kernel 5.x)
  • Writing a simple block driver (using ramdisk) *

Interacting with user space

  • Device node approach limitation (USB but no hotplug !)
  • Understanding “sysfs”
  • Using “udev”  *
  • “Netlink” sockets
  • Writing and testing rules *
  • modalias (device / driver association) *
  • Using “udevadm”

Debugging drivers

  • Using GDB in kernel space (QEMU/ARM)
  • Debugging static kernel and module (.ko)
  • Profiling kernel and drivers with Ftrace (debugfs) -> trace-cmd
Public visé

Linux developers, Linux projects managers

Prérequis
  • UNIX/Linux knowledge (using the shell !)
  • C language knowledge

Matériel :

The training materials are provided as an .ova (Open Virtual Archive) file. It is therefore necessary to install VirtualBox on the target machine used by the trainee. In order to save time it is advisable to pre-install VirtualBox before the date of the training. Full installation (in order to have an optimized screen resolution) requires installing the extension pack, see: https://www.virtualbox.org/wiki/Downloads.

Supported operating systems are:

  • Windows (XP or higher)
  • Linux
  • Mac OS X 10.5 or higher

The following table shows the PC requirements (type of CPU, RAM, free space on the hard disk).

- CPU : i5 or better
- RAM : 4Gb or more
- Disk : 30 GB or more

Méthodes pédagogiques

Tous nos stages reposent sur une alternance entre transfert de savoir-faire et d’attitudes, avec des exercices concrets, des tests avec les participants et des analyses de situations. Cette méthode permet une appropriation rapide des sujets par les stagiaires.
Notre formateur s’appuie sur les connaissances préexistantes du stagiaire. Il combine diverses modalités pédagogiques : des exposés théoriques, des temps d’échanges, des études de cas, permettant à l’apprenant d’être acteur de la séance de formation.
Lors des formations en groupe, l’accent est mis sur l’interactivité, intégrant ainsi la possibilité de progresser en équipe et de réussir ensemble.
Le scénario de nos cours est adapté afin de faire directement référence aux attentes des stagiaires. Les exemples et exercices sont, dans la mesure du possible, au plus près des missions réalisées par vos collaborateurs.
En effet, notre processus de personnalisation d’accès à la formation nous conduit à choisir et combiner différentes méthodes classiques qui ont fait preuve de leur efficacité, en fonction des objectifs à atteindre et du public reçu en formation.

Autres formations disponibles :
formation
Asnières-sur-Seine (92600)
Architecture Linux avec SYSTEMD et D-BUS
Prochaines sessions disponibles :04 déc.
Qualiopi
En centre
Non éligible CPF
Prochaines sessions disponibles :16 déc.
Qualiopi
En centre
Non éligible CPF
logo ouformer
Réalisation :Definima
Utilisation des cookies

Nous utilisons des cookies pour vous fournir l'ensemble de nos services, notamment la recherche et les alertes. En acceptant, vous consentez à notre utilisation de ces cookies.

Refuser
Accepter