bnx2 missing from stock Debian 2.6.24 etchnhalf kernel
For the first time in the history of debian stable releases, a new kernel was included in the stable branch in what was called “Etch and a half” project. This happened from the desire to support hardware that requires updated drivers. This allows an ‘official’ way to upgrade your 2.6.18 debian etch kernel to a more recent one 2.6.24 without doing a manual compile or some use some backported packages. Still if you are not very careful this upgrade can cause problems and this post will show how you can loose your network connectivity if your system is using a bnx2 based driver.
Installing the etchnhalf kernel is a simple as running:
aptitude install linux-image-2.6.24-etchnhalf.1-amd64- choose your system architecture (linux-image-2.6.24-etchnhalf.1-686 or linux-image-2.6.24-etchnhalf.1-amd64, etc)
There is no real dependency on any special package even if etch-r4 introduced several updated packages like initramfs and sysvinit that are tagged as etchnhalf. As with any kernel upgrade there can be various problems, but this post will deal with people using bnx2 network drivers (quite common on servers like Dell PE1950 or PE2950). This is not related to etchnhalf, but starting with version 2.6.24 of the debian kernel the bnx2 kernel module was removed from the packaged kernel image due to license restrictions placed on the firmware: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=471377
If you are using a bnx2 network driver, then you will have to install a separate package called firmware-bnx2 if you still want to use networking after the kernel upgrade
. This is especially important for existing systems upgrading, as new ones will be dealt by the debian installer.
aptitude install firmware-bnx2
This will install the firmware and run update-initramfs and regenerate your default kernel initrd to include the firmware at boot time.
Unpacking firmware-bnx2 (from .../firmware-bnx2_0.4+etchnhalf.1_all.deb) ...
Setting up firmware-bnx2 (0.4+etchnhalf.1) ...
update-initramfs: Generating /boot/initrd.img-2.6.24-etchnhalf.1-amd64
Hopefully this post help other people in this situation and maybe save you a trip to the datacenter or rack where you have your server. Myself I have learned this the hard way while upgrading 2.6.24 on lenny a while ago…
Note: to be able to install firmware-bnx2 you will need to have enabled the non-free repository of your debian apt mirror, like this:
deb http://ftp.us.debian.org/debian/ etch main contrib non-free
This is also properly documented in the release notes:
“Broadcom NetXtreme II network controllers
The bnx2 driver for Broadcom NetXtreme II network controllers has been modified to load firmware files from the filesystem. These firmware files are provided in the firmware-bnx2 package in the non-free section of the archive. Systems that require the bnx2 driver must have the firmware-bnx2 package installed to function with the 2.6.24 “etch-and-a-half” kernel. These devices will not be available at installtime when using a Debian “lenny”-based installer.“
>
Tags: bnx2, debian-etch, kernel







21st October 2008, 12:49
I was going to do a similiar post but you were quickier. Just a quick note (it happened to me in one test server): if you happen to have backports.org repo ENabled and the etch non-free repo DISabled, then when you issue
aptitude install firmware-bnx2
it will install it from backports, for a newer kernel, and it won’t work (and if your main ethernet is a bnx2, you’re in trouble
21st October 2008, 16:30
Vide: thanks for your note. It would be interesting to see if that happens with the backports kernel also (as I assume that firmware was tested with that kernel). That would mean that the issue you sow can appear in lenny also.
If you could try this out with linux-image-2.6.26-bpo.1-* and the firmware-bnx2 from backports and update us if this still fails it would be great. If you don’t have the possibility to test this easily, I will try to do this sometime next week and update this post with the result.
Thanks,
- Marius -
22nd October 2008, 08:21
@Marius: Last time I tried (abouth 5-6 weeks ago), the firmware-bnx2 package in Lenny wasn’t still updated to 2.6.26 (it was still for 2.6.25), so in Lenny bnx2 was just broken… probably it happened the same in backports land, but I didn’t try.
11th November 2008, 16:01
[...] This is due to a change in newer Linux versions [...]