LINUX KERNEL 2.6 HOWTO

Tested versions

  linux-2.6.0 (final)

Of course everything should work with any later linux 2.6 version too.

Older tested versions:

  linux-2.6.0-test9-mm1 
  linux-2.6.0-test5-mm1 (+compile patch)
  linux-2.6.0-test4-mm5
  linux-2.6.0-test4

This document describes the steps necessary to migrate a current 2.4 linux kernel to the current 2.6 kernel. If your current kernel is older (2.2 or 2.0) please do a 2.4 mirgation first: http://lxr.linux.no/source/Documentation/Changes?v=2.4.28

Please note that if you crash your system, loose data, kill hardware or anything else it's your own responsibility. I merely describe how I did it and add helping information from others.

Knowledge

You should be comfortable to compile and install a linux kernel and know this howto: http://www.linuxdocs.org/HOWTOs/Kernel-HOWTO.html

(This howto is for 2.2/2.4 kernels but helps to understand the process.)

Further you should read the Documentation/Changes file from your 2.6 kernel: Changes-2.6.0

Another resource of information is the post-halloween document: http://www.linux.org.uk/~davej/docs/post-halloween-2.6.txt

Get the kernel

Got to: http://kernel.org/mirrors/ and choose your mirror. (It's in the directory: /pub/linux/kernel/v2.6/)

Download the .tar.gz or .tar.bz. Optionally get the signatures and verify them.

Unpack to /usr/src and enter the linux-2.6.0 directory.

Software requirements

List from: Documentation/Changes (Changes-2.6.0)

NOTE: you need a more recent version of module-init-tools than described in the file: (Someone reported 0.9.10 to work, so if you have module-init-tools already try them, if not install at least 0.9.13 or higher non "pre" version)

  module-init-tools      0.9.13                  # depmod -V

Basic tools:

  Gnu C                  2.95.3                  # gcc --version
  Gnu make               3.78                    # make --version
  binutils               2.12                    # ld -v
  util-linux             2.10o                   # fdformat --version
  procps                 2.0.9                   # ps --version

Choose for your filesystem(s):

  e2fsprogs              1.29                    # tune2fs
  jfsutils               1.0.14                  # fsck.jfs -V
  reiserfsprogs          3.6.3                   # reiserfsck -V 2>&1|grep reiserfsprogs
  xfsprogs               2.1.0                   # xfs_db -V

Optional:

  pcmcia-cs              3.1.21                  # cardmgr -V
  quota-tools            3.09                    # quota -V
  PPP                    2.4.0                   # pppd --version
  isdn4k-utils           3.1pre1                 # isdnctrl 2>&1|grep version
  nfs-utils              1.0.5                   # showmount --version
  oprofile               0.5.3                   # oprofiled --version

You can get the packages from the location described in Documentation/Changes: Changes-2.6.0. However later versions of 2.6 may need more current versions of there tools too.

Anyway module-init-tools are from: http://www.kernel.org/pub/linux/kernel/people/rusty/modules/ (use 0.9.13 or higher but don't use "pre" versions, except you know what you are doing)

The corresponding modutils are from: http://www.kernel.org/pub/linux/utils/kernel/modutils/v2.4/ (use 2.4.21 or any later version)

Configure your kernel

To configure:

  make config/oldconfig
  make menuconfig
  make xconfig (uses QT not TK)
  make gconfig (used GTK)

Use what you like best ;-)

Note: don't forget:

    CONFIG_VGA_CONSOLE=y
    CONFIG_VT=y
    CONFIG_VT_CONSOLE=y
    CONFIG_INPUT=y
    CONFIG_INPUT_KEYBOARD=y
    CONFIG_KEYBOARD_ATKBD=y
    CONFIG_INPUT_MOUSE=y
    CONFIG_MOUSE_PS2=y

or you won't see anything :) Further problems are discussed in the FAQ (kernel_2.6_faq.html), go and look there before building.

The configuration is saved in the .config file. To check for features just: e.g. 'grep CONSOLE .config'

I recomment to start a new .config and NOT to copy your old 2.4 .config to the distribution dir!

Build the kernel

'make help' gives you the (new) options. Basically 'make all' will do the trick.

Install the kernel/modules

To install the modules:

  make modules_install

does what it always does.

  cp arch/(YOUR ARCH)/boot/bzImage /boot/vmlinuz-2.6.0
  cp System.map /boot/System.map-2.6.0

does the rest. Now you have to update lilo/grub/chos ...

Reboot and try it ...

Now you are on your own - no risc no fun!

Further information

Seek further advice from the FAQ: index.html

Last changed: Thu Mar 18 11:34:32 MET 2004