Formez votre équipe au debug kernel !

Objectifs et cible

Objectifs du cours

Le point commun de toute plate-forme exploitée sous Linux, serveur, poste de travail, matériel embarqué, est sans aucun doute le noyau Linux. Les tests ou la mise en oeuvre de telles plate-formes dans des conditions plus ou moins extrêmes ou sur du matériel plus ou moins exotique conduisent assez fréquemment à des situations de blocage partiel (oops) ou total (panic) du noyau.

La formation au debug kernel propose d’explorer avec le participant le système qui sous-tend le fonctionnement du noyau pour mieux l’appréhender et connaitre les sources d’information liées.

Elle propose également des outils et des méthodes pour collecter les informations nécessaire à la dernière phase qui consiste en l’analyse du problème rencontré.Le participant est alors capable soit de corriger le dysfonctionnement soit de transmettre l’ensemble de ces informations au niveau compétent en faisant ainsi gagner du temps sur cette phase d’analyse.

Connaître les sources d’information relatives au fonctionnement du noyau Linux.

  • Savoir collecter de manière exhaustive les informations liées à un dysfonctionnement du noyau.
  • Savoir analyser les informations reccueillie.

kernelPublic ciblé

Les prérequis pour cette formation :

  • connaissance du système Linux
  • connaissance de base en C

Détails pratiques

Détails pratiques

  • Durée : 2 jours
  • Niveau : débutant
  • Objectif : Savoir collecter de manière exhaustive les informations liées à un dysfonctionnement du noyau et analyser les informations ainsi reccueillies
  • Prix : 1 400€ HT

Méthode


La formation alternera apports théoriques et mise en applications de chaque notion abordée.Les participants travailleront à la fois sur des rapports de bugs réels mais aussi sur des simulations de crash grâce à l’émulateur qemu.


kernelIl sera également fait appel à l’expérience des participants qui pourront proposer des informations relatives à une problématique rencontrée.


Contenu

Le programme



1Systèmes de fichiers et debug

  • Système de fichiers virtuel procfs
  • Système de fichiers virtuel sysfs
  • Collecter des informations de debug avec debugfs
  • Stocker des informations de manière persistante avec pstore

2Debug user space

  • Récupérer un core dump
  • Utiliser gdb
  • Détection de head corruption avec heap / alloc

3 Erreurs kernel et dialogue avec le noyau

  • cktrace
  • warn
  • Kernel tainted – liste des flags
  • oops
  • panic
  • bug

4Configurer son kernel pour améliorer le debug

  • debug info
  • kdump / kexec
  • Configuration de spin lock, mutex, utilisation de locks
  • printk


5kernel Les outils de debug kernel

  • system.map
  • Mettre en place une console série
  • Spécificités de l’utilisation d’une console série sous Xen
  • Mise en place d’une netconsole
  • Utiliser qemu pour debugger
  • kgbd (port série)
  • crash / kdump
  • De l’importance de l’appareil photo
  • Tracing / ftrace
  • Quelques paramètres kernel utiles :
  • panic=oops, vga=, earlyprintk=, ignore_loglevel, initcall_debug, log_buf_len

6Analyser les informations recueillies

  • Identifier des adresses mémoire avec addr2line
  • gdb, le couteau suisse du débogage
  • Un outil d’analyse dédié au kernel : crash
  • Outil d’aide à l’analyse : printk
  • Définir un format de message avec pr_*
  • Extraire le device et son driver avec dev_*
  • printk versus dev_* ?


 

Dates

Nos prochaines dates de formation

  • 11 et 12 décembre 2017, Paris
  • 15 et 16 janvier 2018, Paris
  • 5 et 6 mars 2018, Paris
  • 22 et 23 mai 2018, Paris
  • 10 et 11 septembre 2018, Paris
  • 19 et 20 novembre 2018, Paris

Demander un devis

Votre nom (obligatoire)

Votre adresse de messagerie (obligatoire)














Votre formateur


Arnaud PATARD est cofondateur d’hupstream. Fan d’Open Source, packager, il a également contribué à kernel.org

Il a travaillé chez Mandriva Linux et mené des ports sur architectures telles ARM et MIPC.