2

I recently updated the bnx2 network driver of one server. If I display infomations about the module, it shows me correctly the new version, 2.0.23b.

modinfo bnx2

filename:       /lib/modules/2.6.32-5-amd64/kernel/drivers/net/bnx2.ko
version:        2.0.23b
license:        GPL
description:    Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver
author:         Michael Chan <mchan@broadcom.com>
srcversion:     6E0DD070AB24C11F50B2712
alias:          pci:v000014E4d0000163Csv*sd*bc*sc*i*
alias:          pci:v000014E4d0000163Bsv*sd*bc*sc*i*
alias:          pci:v000014E4d0000163Asv*sd*bc*sc*i*
alias:          pci:v000014E4d00001639sv*sd*bc*sc*i*
alias:          pci:v000014E4d000016ACsv*sd*bc*sc*i*
alias:          pci:v000014E4d000016AAsv*sd*bc*sc*i*
alias:          pci:v000014E4d000016AAsv0000103Csd00003102bc*sc*i*
alias:          pci:v000014E4d0000164Csv*sd*bc*sc*i*
alias:          pci:v000014E4d0000164Asv*sd*bc*sc*i*
alias:          pci:v000014E4d0000164Asv0000103Csd00003106bc*sc*i*
alias:          pci:v000014E4d0000164Asv0000103Csd00003101bc*sc*i*
depends:        
vermagic:       2.6.32-5-amd64 SMP mod_unload modversions 
parm:           disable_msi:Disable Message Signaled Interrupt (MSI) (int)
parm:           stop_on_tx_timeout:For debugging purposes, prevent a chip  reset when a tx timeout occurs (int)

But if I display the version infomation with ethtool, it displays me the old version 2.0.2.

ethtool -i eth0
driver: bnx2
version: 2.0.2
firmware-version: 5.0.11 NCSI 2.0.5
bus-info: 0000:01:00.0

There is only one location /lib/modules/2.6.32-5-amd64/kernel/drivers/net/bnx2.ko where the file bnx2.ko exsits, and that is the new version 2.0.23b.

In /var/log/messages I can see that the old driver is loaded:

...
Oct 14 15:22:02 localhost kernel: [    0.827101] Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.0.2 (Aug 21, 2009)
Oct 14 15:22:02 localhost kernel: [    0.827139] bnx2 0000:01:00.0: PCI INT A -> GSI 36 (level, low) -> IRQ 36
Oct 14 15:22:02 localhost kernel: [    0.827283] bnx2 0000:01:00.0: firmware: requesting bnx2/bnx2-mips-09-5.0.0.j3.fw
Oct 14 15:22:02 localhost kernel: [    0.829565] bnx2 0000:01:00.0: firmware: requesting bnx2/bnx2-rv2p-09-5.0.0.j3.fw
Oct 14 15:22:02 localhost kernel: [    0.832217] eth0: Broadcom NetXtreme II BCM5716 1000Base-T (C0) PCI Express found at mem da000000, IRQ 36, node addr a4:ba:db:43:b1:53
Oct 14 15:22:02 localhost kernel: [    0.832250] bnx2 0000:01:00.1: PCI INT B -> GSI 48 (level, low) -> IRQ 48
Oct 14 15:22:02 localhost kernel: [    0.832373] bnx2 0000:01:00.1: firmware: requesting bnx2/bnx2-mips-09-5.0.0.j3.fw
Oct 14 15:22:02 localhost kernel: [    0.834499] bnx2 0000:01:00.1: firmware: requesting bnx2/bnx2-rv2p-09-5.0.0.j3.fw
...

Any ideas where the system is still getting the old driver from?

markus
  • 1,080
  • 5
  • 18
  • 38
  • if I rmmod bnx2 and insmod /lib/modules/2.6.32-5-amd64/kernel/drivers/net/bnx2.ko after boot it is loading the correct driver. How can I see from which location the driver is loaded on boot? – markus Oct 17 '11 at 12:13

1 Answers1

3

You may need to run depmod to update the module dependency maps with any new modules:

#depmod -a

Solution required to run dpkg-reconfigure linux-image-2.6.32-5-amd64 as well.

Kirk
  • 113
  • 5
adaptr
  • 16,576
  • 23
  • 34
  • No dosen't help, still loading the old driver – markus Oct 17 '11 at 12:51
  • Does the kernel use an initrd to load its modules ? If so, recreate the initrd using mkinitrd. – adaptr Oct 17 '11 at 13:41
  • Good point. It seems that mkinitrd is deprcated in debain squeeze and I have to use Initramfs. I'm not familar with thoose tools, do you know what to do in debian squeeze? – markus Oct 17 '11 at 14:30
  • 1
    I found it: dpkg-reconfigure linux-image-2.6.32-5-amd64 does the job! – markus Oct 17 '11 at 14:42