12.3. Pilotes, modules kernel et périphériques

Les pilotes du bus du kernel examinent les périphériques. Pour chaque périphérique détecté, le kernel crée une structure de périphérique interne et le noyau du pilote envoie un uevent au démon udev. Les périphériques de bus s'identifient par un ID spécialement formaté qui indique le type du périphérique. Il s'agit généralement d'ID fournisseur et produit et d'autres valeurs spécifiques au sous-système. Chaque bus comporte son propre modèle d'ID appelé MODALIAS. Le kernel enregistre les informations du périphérique, crée une chaîne d'ID MODALIAS, puis envoie cette chaîne avec l'événement. Voici un exemple pour une souris USB :

MODALIAS=usb:v046DpC03Ed2000dc00dsc00dp00ic03isc01ip02

Chaque pilote de périphérique comporte une liste d'alias connus pour les périphériques qu'il peut gérer. Cette liste est présente dans le fichier du module kernel. Le programme depmod lit les listes d'ID et crée le fichier modules.alias dans le répertoire /lib/modules du kernel pour tous les modules actuellement disponibles. Grâce à cette infrastructure, le chargement du module est aussi facile que d'appeler modprobe pour chaque événement qui embarque une clé MODALIAS. Si la commande modprobe $MODALIAS est appelée, elle fait correspondre les alias du périphérique créés pour le périphérique avec les alias fournis par les modules. Si une entrée correspondante est trouvée, ce module est chargé. Ce déclenchement est automatiquement déclenché par udev.