I just kickstarted a new machine with the latest CentOS 6.2 files, including kernel 2.6.32-220.13.1.el6.x86_64. It came up without network interfaces.
dmesg says:
bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.2.1 (Dec 18, 2011) alloc irq_desc for 36 on node -1 alloc kstat_irqs on node -1 bnx2 0000:01:00.0: PCI INT A -> GSI 36 (level, low) -> IRQ 36 bnx2 0000:01:00.0: setting latency timer to 64 bnx2 0000:01:00.0: firmware: requesting bnx2/bnx2-mips-09-6.2.1b.fw bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw" bnx2 0000:01:00.0: PCI INT A disabled bnx2: probe of 0000:01:00.0 failed with error -2
The firmware file is missing from /lib/firmware and the kernel-firmware rpm.
I found a copy of it on a Fedora site and dumped it into the right location, but it wasn't found after a reboot. Yet, it was found after a second reboot. Why is that? Is a rebuild of initramfs triggered somehow?
What I don't understand is: I have an identical machine that I installed under 6.2 a while back, and kept up to date, and it doesn't have this problem. However, it tells me it uses version v2.1.11 (July 20, 2011) of the driver, how is that possible?
# grep bnx2 /var/log/messages Apr 23 17:10:03 localhost kernel: bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.1.11 (July 20, 2011) Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: PCI INT A -> GSI 36 (level, low) -> IRQ 36 Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: firmware: requesting bnx2/bnx2-mips-09-6.2.1a.fw Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: firmware: requesting bnx2/bnx2-rv2p-09-6.0.17.fw Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: eth0: Broadcom NetXtreme II BCM5716 1000Base-T (C0) PCI Express found at mem da000000, IRQ 36, node addr 78:2b:cb:67:3f:b6 [...]
# modinfo /lib/modules/2.6.32-220.13.1.el6.x86_64/kernel/drivers/net/bnx2.ko filename: /lib/modules/2.6.32-220.13.1.el6.x86_64/kernel/drivers/net/bnx2.ko firmware: bnx2/bnx2-rv2p-09ax-6.0.17.fw firmware: bnx2/bnx2-rv2p-09-6.0.17.fw firmware: bnx2/bnx2-mips-09-6.2.1a.fw firmware: bnx2/bnx2-rv2p-06-6.0.15.fw firmware: bnx2/bnx2-mips-06-6.2.1.fw version: 2.1.11 license: GPL description: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver [...]
# lspci -v -s 01:00.1 01:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet (rev 20) Subsystem: Dell PowerEdge R410 BCM5716 Gigabit Ethernet Flags: bus master, fast devsel, latency 0, IRQ 48 Memory at dc000000 (64-bit, non-prefetchable) [size=32M] Capabilities: [48] Power Management version 3 Capabilities: [50] Vital Product Data Capabilities: [58] MSI: Enable- Count=1/16 Maskable- 64bit+ Capabilities: [a0] MSI-X: Enable+ Count=9 Masked- Capabilities: [ac] Express Endpoint, MSI 00 Capabilities: [100] Device Serial Number 78-2b-cb-ff-fe-67-3f-b7 Capabilities: [110] Advanced Error Reporting Capabilities: [150] Power Budgeting <?> Capabilities: [160] Virtual Channel <?> Kernel driver in use: bnx2 Kernel modules: bnx2
On 04/23/2012 11:54 AM, Lars Hecking wrote:
I just kickstarted a new machine with the latest CentOS 6.2 files, including kernel 2.6.32-220.13.1.el6.x86_64. It came up without network interfaces.
dmesg says:
bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.2.1 (Dec 18, 2011) alloc irq_desc for 36 on node -1 alloc kstat_irqs on node -1 bnx2 0000:01:00.0: PCI INT A -> GSI 36 (level, low) -> IRQ 36 bnx2 0000:01:00.0: setting latency timer to 64 bnx2 0000:01:00.0: firmware: requesting bnx2/bnx2-mips-09-6.2.1b.fw bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw" bnx2 0000:01:00.0: PCI INT A disabled bnx2: probe of 0000:01:00.0 failed with error -2
The firmware file is missing from /lib/firmware and the kernel-firmware rpm.
I found a copy of it on a Fedora site and dumped it into the right location, but it wasn't found after a reboot. Yet, it was found after a second reboot. Why is that? Is a rebuild of initramfs triggered somehow?
What I don't understand is: I have an identical machine that I installed under 6.2 a while back, and kept up to date, and it doesn't have this problem. However, it tells me it uses version v2.1.11 (July 20, 2011) of the driver, how is that possible?
# grep bnx2 /var/log/messages Apr 23 17:10:03 localhost kernel: bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.1.11 (July 20, 2011) Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: PCI INT A -> GSI 36 (level, low) -> IRQ 36 Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: firmware: requesting bnx2/bnx2-mips-09-6.2.1a.fw Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: firmware: requesting bnx2/bnx2-rv2p-09-6.0.17.fw Apr 23 17:10:03 localhost kernel: bnx2 0000:01:00.0: eth0: Broadcom NetXtreme II BCM5716 1000Base-T (C0) PCI Express found at mem da000000, IRQ 36, node addr 78:2b:cb:67:3f:b6 [...]
# modinfo /lib/modules/2.6.32-220.13.1.el6.x86_64/kernel/drivers/net/bnx2.ko filename: /lib/modules/2.6.32-220.13.1.el6.x86_64/kernel/drivers/net/bnx2.ko firmware: bnx2/bnx2-rv2p-09ax-6.0.17.fw firmware: bnx2/bnx2-rv2p-09-6.0.17.fw firmware: bnx2/bnx2-mips-09-6.2.1a.fw firmware: bnx2/bnx2-rv2p-06-6.0.15.fw firmware: bnx2/bnx2-mips-06-6.2.1.fw version: 2.1.11 license: GPL description: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver [...]
# lspci -v -s 01:00.1 01:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet (rev 20) Subsystem: Dell PowerEdge R410 BCM5716 Gigabit Ethernet Flags: bus master, fast devsel, latency 0, IRQ 48 Memory at dc000000 (64-bit, non-prefetchable) [size=32M] Capabilities: [48] Power Management version 3 Capabilities: [50] Vital Product Data Capabilities: [58] MSI: Enable- Count=1/16 Maskable- 64bit+ Capabilities: [a0] MSI-X: Enable+ Count=9 Masked- Capabilities: [ac] Express Endpoint, MSI 00 Capabilities: [100] Device Serial Number 78-2b-cb-ff-fe-67-3f-b7 Capabilities: [110] Advanced Error Reporting Capabilities: [150] Power Budgeting <?> Capabilities: [160] Virtual Channel <?> Kernel driver in use: bnx2 Kernel modules: bnx2
There are now new external kernel modules for that:
http://lists.centos.org/pipermail/centos-announce/2012-April/018587.html
yum install kmod-bnx2
There are now new external kernel modules for that:
http://lists.centos.org/pipermail/centos-announce/2012-April/018587.html
yum install kmod-bnx2
They are all installed.
# yum list installed kmod* Loaded plugins: fastestmirror, kabi, refresh-packagekit, security Loading support for CentOS kernel ABI Cleaning repos: base extras updates Cleaning up Everything Cleaning up list of fastest mirrors Loaded plugins: fastestmirror, kabi, refresh-packagekit, security Loading support for CentOS kernel ABI Determining fastest mirrors base | 3.7 kB 00:00 ... base/primary_db | 4.5 MB 00:00 ... updates | 3.5 kB 00:00 ... updates/primary_db | 2.9 MB 00:00 ... Installed Packages kmod-bnx2.x86_64 2.2.1-1.el6_2 @anaconda-CentOS-201112091719.x86_64/6.2 kmod-bnx2fc.x86_64 1.0.10-1.el6_2 @anaconda-CentOS-201112091719.x86_64/6.2 kmod-bnx2i.x86_64 2.7.2.1-1.el6_2 @anaconda-CentOS-201112091719.x86_64/6.2 kmod-bnx2x.x86_64 1.72.00_0-1.el6_2 @anaconda-CentOS-201112091719.x86_64/6.2 kmod-bnx2x-firmware.x86_64 1.72.00_0-1.el6_2 @anaconda-CentOS-201112091719.x86_64/6.2 kmod-cnic.x86_64 2.5.9-1.el6_2 @anaconda-CentOS-201112091719.x86_64/6.2 kmod-tg3.x86_64 3.119-2.el6_1 @base Loaded plugins: fastestmirror, kabi, refresh-packagekit, security Loading support for CentOS kernel ABI Cleaning repos: base extras updates 0 package files removed
On Monday 23 April 2012 17.54.33 Lars Hecking wrote:
I just kickstarted a new machine with the latest CentOS 6.2 files, including kernel 2.6.32-220.13.1.el6.x86_64. It came up without network interfaces.
dmesg says: bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw"
This is because you have the kmod-bnx2 package which contains a newer driver (2.2.1) but not a complete set of firmwares (two out of five files missing).
...
What I don't understand is: I have an identical machine that I installed under 6.2 a while back, and kept up to date, and it doesn't have this problem. However, it tells me it uses version v2.1.11 (July 20, 2011) of the driver, how is that possible?
This machine is using the normal bnx2 driver (2.1.11) for which there is a complete set of firmwares (provided by the kernel-firmware package).
If you don't need the 2.2.1 driver I suggest you remove the kmod-bnx2 package from the first machine and fall back to the driver in the normal kernel package.
/Peter
Peter Kjellstr??m writes:
On Monday 23 April 2012 17.54.33 Lars Hecking wrote:
I just kickstarted a new machine with the latest CentOS 6.2 files, including kernel 2.6.32-220.13.1.el6.x86_64. It came up without network interfaces.
dmesg says: bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw"
This is because you have the kmod-bnx2 package which contains a newer driver (2.2.1) but not a complete set of firmwares (two out of five files missing).
Looks like a vanilla kernel bug.
http://lkml.org/lkml/2012/4/17/268
This machine is using the normal bnx2 driver (2.1.11) for which there is a complete set of firmwares (provided by the kernel-firmware package).
Spot on - the working machine did not have kmod-bnx2 installed.
If you don't need the 2.2.1 driver I suggest you remove the kmod-bnx2 package from the first machine and fall back to the driver in the normal kernel package.
Installing without kmod-bnx2 worked, and I also had to get rid of kmod-cnic, which /tmp/yum.log listed as requiring kmod-bnx2.
On 24/04/12 15:56, Lars Hecking wrote:
Peter Kjellstr??m writes:
On Monday 23 April 2012 17.54.33 Lars Hecking wrote:
I just kickstarted a new machine with the latest CentOS 6.2 files, including kernel 2.6.32-220.13.1.el6.x86_64. It came up without network interfaces.
dmesg says: bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw"
This is because you have the kmod-bnx2 package which contains a newer driver (2.2.1) but not a complete set of firmwares (two out of five files missing).
Looks like a vanilla kernel bug.
http://lkml.org/lkml/2012/4/17/268
This machine is using the normal bnx2 driver (2.1.11) for which there is a complete set of firmwares (provided by the kernel-firmware package).
Spot on - the working machine did not have kmod-bnx2 installed.
If you don't need the 2.2.1 driver I suggest you remove the kmod-bnx2 package from the first machine and fall back to the driver in the normal kernel package.
Installing without kmod-bnx2 worked, and I also had to get rid of kmod-cnic, which /tmp/yum.log listed as requiring kmod-bnx2.
This is fixed in RHEL6.3 (beta) where the kernel-firmware package contains the latest firmware that you are missing above:
$ rpm -q kernel-firmware kernel-firmware-2.6.32-262.el6.noarch $ rpm -ql kernel-firmware | grep bnx2-mips /lib/firmware/bnx2/bnx2-mips-06-5.0.0.j6.fw /lib/firmware/bnx2/bnx2-mips-06-6.0.15.fw /lib/firmware/bnx2/bnx2-mips-06-6.2.1.fw /lib/firmware/bnx2/bnx2-mips-06-6.2.3.fw /lib/firmware/bnx2/bnx2-mips-09-5.0.0.j15.fw /lib/firmware/bnx2/bnx2-mips-09-5.0.0.j3.fw /lib/firmware/bnx2/bnx2-mips-09-6.0.17.fw /lib/firmware/bnx2/bnx2-mips-09-6.2.1a.fw /lib/firmware/bnx2/bnx2-mips-09-6.2.1b.fw
In the meantime (as a workaround), just grab the missing firmware and place it in the appropriate directory.
On Tuesday 24 April 2012 16.05.26 Ned Slider wrote:
On 24/04/12 15:56, Lars Hecking wrote:
Peter Kjellstr??m writes:
On Monday 23 April 2012 17.54.33 Lars Hecking wrote:
...
bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw"
This is because you have the kmod-bnx2 package which contains a newer driver (2.2.1) but not a complete set of firmwares (two out of five files missing).>>
...
This machine is using the normal bnx2 driver (2.1.11) for which there is a complete set of firmwares (provided by the kernel-firmware package).
Spot on - the working machine did not have kmod-bnx2 installed.
If you don't need the 2.2.1 driver I suggest you remove the kmod-bnx2 package from the first machine and fall back to the driver in the normal kernel package.
Installing without kmod-bnx2 worked, and I also had to get rid of kmod-cnic, which /tmp/yum.log listed as requiring kmod-bnx2.
This is fixed in RHEL6.3 (beta) where the kernel-firmware package contains the latest firmware that you are missing above:
To be clear, there is no bug/problem in the kernel-firmware package in 6.2. This thread is about the behaviour of a driver update (kmod-bnx2) with its own (incomplete) set of firmware. As you point out, 6.3 will have the new driver and its firmware.
...
In the meantime (as a workaround), just grab the missing firmware and place it in the appropriate directory.
No, in the meantime don't install kmod-bnx2 unless you need it, it's not meant as a general update for the kernel provided bnx2.
/Peter
On 25/04/12 10:45, Peter Kjellström wrote:
On Tuesday 24 April 2012 16.05.26 Ned Slider wrote:
...
In the meantime (as a workaround), just grab the missing firmware and place it in the appropriate directory.
No, in the meantime don't install kmod-bnx2 unless you need it, it's not meant as a general update for the kernel provided bnx2.
Agreed.
My workaround was assuming that one actually *needs* the updated driver.
On Tuesday 24 April 2012 15.56.09 Lars Hecking wrote:
Peter Kjellstr??m writes:
On Monday 23 April 2012 17.54.33 Lars Hecking wrote:
I just kickstarted a new machine with the latest CentOS 6.2 files,
including kernel 2.6.32-220.13.1.el6.x86_64. It came up without network interfaces.
dmesg says: bnx2: Can't load firmware file "bnx2/bnx2-mips-09-6.2.1b.fw"
This is because you have the kmod-bnx2 package which contains a newer driver (2.2.1) but not a complete set of firmwares (two out of five files missing).
Looks like a vanilla kernel bug.
What you're hitting is similar but not the same. You installed an rpm that redhat built for a few new NICs as part of their DUP (Driver Update Program):
https://rhn.redhat.com/errata/RHEA-2012-0503.html
Afaict, they say not to use it for other NICs. In your case a non listed NIC broke because that package lacked some firmware.
That is, the problem is crystal clear, bug in the kmod-bnx2 package (but it could be claimed to be a documented limitation...).
This machine is using the normal bnx2 driver (2.1.11) for which there is a complete set of firmwares (provided by the kernel-firmware package).
Spot on - the working machine did not have kmod-bnx2 installed.
If you don't need the 2.2.1 driver I suggest you remove the kmod-bnx2 package from the first machine and fall back to the driver in the normal kernel package.
Installing without kmod-bnx2 worked, and I also had to get rid of kmod-cnic, which /tmp/yum.log listed as requiring kmod-bnx2.
"yum remove kmod-bnx2" is suggested way to remove packages in a dependency- aware way.
/Peter
Looks like a vanilla kernel bug.
What you're hitting is similar but not the same. You installed an rpm that redhat built for a few new NICs as part of their DUP (Driver Update Program):
ACK.
"yum remove kmod-bnx2" is suggested way to remove packages in a dependency- aware way.
Slightly different situation here - I'm working off a local repo for kickstart installations, so I don't want to install it in the first place. For that to happen, I need to exclude kmod-cnic as well or the bnx2 rpm gets pulled in anyway.
On Wednesday 25 April 2012 10.53.46 Lars Hecking wrote: ...
"yum remove kmod-bnx2" is suggested way to remove packages in a dependency- aware way.
Slightly different situation here - I'm working off a local repo for kickstart installations, so I don't want to install it in the first place. For that to happen, I need to exclude kmod-cnic as well or the bnx2 rpm gets pulled in anyway.
Interesting, are you saying that any standard install package selection includes these updated drivers?
/Peter
Peter Kjellstr??m writes:
On Wednesday 25 April 2012 10.53.46 Lars Hecking wrote: ...
"yum remove kmod-bnx2" is suggested way to remove packages in a dependency- aware way.
Slightly different situation here - I'm working off a local repo for kickstart installations, so I don't want to install it in the first place. For that to happen, I need to exclude kmod-cnic as well or the bnx2 rpm gets pulled in anyway.
Interesting, are you saying that any standard install package selection includes these updated drivers?
I'm using a custom group that install pretty much everything. Ok, not really everything, but about three quartes of all >6k packages. The local repo is a repomanage merge of os and updates tree.
On Wednesday 25 April 2012 12.48.43 Lars Hecking wrote:
Peter Kjellstr??m writes:
On Wednesday 25 April 2012 10.53.46 Lars Hecking wrote: ...
"yum remove kmod-bnx2" is suggested way to remove packages in a dependency- aware way.
Slightly different situation here - I'm working off a local repo for
kickstart installations, so I don't want to install it in the first place. For that to happen, I need to exclude kmod-cnic as well or the bnx2 rpm gets pulled in anyway.
Interesting, are you saying that any standard install package selection includes these updated drivers?
I'm using a custom group that install pretty much everything. Ok, not really everything, but about three quartes of all >6k packages. The local repo is a repomanage merge of os and updates tree.
Let me rephrase that, did you explicitly select these packages or did a group pull them in?
/Peter