Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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

share|improve this question

4 Answers 4

up vote 1 down vote accepted

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 2.6.30.7 server packages on a mirror, latest upstream release is 2.6.30.10).

I've just tried the 2.6.30.10 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.

share|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.

share|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.

share|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.

share|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

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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