Site affiché en Français Voir le site en English (USA) Voir le site en English (GB)
Vous êtes ici: ac6 > ac6-formation > Linux > Power Management, Hotplug et Drivers USB
Télécharger le catalogue
Télécharger le catalogue
Télécharger la page
Télécharger la page
Ecrivez nous
Ecrivez nous
Version imprimable
Version imprimable
 

D7 Power Management, Hotplug et Drivers USB

Ecriture de drivers Linux pour le hotplug et la gestion de l'energie

Ecriture de drivers Linux pour le hotplug et la gestion de l'energie

formateur
Objectifs
bullet_jaune_1 Savoir paramétrer le noyau Linux à la compilation et en fonctionnement pour une gestion optimale du hotplug et du power-management.
bullet_jaune_1 Comprendre les spécificités du noyau Linux dans la gestion des devices et des drivers.
bullet_jaune_1 Comprendre comment sont générés les événements hotplug et savoir les utiliser dans l'écriture de ses drivers.
bullet_jaune_1 Comprendre comment Linux gère le power-management
bullet_jaune_2 pour écrire des drivers s'intégrant dans ce schéma
bullet_jaune_2 pour optimiser les modes basse consommation
bullet_jaune_1 Installer et utiliser les projets externes hotplug et PM : Udev, libusb, etc...
bullet_jaune_1 Explorer la richesse de Linux concernant les drivers USB hôte, gagdet et otg.
bullet_jaune_1 Connaître les évolutions de Linux jusqu'au noyau 2.6.30.
bullet_jaune_1 Maîtriser les techniques de debugging noyau avec les sondes jtag Lauterbach.
Les exercices se font sur des cartes cibles :
    Carte "SnowBall" de ST-Ericsson, basée sur un ARM Cortex/A9 double cœur, avec sonde JTAG Lauterbach.
    Carte à base de processeur ARM9 d'Atmel, avec sonde JTAG Lauterbach.
Nous utilisons le dernier noyau disponible sur www.kernel.org
Matériel
bullet_jaune_2 Un pc par binôme
bullet_jaune_2 Une carte cible par binôme
bullet_jaune_2 Une sonde jtag Lauterbach par binôme
bullet_jaune_2 Support de cours
bullet_jaune_2 CDROM avec documentation et exercices corrigés
Pré-requis
bullet_jaune_2 Bonne pratique de la programmation en C sous Linux.
bullet_jaune_2 Connaissance de la programmation Linux kernel (niveau cours D3)

Plan
1er jour
Programmation noyau (rappels)
bullet_jaune_2 Le développement de module noyau.
bullet_jaune_2 Les objets du noyau.
bullet_jaune_2 Le système de fichier sysfs.
Exercice : Ecriture d'un module noyau illustrant la création et l'utilisation des ksets et kobjs.
Hotplug
bullet_jaune_2 Hotplug Kernel : Les uevents
bullet_jaune_2 Hotplug Utilisateur : Udev
bullet_jaune_2 Hotplug Utilisateur : Hal et Dbus
Exercice : Ecriture d'un module noyau émettant ses propres événements hotplug.
Exercice : Compilation croisé, paramétrage et utilisation de l'outil Udev.
2ème jour
Devices et Drivers
bullet_jaune_2 Le modèle device/driver sous Linux.
bullet_jaune_2 Les classes et types de périphériques.
bullet_jaune_2 Les types de bus.
bullet_jaune_2 Devices & drivers génériques.
bullet_jaune_2 Devices & drivers système.
bullet_jaune_2 Devices & drivers plate-forme.
Exercice : Ecriture d'un device et d'un driver plate-forme illustrant les mécanismes de matching interne.
Power-management : APM et ACPI
bullet_jaune_2 Le standard APM.
bullet_jaune_2 Le standard ACPI.
Exercice : Ecriture d'un programme simple illustrant les possibilités d'extinction de la machine.
Power-management, suspension et hibernation
bullet_jaune_2 Le PM dans les drivers.
bullet_jaune_2 Le gel des tâches.
bullet_jaune_2 Suspension en ram.
bullet_jaune_2 Suspension sur disque - Hibernation.
bullet_jaune_2 Debugging.
Exercice : Ecriture d'un module noyau illustrant la suspension en ram et le réveil de la machine.
3ème jour
Les governors cpufreq
bullet_jaune_2 L'interface utilisateur.
bullet_jaune_2 Les governors cpufreq.
Les governors cpuidle
bullet_jaune_2 La tâche Idle.
bullet_jaune_2 Les devices cpuidle.
bullet_jaune_2 Les governors cpuidle.
Drivers USB
bullet_jaune_2 Le bus USB.
bullet_jaune_2 Les périphériques USB.
bullet_jaune_2 L'interface utilisateur USB.
bullet_jaune_2 Les descripteurs USB.
bullet_jaune_2 Les requêtes USB.
bullet_jaune_2 Les pilotes USB.
Exercice : Ecriture d'un module noyau usb illustrant l'utilisation des urbs.
Exercice : Ecriture d'un version du même module utilisant les requêtes usb synchrones.
4ème jour
La libUSB
bullet_jaune_2 Les bibliothèques libUSB.
bullet_jaune_2 La libUSB 0.1.12.
bullet_jaune_2 La libUSB 1.0
Exercice : Compilation croisée de la libusb.
Exercice : Ecriture d'un driver usb tournant dans l'espace utilisateur.
Drivers USB gadget
bullet_jaune_2 Les pilotes gadget USB.
bullet_jaune_2 Les pilotes gagdet USB composites.
bullet_jaune_2 Les pilotes gadget USB OTG.
Exercice : Ecriture d'un driver gadget coté cible et du driver correspondant coté pc.