Moi je regarde dans le manuel de modprobe.conf et de modprobe, et je constate qu'il n'y a aucun moyen externe d'empêcher le driver d'initialiser les deux cartes identiques.
Voici un essai pour le prouver.
Le système est Debian 6.0.3 / i386 dans VirtualBox avec deux cartes Intel Pro/1000 identiques.
# modinfo e1000
filename: /lib/modules/2.6.32-5-686/kernel/drivers/net/e1000/e1000.ko
version: 7.3.21-k5-NAPI
license: GPL
description: Intel(R) PRO/1000 Network Driver
author: Intel Corporation, <linux.nics@intel.com>
srcversion: 383459ED2D46B8379FCB399
alias: pci:v00008086d000010B5sv*sd*bc*sc*i*
alias: pci:v00008086d00001099sv*sd*bc*sc*i*
alias: pci:v00008086d0000108Asv*sd*bc*sc*i*
alias: pci:v00008086d0000107Csv*sd*bc*sc*i*
alias: pci:v00008086d0000107Bsv*sd*bc*sc*i*
alias: pci:v00008086d0000107Asv*sd*bc*sc*i*
alias: pci:v00008086d00001079sv*sd*bc*sc*i*
alias: pci:v00008086d00001078sv*sd*bc*sc*i*
alias: pci:v00008086d00001077sv*sd*bc*sc*i*
alias: pci:v00008086d00001076sv*sd*bc*sc*i*
alias: pci:v00008086d00001075sv*sd*bc*sc*i*
alias: pci:v00008086d00001028sv*sd*bc*sc*i*
alias: pci:v00008086d00001027sv*sd*bc*sc*i*
alias: pci:v00008086d00001026sv*sd*bc*sc*i*
alias: pci:v00008086d0000101Esv*sd*bc*sc*i*
alias: pci:v00008086d0000101Dsv*sd*bc*sc*i*
alias: pci:v00008086d0000101Asv*sd*bc*sc*i*
alias: pci:v00008086d00001019sv*sd*bc*sc*i*
alias: pci:v00008086d00001018sv*sd*bc*sc*i*
alias: pci:v00008086d00001017sv*sd*bc*sc*i*
alias: pci:v00008086d00001016sv*sd*bc*sc*i*
alias: pci:v00008086d00001015sv*sd*bc*sc*i*
alias: pci:v00008086d00001014sv*sd*bc*sc*i*
alias: pci:v00008086d00001013sv*sd*bc*sc*i*
alias: pci:v00008086d00001012sv*sd*bc*sc*i*
alias: pci:v00008086d00001011sv*sd*bc*sc*i*
alias: pci:v00008086d00001010sv*sd*bc*sc*i*
alias: pci:v00008086d0000100Fsv*sd*bc*sc*i*
alias: pci:v00008086d0000100Esv*sd*bc*sc*i*
alias: pci:v00008086d0000100Dsv*sd*bc*sc*i*
alias: pci:v00008086d0000100Csv*sd*bc*sc*i*
alias: pci:v00008086d00001009sv*sd*bc*sc*i*
alias: pci:v00008086d00001008sv*sd*bc*sc*i*
alias: pci:v00008086d00001004sv*sd*bc*sc*i*
alias: pci:v00008086d00001001sv*sd*bc*sc*i*
alias: pci:v00008086d00001000sv*sd*bc*sc*i*
depends:
vermagic: 2.6.32-5-686 SMP mod_unload modversions 686
parm: TxDescriptors:Number of transmit descriptors (array of int)
parm: RxDescriptors:Number of receive descriptors (array of int)
parm: Speed:Speed setting (array of int)
parm: Duplex:Duplex setting (array of int)
parm: AutoNeg:Advertised auto-negotiation setting (array of int)
parm: FlowControl:Flow Control setting (array of int)
parm: XsumRX:Disable or enable Receive Checksum offload (array of int)
parm: TxIntDelay:Transmit Interrupt Delay (array of int)
parm: TxAbsIntDelay:Transmit Absolute Interrupt Delay (array of int)
parm: RxIntDelay:Receive Interrupt Delay (array of int)
parm: RxAbsIntDelay:Receive Absolute Interrupt Delay (array of int)
parm: InterruptThrottleRate:Interrupt Throttling Rate (array of int)
parm: SmartPowerDownEnable:Enable PHY smart power down (array of int)
parm: KumeranLockLoss:Enable Kumeran lock loss workaround (array of int)
parm: copybreak:Maximum size of packet that is copied to a new buffer on receive (uint)
parm: debug:Debug level (0=none,...,16=all)(int)# rmmod e1000# dmesg -c > /dev/null# modprobe e1000 debug=16# dmesg[ 295.421795] e1000 .&checktime(0000,00,08,':').0: PCI INT A disabled
[ 295.768052] e1000 .&checktime(0000,00,03,':').0: PCI INT A disabled
[ 303.432163] Intel(R) PRO/1000 Network Driver - version 7.3.21-k5-NAPI
[ 303.432163] Copyright (c) 1999-2006 Intel Corporation.
[ 303.432163] e1000 .&checktime(0000,00,03,':').0: PCI INT A -> Link[LNKC] -> GSI 10 (level, low) -> IRQ 10
[ 303.868994] e1000: .&checktime(0000,00,03,':').0: e1000_probe: (PCI:33MHz:32-bit) 08:00:27:3e:c8:8d
[ 303.936125] e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
[ 303.936125] e1000 .&checktime(0000,00,08,':').0: PCI INT A -> Link[LNKD] -> GSI 9 (level, low) -> IRQ 9
[ 304.368570] e1000: .&checktime(0000,00,08,':').0: e1000_probe: (PCI:33MHz:32-bit) 08:00:27:00:e3:f1
[ 304.452184] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 304.456184] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[ 304.476065] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 304.824878] e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
[ 304.976103] ADDRCONF(NETDEV_UP): eth1: link is not ready
On voit bien que le driver exécute e1000_probe pour chaque carte et donc c'est probablement cette fonction que je vais modifier pour arriver à mes fins. Je vais ajouter un paramètre au module pour sélectionner la carte que je veux initialiser.
[^] # Re: OK je vais hacker les drivers
Posté par koopa . En réponse au message Comment limiter le chargement d'un driver réseau à une seule interface ?. Évalué à 0.
Moi je regarde dans le manuel de
modprobe.confet demodprobe, et je constate qu'il n'y a aucun moyen externe d'empêcher le driver d'initialiser les deux cartes identiques.Voici un essai pour le prouver.
Le système est Debian 6.0.3 / i386 dans VirtualBox avec deux cartes Intel Pro/1000 identiques.
On voit bien que le driver exécute
e1000_probepour chaque carte et donc c'est probablement cette fonction que je vais modifier pour arriver à mes fins. Je vais ajouter un paramètre au module pour sélectionner la carte que je veux initialiser.