Is it possible to downgrade the kernel in Ubuntu server 9.10 to 2.6.30 (or any 2.6 kernel below 2.6.31) using the apt-get package manager?

Here's the motivation:

I installed Ubuntu 9.10 server on a machine that has a NetXen NXB-10GCX4 10GbE NIC in it. The netxen_nic driver that comes with Linux 2.6.31 complained that the firmware on the NIC was too old (the firmware was 3.4.114, and the kernel requires firmware version 3.4.216 or greater).

I went to the vendor's website (QLogic, which has purchased NetXen), downloaded the latest drivers, and flashed the firmware. Unfortunately, the NICs still weren't working properly. According to the driver documentation, I need to install the commercial drivers to work properly with the latest firmware.

I tried to compile the commercial drivers into a kernel module. Unfortunately, they won't compile on Ubuntu 9.10, because they were written for an older version of the Linux networking API that was removed from the kernel in 2.6.31.

Since QLogic considers this a legacy product, there won't be any additional driver updates. So I need to run on a kernel that still supports the old API. I'd still like to use Ubuntu 9.10. I'd prefer to use the package manager so that dependencies are handled properly, rather than manually doing the kernel downgrade.

Edit: For anyone reaching this page by searching for this particular NIC, I solved my specific problem by downloading version 3.4.216 of the Linux drivers from NetXen's Japanese site and flashing the firmware by copying 3.4.216/bin/cx4_romimage to /lib/firmware/nxroming.bin and reloading the netxen_nic module.


I don't have information on that NIC so I'll focus my answer on downgrading the kernel.

Kernels 2.6.30.x were used on earlier Karmic releases and are apparently unavailable using APT for any current release. I suggest you follow the procedure here to install 2.6.30 versions of Ubuntu server kernel packages (I'm not sure it works OK). Kernel server packages are not on the mainline kernels archive, but they should be available on Ubuntu archive mirrors (list of mirrors). I'd try to install the latest version available (I've seen server packages on a mirror, latest upstream release is

I've just tried the desktop kernel on an up-to-date Karmic desktop installation and it is apparently working without issues, so the procedure will probably work on a server installation.

After installation, if it works, you can change the default kernel using the command grub-set-default (see Grub2- Community Ubuntu Documentation) or using StartUp-Manager (startupmanager package) on X. Editing /boot/grub/grub.cfg is not recommended.

| improve this answer | |

In most cases the old kernel will still be present on your system, all you need to do it edit the grub configuration to point to the old one and reboot. (/boot/grub/grub.conf)

If the old kernel was removed, you'll need to install it again using apt-get, I doubt the package manager will let you do that.

The other thing to do is to add your voice to the campaign for a stable driver interface, so these issues won't keep coming back.

| improve this answer | |
  • You'll probably still see it in your grub menu, otherwise all your kernels are stored in /boot. – prestomation Dec 19 '09 at 18:35

there 2 ways to this firstly if this not your production server,you can install ubuntu 8.04 upgrade to ubuntu 9.10. Secondly apt-get remove that kernel.XX.XX.XX.dep before running that you need add old kernel to your server.

| improve this answer | |

What I would try to do is find the firmware that the driver in the Ubuntu standard kernel wanted, since the latest one didn't work. In the long term I would replace the card with something more supported. Downgrading the kernel to keep proprietary drivers happy is a losing proposition.

| improve this answer | |
  • The irony is that the commercial driver seems to be GPL'd. At least, it comes with a LICENSE file that contains the GPL, so I assume that means it's GPL-licensed. – Lorin Hochstein Dec 20 '09 at 15:31

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.