Upgrading the kernel

General

General and brief notes on 'how I' do it. There are other ways...

Source

Download the kernel, I usually use The Linux Kernel archives. cd to the src directory (/usr/src) and make sure the existing linux entry is either removed, if it is a link, or renamed to say linux_2.X.Y. Unpack the downloaded kernel (E.g. tar zjf /usr/src/linux-2.X.Y.tar.bz2). This will create a new directory (E.g. linux-2.X.Y) link this new directory to linux E.g. ln -s linux-2.X.Y linux

If patching a previous kernel, the patches are applied to linux directory, so use the something on the lines of: -

<patchfile patch -p0

Build

To build a new kernel; cd into the source directory (/usr/src/linux) and run make xconfig and use the gui to configure all that is required ;-) ! I am being VERY vague here because if you don't know, or cannot infer what is meant by the terms/options in the gui, then don't do it!

Updating from minor versions e.g. 2.6.x to 2.6.x+1 copy the existing .config to the new source directory and run make oldconfig. This will use the previous settings for defaults and then only ask for values for new options.

Once the kernel is configured to your hardware compile it. Pre 2.6 kernels require a 'make dep' to rebuild the dependancies appropriate to your hardware and configured options. To compile and install the kernel and any modules use 'make' and then 'make modules-install'.

Once the kernel is built finish off with: -

cp arch/i386/boot/bzImage /boot/bzImage-2.X.Y
cp System.map /boot/System.map-2.X.Y
cp .config /boot/config_2.X.Y
rm /boot/System.map
ln -s /boot/System.map-2.X.Y /boot/System.map
cd /usr/include
mv linux linux.orig
mv asm asm.orig
ln -s /usr/src/linux/include/linux .
ln -s /usr/src/linux/include/asm .

Edit the system files to use the new boot image. I use lilo. So edit the /etc/lilo.conf file and run the lilo command to implement the changes. Remember, never delete the previous running kernel, if something goes wrong with the new kernel, you would have to resort to using CD-ROM or floppy kernels to recover …

Post build

My setup requires re-building of some kernel dependant packages: -

  • nVidia kernel modules.
  • Cisco vpn kernel modules.

First edit /etc/inittab; making the default run-level 3 prior to re-booting into the new kernel. Build the new packages and once satisfied return the default init level to 5.

Updates

02-Jan-2005 2.6.10

No problems.

21-Oct-2004 2.6.9

CDRW device fixed.

Rebuild of nVidia driver fails

NVidia driver depends on a previously static symbol. For now we get round this by a quick patch to nv.c defining the missing symbol.

#ifndef __VMALLOC_RESERV
#   define __VMALLOC_RESERVE (128 << 20)
#endif

Proper fix is to apply new nVidia drivers when released.

15-Aug-2004 2.6.8.1

NFS fix.

CDRW problems (only writeable by root)

Use root or reboot to 2.6.7 or wait for 2.6.9

14-Aug-2004 2.6.8

Fixes and patches.

No problems encountered

30-Jun-2004 2.6.7

Fixes and patches. Updates include NTFS, USB, …

Problems encountered

  1. Kernel panic

    VFS: Cannot open root device ...
    Please append a correct "root=" boot option
    Kernel panic: VFS: Unable to mount root fs on unknown-block...

    Fix. After a few recompiles and some Internet searching I gave up and started again with a make clean; make oldconfig using 2.6.6's .config. I then re-enabled SCSI_PROC_FS and UFS_FS. This time it worked fine !

  2. Corrupt boot-block.

    During my attempts at fixing the above kernel panic I created and installed a bad lilo.conf (i.e. I accidentally renamed the boot device !). So when re-booting, instead of the usual 'loading....', it just gave '99 99 99...'

    I tried to fix this by booting from CDROM, mounting the relevant partition and reverting the lilo.conf file. However, I could not the correct arguments (boot device mappings) for lilo so that it could overwrite the bad version.

    Fix. I resorted to using the SuSE's 'repair' facility found in the installation section of the installation disk. I let it run in automatic mode. It found my previous linux installation (including my repaired lilo.conf) and re-installed a working boot mechanism ! (Be patient with it as it does an fsck of all partitions and it may delete entries in the /etc/fstab file as it progresses.)

11-May-2004 2.6.6

Fixes and patches. Updates include NTFS, USB, …

Problems encountered

  1. Unable to use vpnclient. /etc/init.d/vpnclient_init start reports

    modules/2.6.6/CiscoVPN/cisco_ipsec (version 4.0.3.B) - invalid module

    Fix. Updated to version vpnclient-linux-4.0.4.A-k9

05-Apr-2004 2.6.5

Many updates, fixes and patches. Updates include a DMA'd CDROM.

Problems encountered

  1. Amend 'append' value for 2.6.5 in lilo.conf, from hdb=ide-scsi to hdb=ide-cd
  2. Changed all links (/dev/cdrom, /dev/dvd) from /dev/sr0 to /dev/hdb

11-Mar-2004 2.6.4

Many updates.

Problems encountered

  1. Downloaded patched (for 2.6) version of vpnclient, which now works again.
  2. Sound card now working again.

28-Feb-2004 2.6.3

Problems encountered

  1. Sound card not working

04-Feb-2004 2.6.2

ACPI and USB updates.

No problems encountered

09-Jan-2004 2.6.1

Major USB update. This may now enable my Canon EOS 300D to connect...

Problems encountered

vpnclient does not work (current version is specifically for the 2.4 kernel) …

The EOS 300D problem was actually a problem with the EOS 300D not linux nor usb nor hotplug …

18-Dec-2003 2.6.0

Problems encountered

  1. hwscan hangs machine

    Initially thought problems with hanging were caused by interactions between the new pre-empting kernel and reiserfs. Thus, I converted all reiserfs file systems to ext3. (See New partition table.) This made no difference ! So stopped hwscan from running at boot time. This works okay.

  2. NVidia drivers not available for 2.6

    Used an unofficial 5328 release (beta?) which works fine.

  3. Sound not working

    Problems with changes to modules.conf,... etc.
    Compiled sound card driver into kernel (no modules, thus no module problems !)

  4. khttpd

    No longer in the kernel. Remove boot scripts.

Notes

Major USB update going on for imminent(?) release of 2.6.1

12-Dec-2003 2.4.23

No problems encountered

25-Aug-2003 2.4.22

No problems encountered

ACPI works again !

15-Jun-2003 2.4.21

No problems encountered

All sorted out in the first kernel upgrade.

03-Mar-2003 2.4.20

Problems encountered

  1. sound

    Incorrect /etc/modules.conf (only worked in 2.4.19 due to SuSE supplied module)
    Corrected modules.conf (this fix also works for the SuSE supplied 2.4.19)

  2. frame buffer

    use vesafb (the 'correct' riva driver does not work.)

  3. ide

    Set bus speed in kernel args in lilo.conf idebus=66

  4. SMB mounts

    Requires 'IP filters'. Rebuild kernel with appropriate options set.

  5. modem

    Link '/dev/modem -> /dev/ttyS4' disappeared. Manually recreate. add 'i82365 bridge' module support, rebuild kernel modules.


Dean Darlison
Last modified: Tue Jan 4 09:04:48 GMT 2005