Aller au contenu

Modalias

Modalias (contraction de module alias) : chaîne normalisée qui identifie un périphérique d'après ce qu'il annonce de lui-même (bus, fabricant, modèle, classe), et qui sert à trouver le module noyau capable de le piloter. Sur une instance Scaleway, la carte réseau virtuelle annonce par exemple virtio:d00000001v00001AF4 : périphérique virtio de type 1 (réseau), fabricant 1AF4 (l'identifiant de Red Hat, qui a défini virtio). Une carte PCI produit une chaîne de la forme pci:v<fabricant>d<modèle>....

Chaque module déclare, à la compilation, les motifs de modalias qu'il prend en charge ; depmod les rassemble dans /lib/modules/$(uname -r)/modules.alias. Quand un périphérique apparaît, le noyau émet un événement (uevent) qui porte une variable MODALIAS ; la règle 80-drivers.rules de udev demande alors à modprobe de charger le module correspondant. C'est ainsi que presque aucun pilote n'est chargé par un humain.

Pour remonter d'un périphérique à son pilote : cat /sys/class/net/eth0/device/modalias donne la chaîne, et modprobe --resolve-alias "$(cat .../modalias)" fait exactement la recherche de udev et répond virtio_net. blacklist <module> dans /etc/modprobe.d/ n'empêche que ce chargement par alias, pas un modprobe explicite : pour interdire réellement un module, on écrit install <module> /bin/false.

Dans les cours

Voir aussi