Migration to Kernel 2.6.x

Kernel 2.6 offers advanced ACPI support and lots of improvements over the old kernel 2.4. This section describes the installation of a kernel 2.6 on my dell inspiron 510m

Most of the information presented here is based on Fedora core 1 with kernel 2.6-test, Migrating to Linux Kernel 2.6 and HowTo Upgrade To The 2.6 Kernel. Visit these sites for further information.

Installation of the Kernel

First install a compiled 2.6 series kernel with the kernel sources and kernel documentation from the fedora development branch. Furthermore I downloaded the current kernel 2.6.3 from ftp.kernel.org und unpacked the source code in /usr/src.

From the fedora 2.6 kernel source copy the config-i686-file to /usr/src/linux-2.6.3/.config. Modify it as needed ensuring that speedstep centrino and acpi* are activated. For the sake of completeness here is my .config file file.

Next compile the kernel with :

    make clean
    make bzImage
    make modules
    make modules_install
    copy ./arch/i386/boot/bzImage /boot/vmlinuz-2.6.3
    mkinitrd /boot/initrd-2.6.3.img 2.63

and add the following lines to /etc/grub.conf :

    title Fedora Core 1 (2.6.3)
    root (hd0,4)
    kernel /boot/vmlinuz-2.6.3 ro root=/dev/hda5 acpi=on
    initrd /boot/initrd-2.6.3.img

You have to change the partition and root statement to your needs. The new grub configuration is installed with:

    grub

In your /etc/fstab add the following entry :

    none /sys sysfs defaults 0 0

In your /etc/X11/XF86Config in the section InputDevice replace the line with for the device with :

    Option "Device" "/dev/input/mice"

If you do use gdm /etc/sysconfig/gdm has to be changed to :

    DEVICE = "/dev/input/mice"

Also you do have to remove /etc/sysconfig/hwconfig so that kudzu will start the autodetection of new hardware and update your system configuration correctly.

Now it is time for a reboot :-))

Note: If you deactived kudzu and your hardware is not detected correctly in the boot process you can start kudzu manually with :

    /etc/init.d/kudzu start

Configuration of Modules & Sound

And voila, your new kernel should be up and running. But your are not done yet…. there is still some work to do!

In kernel 2.6 /etc/modules.conf is replaced with /etc/modprobe.conf.

Sound

For sound make shure you have the alsa packages alsa-lib and alsa-driver installed. Then add the following lines to your etc/modprobe.conf :

      # ALSA portion
      alias char-major-116* snd
      alias snd-card-0 snd-intel8x0

      # OSS/Free portion
      alias char-major-14* soundcore
      alias sound-slot-0 ssnd-intel8x0

      # card #1
      alias sound-service-0-0 snd-mixer-oss
      alias sound-service-0-1 snd-seq-oss
      alias sound-service-0-3 snd-pcm-oss
      alias sound-service-0-8 snd-seq-oss
      alias sound-service-0-12 snd-pcm-oss

Make sure to avoid additional linebreaks. Check /etc/sysconfig/hwconfig and – if applicable – change the driver in the class:AUDIO to :

      driver: snd-intel8x0

Update 2004-02-27: The automatic save and restore of the volume settings is not working. Here this is done within KDE so I don’t care very much about it. Also I added the following line to /etc/rc.d/rc.local that loads the volume settungs stored in .aumixrc:

      /bin/aumix-minimal -f /etc/.aumixrc -L

Update 2004-03-01: If the standard alsa sound driver will give you high cpu loads even while idle the switch to the threaded sound system. In my case this solved the problem.

Modules

New kernel, new game. All the additional kernel modules must be reinstalled, i. e. :

      /usr/share/lufs/prepmod

for the ntfs module. The wlan ndiswrapper needs to be reinstalled compeltely, see the networking section. The relevant lines in /etc/modprobe.conf are :

      # wlan / ndiswrapper
      alias wlan0 ndiswrapper
      options ndiswrapper if_name=wlan0
      install ndiswrapper /sbin/modprobe --ignore-install ndiswrapper; 
               /usr/sbin/loadndisdriver 14e4 4324 /lib/windrivers/bcmwl5.sys /lib/windrivers/bcmwl5.inf

Make sure that the install ndiswrapper … is written all in one line.

Update 2004-06-17: With ndiswrapper 0.8 the following entry is added to /etc/modprobe.conf:

      alias wlan0 ndiswrapper

Additional config information is stored in /etc/ndiswrapper and need not be added to modprobe.conf.

Power Managment

The basic features also present in kernel 2.4.x work flawlessly. Battery status, fan control and cpu throttling with speedstep-centrino do not cause any problems.

New 2004-06-17: Using the the software suspend driver swsusp suspend to disk is possible. For furhter information see the project page.

This was tested with kernel 2.6.6 and the pre-release version 2.0.0.81. Some information about the installation is available here.

On my laptop this setup works quite stable. From time to time the suspedn process hangs. The only major problem is that upon resume the ACPI information in /proc/acpi are either no longer there or dead….