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*
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?

  • 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

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.

  • 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.