System Administration
cancel
Showing results for 
Search instead for 
Did you mean: 

bnx2 driver upgrade didn't really upgrade?

SOLVED
Go to solution
toomas_aas
Frequent Advisor

bnx2 driver upgrade didn't really upgrade?

Hello!

Onto my existing SLES10 SP2 x86_64 system, I tried installing the newest HP bnx2 driver (bnx2-1.8.1c-1.src.rpm). I followed the instructions in bnx2-1.8.1c-1.src.txt and didn't notice any errors during installation. The bnx2.ko file /lib/modules/2.6.16.60-0.33-smp/kernel/drivers/net/bnx2.ko is different from the old bnx2.ko (which I copied to my home directory before upgrade just in case). Also, this is the only bnx2.ko file in the system, and the directory in which it resides corresponds to my running kernel version. If I run 'strings bnx2.ko' on it, I see strings such as:

bnx2
1.8.1c
version=1.8.1c

modprobe -l bnx2 outputs this:
/lib/modules/2.6.16.60-0.33-smp/kernel/drivers/net/bnx2.ko

However, ethtool -i eth0 still says:

driver: bnx2
version: 1.6.7c
firmware-version: 1.9.6
bus-info: 0000:03:00.0

and dmesg agrees with that:
# dmesg | grep bnx2
Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v1.6.7c (November 15, 2007)

So, where is this old version number still coming from?
8 REPLIES
Ciro Iriarte
Valued Contributor

Re: bnx2 driver upgrade didn't really upgrade?

What about "modinfo bnx2". Did you unload/load the module after installing the new one?, reboot shouldn't be needed...
toomas_aas
Frequent Advisor

Re: bnx2 driver upgrade didn't really upgrade?

Aha!

# modinfo bnx2
filename: /lib/modules/2.6.16.60-0.33-smp/kernel/drivers/net/bnx2.ko
version: 1.8.1c
license: GPL
description: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver
author: Michael Chan
srcversion: 6237B5B81342E4E760416B1
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.16.60-0.33-smp SMP gcc-4.1
parm: disable_msi:Disable Message Signaled Interrupt (MSI) (int)
toomas_aas
Frequent Advisor

Re: bnx2 driver upgrade didn't really upgrade?

And no, I didn't explicitly load the new module after installing it. I was hoping reboot would take care of that. I did, however, unload the old module *before* installing the new one.
Ciro Iriarte
Valued Contributor

Re: bnx2 driver upgrade didn't really upgrade?

So, you did reboot after installation?
DAVID W MEDBERRY
Occasional Advisor
Solution

Re: bnx2 driver upgrade didn't really upgrade?

Are you using an initrd and did the rebuild update your initrd--that's one place an older module can be coming from. (And that would explain why modinfo reports the newer one--it doesn't inspect an initrd.)

"locate bnx2.ko" may provide additional info.
toomas_aas
Frequent Advisor

Re: bnx2 driver upgrade didn't really upgrade?

Yes, I did reboot after installation.

Yes, I am using initrd and it doesn't look like initrd has been updated by the driver installation, so this may very well be where the old bnx2.ko is coming from. I'll have to investigate that.

Locate doesn't seem to be available on my SLES10 box, but here are the results of:
# find / -type f -name bnx2.ko
/home/toomas/bnx2.ko
/lib/modules/2.6.16.60-0.33-smp/kernel/drivers/net/bnx2.ko
/usr/src/packages/BUILD/bnx2-1.8.1c/bnx2.ko

First one is the backup copy of old bnx2.ko which I made before the driver upgrade, last two are identical (checked with diff).
Ciro Iriarte
Valued Contributor

Re: bnx2 driver upgrade didn't really upgrade?

How to check:
1- Locate the use initrd (check /boot/grub/menu.lst)
2- Create a working directory
mkdir /tmp/initrd
3- Extract initrd content (file name from my installation, may differ)
cd /tmp/initrd
zcat /boot/initrd-2.6.16.60-0.23-xen |cpio -idmv
4- Check the version of the module with "modinfo bnx2.ko"
Location in my case: /tmp/initrd/lib/modules/2.6.16.60-0.23-xen/kernel


How to solve:
1- Add the module to /etc/sysconfig/kernel:INITRD_MODULES

2- Run mkinitrd
toomas_aas
Frequent Advisor

Re: bnx2 driver upgrade didn't really upgrade?

Thanks for assistance, everyone! Indeed, bnx2 module was included in my initramfs, and after updating initrd and rebooting once more the new module is now active:

# ethtool -i eth0
driver: bnx2
version: 1.8.1c
firmware-version: 1.9.6
bus-info: 0000:03:00.0