• # MODALIAS

    Posté par . En réponse au message Détection matériel sous Debian, discover obsolète ? comment udev fait la rel périphérique / module ?. Évalué à 2.

    comment kernel + udev font pour faire la relation périphérique / module

    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 appelle modprobe avec l’alias spécifié et modprobe retrouve, gràce à la liste préalablement compilée par depmod, le module à charger.

    pourquoi j'ai le package discover installé sur Debian Squeeze si elle utilise udev ?

    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 exemple1), mais la documentation de discover peut apporter un éclairage :

    We must take a moment to explain what Discover is not: Discover is not a
    replacement for the service - usually provided by the underlying operating
    system kernel or a user-space program that interfaces with it - of simply
    translating bus-specific vendor and model identifiers to human-readable
    names. Discover performs its own translations of this data as a
    convenience for generating human-readable reports, but it does not attempt
    to enumerate all hardware devices that exist for a particular bus
    architecture. Rather, Discover is intended only to catalog data for which
    there is some useful information to impart regarding software interfaces.
    Facilities already exist in modern operating systems for answering the
    questions "What is the name of this device?" and "Who manufactured it?"
    Discover's role is to answer questions like "What Linux kernel module do I
    need to load for this device to work?" More importantly, Discover will
    enable you to provide answers in the future to questions you don't even
    expect to ask today.

    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.


    1 Je sais, c’est mesquin de ressortir les vieux dossiers... ;)