next up previous contents Next:  ID du vendeur PCI Up:  Configuration de divers périphériques. Previous:  Port parallèle.   Table des matières  


43.6.3  NIC - Ethernet, PCI et l'ancien ISA.

Ici, nous utilisons des cartes ISA non-PnP et des cartes PCI, en s'appuyant sur des périphériques Ethernet (NIC est un acronyme pour Network Interface Card, c'est-à-dire une carte 10 ou 100 Mo).

Concernant les anciennes cartes ISA (à cavaliers), vous devez vérifier les fichiers contenus dans /proc/ pour déterminer les IRQ et les ports E/S non-utilisés et déplacer les cavaliers de manière appropriée. Alors, vous pouvez exécuter un modprobe comme d'ordinaire. Par exemple:

modinfo -p ne 
modprobe ne io=0x300 irq=9 


Naturellement, en cas de chargement dynamique, votre fichier /etc/modules.conf doit contenir les lignes:

alias eth0 ne 
options ne io=0x300 irq=9 


Il arrivera peut-être que vous disposiez d'une carte (type PnP) configurable de manière logicielle mais seulement à l'aide d'un utilitaire DOS. Dans ce cas, la compilation du module dans le noyau entraînera son auto-détection lors du démarrage sans qu'il soit nécessaire d'en faire la configuration.

Le pire scénario est celui d'une carte dont la fabrication est inconnue et dont vous ne connaissez pas les IRQ et E/S. Le numéro de la puce peut parfois livrer une indication (faites un grep sur les sources du noyau avec ce numéro) mais ce n'est pas garanti. Pour qu'une telle carte puisse fonctionner, compilez plusieurs modules qui vous semblent correspondre à la carte. L'expérience permet de s'améliorer rapidement à ce petit jeu. Si vos déductions sont correctes, votre carte sera très certainement découverte lors du réamorçage. Vous pouvez trouver les valeurs d'IRQ et E/S dans /proc/ ou alors, vous pouvez lancer la commande dmesg pour déterminer la ou les ligne(s) se rapportant à votre périphérique. S'il s'agit d'une carte Ethernet, une des lignes doit débuter avec eth0:... et le résultat de dmesg devrait fournir de l'information à propos du pilote.

Les périphériques PCI ne requièrent presque jamais que les IRQ ou les ports E/S soient fournis comme options. Tant que votre module est correct, une simple commande:

modprobe <module> 


fonctionnera toujours. Cependant, la détermination du module correct peut encore s'avérer un problème parce que les fournisseurs donnent divers noms commerciaux à une carte donnée. L'utilitaire scanpci (qui est une fonctionnalité de X) vérifie vos slots PCI. L'exécution de scanpci peut engendrer une série de messages comme ceux-ci:

. . . 
pci bus 0x0 cardnum 0x09 function 0x0000: vendor 0x1011 device 0x0009 
 Digital DC21140 10/100 Mb/s Ethernet 
pci bus 0x0 cardnum 0x0b function 0x0000: vendor 0x8086 device 0x1229 
 Intel 82557/8/9 10/100MBit network controller 
pci bus 0x0 cardnum 0x0c function 0x0000: vendor 0x1274 device 0x1371 
 Ensoniq es1371 


lspci est un autre utilitaire provenant du paquet pciutils. Il donne une information complète là où scanpci n'en fournit parfois aucune. Ainsi un petit script (donné entre parenthèses pour les noyaux 2.4) tel que:

for i in /lib/modules/<version>/net/* ; do strings $i \ 
                              | grep -q -i 21140 && echo $i ; done 
 
( for i in /lib/modules/<version>/kernel/drivers/net* \ 
             ; do strings $i | grep -q -i 21140 && echo $i ; done ) 
 
for i in /lib/modules/<version>/net/* ; do strings $i \ 
                               | grep -q -i 8255 && echo $i ; done 
 
( for i in /lib/modules/<version>/drivers/net/* \ 
              ; do strings $i | grep -q -i 8255 && echo $i ; done ) 


révèlera la présence de trois modules de4x5.o, eepro100.o et tulip.o dont deux sont parfaitement corrects. Sur un autre système, lscpi donne:

. 
. 
. 
00:08:0 Ethernet controller: Macronix, Inc. [MXIC] MX987x5 (rev 20) 
00:0a:0 Ethernet controller: Accton Technology Corporation SMC2-1211TX (rev 10) 


et le même script for ... grep...Accton indique rtl8139.o et tulip.o (le premier est correct); alors que for ... grep ... Macronix (ou même 987) donne tulip.o, ce qui paralyse la machine. Il nous reste encore à faire fonctionner la carte, une fois son module identifié. [...].


next up previous contents Next:  ID du vendeur PCI Up:  Configuration de divers périphériques. Previous:  Port parallèle.   Table des matières  
1-01-2006