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 |
alias eth0 ne
options ne io=0x300 irq=9 |
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>
|
. . .
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 |
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 ) |
.
. . 00:08:0 Ethernet controller: Macronix, Inc. [MXIC] MX987x5 (rev 20) 00:0a:0 Ethernet controller: Accton Technology Corporation SMC2-1211TX (rev 10) |