Bonjour,
j'ai une petite question concernant la détection matériel sous Debian et Ubuntu.
Sous Debian, je me demande par exemple qui s'occupe du chargement du module kernel de ma carte Ethernet ?
Sous Debian Squeeze, je vois qu'il y a le package "discover". J'ai regardé un peu les sources et d'après ce que j'ai vu il y a un certain nombre de fichiers XML qui contiennent des relations entre des numéros de périphériques PCI… (visible par exemple avec lspci) et des noms de modules du kernel.
La relation matériel <=> module se fait donc à partir de ces fichiers de données.
Par contre, le projet "discover" semble abandonné depuis 2007 (https://alioth.debian.org/frs/?group_id=30273).
Sous Ubuntu, je n'ai pas de package "discover" installé.
J'ai posé la question sur la mailing list "debian.devel.general" et j'ai eu comme réponse que le kernel Linux s'occupe de détecter les périphériques et que udev s'occupe de charger les modules.
J'ai regardé vite fait ici : http://git.kernel.org/?p=linux/hotplug/udev.git;a=tree et je n'ai pas vu de fichier de relation entre périphérique et nom de module.
Pour résumer j'ai deux questions :
- comment kernel + udev font pour faire la relation périphérique / module
- pourquoi j'ai le package discover installé sur Debian Squeeze si elle utilise udev ?
Merci d'avance pour vos réponses à ces questions existentielles :)
Stéphane
# MODALIAS
Posté par gouttegd . Évalué à 2.
Une explication est disponible dans la documentation d’OpenSUSE.
En gros, chaque module indique quels périphériques il peut supporter. Les identifiants des périphériques supportés par un module permettent de construire un ou plusieurs « alias » pour ce module.
depmod
compile une liste de correspondance « alias de périphérique ⇔ module » (dans/lib/modules/VERSION/modules.alias
).Quand le noyau détecte un périphérique, il construit un alias à partir de identifiants de ce périphérique et l’envoie à
udev
;udev
appellemodprobe
avec l’alias spécifié etmodprobe
retrouve, gràce à la liste préalablement compilée pardepmod
, le module à charger.Je serais bien incapable de dire pourquoi Debian fait tout ce qu’elle fait (je n’ai toujours pas compris pourquoi elle s’est immiscée dans le fonctionnement d’un générateur de nombres aléatoires, par exemple¹), mais la documentation de
discover
peut apporter un éclairage :En gros,
discover
n’est pas une alternative àudev
, même s’il peut faire une partie de son travail.discover
est par ailleurs censé être portable (et non spécifique au noyau Linux), ce qui j’imagine doit être intéressant pour Debian et ses versions Hurd ou kFreeBSD.¹ Je sais, c’est mesquin de ressortir les vieux dossiers… ;)
[^] # Re: MODALIAS
Posté par NeoX . Évalué à 3.
ce qui finalement tombe sous le sens, un developpeur d'un module pouvant alors ajouté une nouvelle carte à son module, c'est transparent quelque soit la distrib qui l'utilise ensuite.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.