home *** CD-ROM | disk | FTP | other *** search
-
-
-
- HOWTO install an (initrd) linux 2.6 kernel
- on Debian woody
-
- $Revision: 1.1 $
-
- Marc.Herbert@free.fr
-
-
- Motivation
- ----------
-
- You may find this document useful if:
-
- - you want to test the latest linux 2.6 kernels
- - you want to keep your debian woody ("stable") box as intact as
- possible, i.e., you want to test _only_ linux 2.6 and not all the latest
- stuff from Debian.
-
- You may find it even more useful if:
-
- - you prefer booting from a RAM-disk instead of from your hard disk
- (the "initrd-way"). See initrd(4) for more information.
-
-
-
- Need fresh modutils and module-init-tools
- -----------------------------------------
-
- The mechanism for dynamically loading kernel modules has been
- rewritten between 2.4 and 2.6. As a consequence, the former "modutils"
- tools (insmod, modprobe,...) are not compatible with 2.6 You need the
- new "module-init-tools" instead.
-
- Issue: these new and incompatible tools have the same filenames as
- their 2.4 siblings (insmod, modprobe,...). As often, installing from
- source updated packages on your stable debian distribution does the
- trick here. The recent debian packages "modutils" and
- module-init-tools" do some automatic kernel version detection before
- invoking the right version of modprobe, insmod, etc.
-
- First you'll need some basic tools to compile and generate
- the debian packages:
- # apt-get install gcc debhelper fakeroot ...
-
- Then edit your /etc/apt/sources/list file, so that the sources of
- packages come from the "testing" or even "unstable" version of
- debian. For instance:
-
- deb-src ftp://ftp.yourmirror.org/pub/debian unstable main non-free contrib
-
-
- Then fetch recent sources:
- $ apt-get source modutils module-init-tools
-
- Recent modutils sources need a small hack to compile on woody:
-
- dh_installman extra/modules*.5 extra/update-modules*.8 *.8 *.5
- sh -e debian/fixmanpages
- - dh_installinit --no-start --update-rcd-params="start 20 S ."
- + dh_installinit --update-rcd-params="start 20 S ."
- dh_strip
- dh_link bin/lsmod sbin/lsmod
-
- Build the .deb packages:
- $ cd module-init-* && fakeroot dpkg-buildpackage -d
-
- $ cd ..; cd modutils-* && fakeroot dpkg-buildpackage -d
-
- And install them:
- $ dpkg -i modutil*.deb
- $ dpkg -i module-init-tools*.deb
-
- You're done.
-
-
- Please note that Documentation/Changes gives a lengthy list of other
- kernel-related utilities mandatory upgrades before using 2.6. However,
- upgrading only modprobe & co was enough for me.
-
-
- make config
- -----------
-
- From the (outdated) Documentation/initrd.txt:
-
- "Second, the kernel has to be compiled with RAM disk support and with
- support for the initial RAM disk enabled."
-
- When the kernel boots, it needs to mount the initial ramdisk as its
- root partition, and to read from it. As a consequence, the following
- features need to be compiled _built-in_ (not as modules)
-
- CONFIG_BLK_DEV_RAM=y (section "Block Devices")
- CONFIG_BLK_DEV_INITRD=y
-
- CONFIG_ROMFS_FS=y (section "Filesystems")
-
- An alternative to the "ROMFS" filesystem above could be "CRAMFS"
- (short for "Compressed ROM") used by default by the debian mkinitrd
- script, but... the initrd+CRAMFS combination is not supported by
- linux, unless you use a kernel source with debian patches. Moreover, it
- seemed to me that the mere presence of the CRAMFS code in the vanilla
- linux kernel prevented a ROMFS initrd image to boot!? I suggest
- avoiding built-in CRAMFS code for the moment, unless you are a
- hardcore debian fan (compiling it as module is OK).
-
- CONFIG_CRAMFS=m (section "Miscellaneous filesystems")
-
-
-
- mkinitrd
- --------
-
- After having installed your brand new 2.6 and its modules, you need to
- create the initrd image.
-
- # apt-get install initrd-tools genromfs
-
- If you use ROMFS instead of CRAMFS (see above), you must edit
- /etc/mkinitrd/mkinitrd.conf:
-
- @@ -18,4 +18,4 @@
- UMASK=022
-
- # Command to generate the initrd image.
- -MKIMAGE='mkcramfs %s %s > /dev/null'
- +MKIMAGE='genromfs -d %s -f %s'
-
-
- The mkinitrd machinery tries hard, when building the initrd image, to
- guess what are the modules to preload from the ram disk, in
- order to be able to access the real (hard drive) root partition. But
- unfortunately, it may sometimes fail. This is hard to blame, since we
- are mixing software from various provenances.
-
- If you find that your 2.6 kernel boots from the RAM disk, but has
- later problems to mount the root partition of your hard drive,
- then tweaking the RAM disk may help. Thanks to the file
- /etc/mkinitrd/modules (see mkinitrd(8)), you can force the kernel to
- load some modules from the RAM disk (e.g., "sd_mod") before trying to
- mount the real root partition. Check also mkinitrd.conf(5)
-
- If things still go wrong, you can insert "set -x" and other debugging
- stuff into the two scripts that the kernel launches after initrd
- boot and before mounting the real root:
-
- /usr/share/initrd-tools/linuxrc
- /usr/share/initrd-tools/init
-
-
-
- LILO
- ----
-
- As stated in Documentation/initrd.txt, do not forget to add an initrd
- line in /etc/lilo.conf
-
- initrd=/boot/initrd-my2.6
-
- DO NOT append="root=/dev/ram0 init=/linuxrc rw" to boot arguments,
- contrary to stated in Documentation/initrd.txt, which seems outdated
- wrt this.
-
-
-
- What did you break?
- -------------------
-
- OK, your debian woody machine is now running a linux 2.6 kernel and is
- almost intact, expect... you cannot create initrd images compatible
- with 2.4 kernels anymore, because mkinitrd blindly stores
- /sbin/modprobe etc. in the RAM disk, i.e., 2.6-modules utilities!
-
- Again, if needed, you can solve this issue by upgrading initrd-tools
- to a recent version that takes 2.4/2.6 differences into account. The
- good side-effect is that the new version of the mkinitrd script will
- probably be more clever when guessing the modules needed to mount the
- real root. The nasty side-effect is that you may get some bugs...
-
- As usual, type:
- $ apt-get source initrd-tools
- $ fakeroot dpkg-buildpackage
- # dpkg -i initrd-tools*.deb
-
- It seems you can safely ignore the failure of the configure step.
-
-
-
- kernel-package
- --------------
-
- When everything above is working OK, then you can use the "make-kpkg"
- tool to automate some parts and create a debian package with your 2.6
- kernels, its modules, etc. It seems the (old) woody version of
- make-kpkg is able to manage (new) 2.6 kernels without problem.
-
-
-