URL: https://linuxfr.org/users/nop/journaux/noyau-modules-map-pciusb Title: noyau: modules.* map {pci,usb,...} Authors: abc Date: 2006年07月16日T10:24:57+02:00 Tags: Score: 0 J'ai déjà mis ce texte dans le forum, mais pas de réponse, alors je vais essayer de profiter d'un auditoire plus large disponible dans les journaux. **Driver Binding:** Intro: J'installe souvent des machines linux très différentes, dont les devices varient énormément et dont je suis constament entrain de chercher les modules du noyau. question: J'aimerais bien savoir si il est possible d'avoir des fichiers de correspondances pilotes(modules noyau) <--> peripheriques universel pour le dernier noyau, donc des fichiers tels que : { modules.ccwmap modules.ieee1394map modules.inputmap modules.isapnpmap modules.ofmap modules.pcimap modules.seriomap modules.usbmap } Je suppose qu'un programme cherche au démarrage si un module peut être charger. Après avoir fouiller dans la doc du noyau, j'ai cru comprendre, qu'il utilise une fonction pour interroger le bus: int match(struct device * dev, struct device_driver * drv); et c'est lui qui vérifie la validité des IDs. ça me parait étrange. Là je patauge un peu. Je voulais des fichiers complets pour faire la correspondance. Je cherche à savoir comment se passe la recherche de driver à la découverte d'un nouveau périphérique, et comment moi_je pourrais m'en servir pour trouver cette correspondance et cocher les bonnes cases dans mon menuconfig. Actuellement lorsque je cherche à faire une telle correspondance, je grep l'ID du périphérique dans les fichiers "modules.*map" présent dans /lib/modules/. mais si le module n'a pas été sélectionné à la compilation, il ne s'y trouve pas. Alors j'ai pris mon mal en patience et j'ai coché toutes les cases du dernier noyau (2.6.17.5) né après le magnifique race proc... en cochant le plus de choses possible en module. J'ai tout compilé et j'ai eu des fichiers modules.*map légèrement plus complet que ceux fourni par le noyau debian. Mais après quelques grep, je me suis aperçu que certains IDs n'étaient pas dans ces fichiers et que seul un: grep -R "0xXXXX" /usr/src/linux me trouvait la correspondance. car l'id se trouve dans les commentaire du code. Exemple: .&checktime(0000,01,00,':').0 0300: 1002:4742 (rev 5c) VGA compatible controller: ATI Technologies Inc 3D Rage Pro AGP 1X/2X (rev 5c) 0x0004742 ne figure pas dans les /lib/modules/<ker_ver>/modules.*map alors que je le trouve avec un grep dans les sources du noyau. ( grep -R 0x4742 /usr/src/linux) J'ai du louper quelque chose, parce que je trouve ça étrange que l'on ne stocke pas la liste de tous les périphériques supportés par le noyau. Je suppose que ça existe, ou alors je n'ai pas compris quelque chose. Je comprend pas pourquoi il faudrait compiler quoi que ce soit pour l'avoir, quelque soit les modules choisis, les modules ne changent pas de nom et l'id des périphérique non plus. Donc je cherche des explications sur cette correspondance. Si quelqu'un a de la doc en guise d'explication, je suis preneur. surtout qu'en plus de ça je n'ai pas les modules propriétaires tels que nvidia, ati... et ceux que je ne connais pas... PS: j'ai trouvé des fichiers intérressant avec des IDs, avec un find dans les sources du kernel: find . -iname "*_ids*" -o -iname "*_regs*" Tant qu'à faire, Existe t-il des fichiers qui regroupe les ID de tous les constructeurs ? de tous les périphériques ?

AltStyle によって変換されたページ (->オリジナル) /