Mise en œuvre de Linux sur cible ARM9
Les manipulations s'effectueront sur l'émulateur QEMU/ARM9 et sur des cartes à base de processeur ATMEL (AT91RM9200) ou SAMSUNG (S3C2410).
Les points abordés seront les suivants:
• Mise en place de l’environnement de développement GNU
• Compilation d'un noyau Linux pour carte Versatile-PB émulée par QEMU
• Création du root-filesystem à base de busybox.
• Utilisation de INITRAMFS
• Introduction au bootloader U-boot: principes, commandes
• Adaptation du noyau à l'architecture de la carte: patch AT91RM9200 + patch spécifique à la carte
• Utilisation de NFS-Root
• Pilote flash Linux (MTD), utilisation avec le système de fichiers JFFS2 sur flash NOR et NAND
• Utilisation de Buildroot
Introductions aux pilotes de périphériques sous Linux :
• L'API des modules Linux
• Utilisation des commandes insmod, rmmod, lsmod, modinfo
• Installation d'un module et dépendance des modules: utilisation de modprobe
• Utilisation de /proc et /sys
• Structure générale d'un pilote
• Les différents types de pilotes: caractère, bloc, réseau
• Le répertoire /dev
• Mode caractère: la structure file_operations
• Les méthodes open(), release(), read(), write(), ioctl()
• Echange de données: copy_from_user() et copy_to_user()
• Test de pilote en compilation croisée ARM9
• Périphériques PCI et Présentation de l'API
• Manipulation des zones mémoire PCI (BAR = Base Address Register, ...)
• Exemple de pilote générique de lecture de BAR
• Périphériques USB (Introduction au bus USB, pilote d'un bouton d'urgence USB)
• La bibliothèque libusb