How do I install an older 2.6.37 Kernel Version?

I have a Sony VAIO P netbook and for several issues (graphics driver, audio driver and power management), I want to install an older version of the Linux kernel on Ubuntu 11.10 (actually its Xubuntu) that seems to be much more suitable.

So I searched for Ubuntu kernels and found this link which includes all versions of the Linux kernel distributed by Ubuntu. I am looking for a version before 2.6.38 (to escape the known power management issue) and of course solve my many driver problems!

  1. I guess my best bet is 2.6.37 but there are several 2.6.37.x-x kernels! Can someone point me to the right choice?

  2. In each folder (for example: this one) there are several DEB packages. Which packages should I install? (Note: I have a 32-bit system)

  3. What is the installation process? sudo dpkg -i *.deb ? Is this fine or additional steps are required?

Thanks.


Solution 1:

first the warning

Changing the kernel is not to be taken lightly - you can leave yourself with serious graphics issues and other issues - and even non booting scenarios.

It is wise to disk-image with a good imaging tool such as Clonezilla BEFORE you start.

mainline kernels vs ubuntu stock kernels

The mainline kernels are built using an older toolchain than stock ubuntu kernels. Its perhaps better to consider downloading ubuntu kernels from specific Ubuntu versions

For example - 2.6.38 for Natty, 2.6.35 for Maverick and 2.6.32 for Lucid.

However, you could look forward to v3.2 that is going to be used in Precise - some have reported good power-management issues with this kernel as well as the latest drivers.

There is a similar question here that will give you some further information: How to downgrade the Kernel on 11.10

Assuming your main issue is power-management, then before you consider changing your kernel - consider installing Jupiter - this is an excellent power-management tool.

installing from the mainline

If you must download from the mainline then the full instructions are on the community wiki. In summary 32bit or 64bit deb packages for headers & generic image together with a common "all" deb package.

All .deb packages can be installed with the same syntax:

sudo dpkg -i [package_name].deb

If you want to use 2.6.37 - then just use the latest 2.6.37.x version. Note - none of these kernels will be receiving security updates - you will need to patch these yourself.

If you are using proprietary drivers (e.g. nvidia or fglrx) then you will need to reinstall those drivers. It may be wise to rename your /etc/X11/xorg.conf file first before booting.

Solution 2:

I had to install an even older kernel (2.6.32.21-generic) for stock modules to work with a custom kernel. VBoot releases their module built in the kernel and I had to match versions to get my other hardware to work.

As such, I thought I would explain how to obtain the discontinued kernels manually from http://old-releases.ubuntu.com/ubuntu/

  1. In the steps below, replace x.x.xx-xx with your kernel version and amd64 with your processor type. Note this is for the generic kernel and not using extra features such as PAE.

  2. Go to http://old-releases.ubuntu.com/ubuntu/pool/main/l/linux/ (I believe this lists most if not all the old kernel packages)

  3. In the page CTRL+F find headers-x.x.xx-xx-generic and download the
    1. linux-headers-x.x.xx-xx-generic_x.x.xx-xx.yy_amd64.deb
    2. linux-headers-x.x.xx-xx-generic_x.x.xx-xx.yy_all.deb
  4. In the page CTRL+F find image-x.x.xx-xx-generic and download the

    1. linux-image-2.6.32-21-generic_2.6.32-21.32_amd64.deb
  5. Put all of these packages in a folder alone, and from that folder (cd into it) run

    1. sudo dpkg -i *.deb