r947 - trunk
tushar at linuxfromscratch.org
tushar at linuxfromscratch.org
Fri Mar 25 16:00:25 PST 2005
Date: 2005-03-25 17:00:24 -0700 (Fri, 25 Mar 2005)
New Revision: 947
Updated Hint: kernel-2_6-migration
--- trunk/kernel-2_6-migration.txt 2005-03-19 04:18:30 UTC (rev 946)
+++ trunk/kernel-2_6-migration.txt 2005-03-26 00:00:24 UTC (rev 947)
@@ -1,6 +1,6 @@
-AUTHOR: Kris van Rens <kvrprogs AT edsko DOT com>
+AUTHOR: Kris van Rens <krisvanrens AT gmail DOT com>
@@ -15,26 +15,37 @@
mailing-list having trouble installing the kernel, that's what made me write
-So, if you're one of the people wanting to try out the new 2.6.x kernel, you
+As I write this, it's the 25th of February 2005, I guess just about every
+distro around brings kernel-2.6.x as it's default kernel and it seems to be
+accepted more or less. But, there are still people not convinced of the
+stability and performance of the 2.6 kernel, or for maximum stability they
+waited until the kernel was 'mature'.
+So, if you're one of the people wanting to install the 2.6.x kernel, you
should probably take a look at this hint for a few tips to bring it to a
-successful end. Of course the new kernel does not have to be better for you,
-you might have some trouble with winmodems. You can always fall back to the
-2.4 kernel and wait a while before you'll try it again.
+successful end. Of course this new kernel does not have to be better for you,
+but hey, you can always fall back to the 2.4 kernel and wait a while before
+you'll try it again. After all, maintainance is still carried out on the
+kernel-2.4 branch (at the time being).
+Note that there is a (way more readable) .html version of this hint
+available, check the links at the bottom.
Before working through this hint, be sure to have the following:
*** module-init-tools sources tarball
-Get this from http://www.kernel.org/pub/linux/kernel/people/rusty/modules.
+Get this from ftp://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools.
*** linux-2.6.x kernel sources tarball
Get this from http://www.kernel.org or a mirror.
-At the time of writing the version of the module-init-tools is 3.0 and for
-the kernel it is 2.6.7, I'll use these version names for this hint, if you
-have a newer version, replace the version in this hint with it.
+At the time of writing the latest stable version of the module-init-tools
+is 3.1 and for the kernel it is 184.108.40.206 (they added the build number), I'll
+use these version names for this hint, if you have a newer version, replace
+the version in this hint with it.
Of course, you should also have Make, GCC and an Assembler, but this hint is
meant for the LFS-community so I'll assume you fulfill these requirements.
@@ -44,20 +55,22 @@
ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz or from a mirror.
+NOTE: Since LFS-6.0 you'll need GCC-3.x (for NPTL and others), and GCC-2.95
+ isn't even on the package list. Only for strict reasons I left
+ it in this hint. I suggest you to use GCC-3.x.
Read the /usr/src/linux-2.6.7/Documentation/Changes document for other programs
you'll eventually need to update. For LFS-5.0 you should for example also
-Note that there is a much better readable HTML version of this hint on my
-website, check the bottom of this hint for the URL.
So, you want to migrate from linux-2.4.x to linux-2.6.x? Well no problem!
Quite a lot changed since 2.4, both the SMP (Symmetric Multi Processing,
-multiple processor cores) and the uniprocessor power increased, compatibility
-with hardware is better and new security-modules increase the security (!).
+multiple processor cores) and the uniprocessor performance increased,
+compatibility with hardware is better and new security-modules increase
+the security (...).
Being the owner of a LFS system, I'll assume you're familiar with the usual way
of installing a source package, and a kernel of course.
@@ -65,11 +78,11 @@
I cut this hint section in two; installing the new module-init-tools and
installing the kernel.
-*note: If you have a winmodem or you want to be sure that you don't have to
- undertake special steps, take a look at the EXCEPTIONS area. It's always
- a good idea to take a look there.
+NOTE: If you have a winmodem or you want to be sure that you don't have to
+ undertake special steps, take a look at the EXCEPTIONS area.
+ It's always a good idea to take a look there.
-***STEP 1: Installing the new module-init-tools
+***STEP 1: Installing the module-init-tools
To migrate from kernel 2.4 to 2.6 you'll need a new module loading system, the
system has been worked over completely.
@@ -77,31 +90,31 @@
As you like, move the tarball into the directory from where you'll install it,
for me that's /usr/src, and cd' into it.
-Unpack the sources and sources and cd' into the source's directory.
+Unpack the sources and cd' into the source's directory.
-tar xzf module-init-tools-3.0.tar.bz2
+tar xzf module-init-tools-3.1.tar.bz2
Then configure the package by:
-We use prefix=/ here because in the LFS-Book the modutils are installed with
-the same prefix and the last thing we want is having two different versions of
-one program in multiple places.
+We use prefix=/ here because in the LFS-Book (prior to LFS-6.0) modutils
+is installed with the same prefix and the last thing we want is having two
+different versions of one program in multiple places.
-If this is the first time you install the new module-init-tools, invoke the
-next command, otherwise, if you're upgrading to a new version of
-module-init-tools, skip it (LFS versions up to LFS-5.0 come with modutils and
-do not have module-init-tools, so you'll have to invoke the command).
+If this is the first time you install the module-init-tools, invoke the next
+command, otherwise, if you're upgrading to a new version of
+module-init-tools, skip it (LFS versions up to LFS-5.0 come with modutils
+and do not have module-init-tools, so you'll have to invoke the command).
-This makes the modultils such as insmod,rmmod or modprobe to be renamed
-to insmod.old, rmmod.old and modprobe.old. The new to be installed
-module-init-tools do a runtime check which kernel is running and invoke the
-right version of the tools, for example if 2.4.x is running the insmod command
-will use insmod.old instead.
+This renames the modultils such as insmod,rmmod or modprobe to insmod.old,
+rmmod.old and modprobe.old. The new to be installed module-init-tools do a
+runtime check of which kernel is running and invoke the right version of
+the tools, for example if 2.4.x is running the insmod command will use
Then make the package and install it with:
@@ -121,12 +134,12 @@
***STEP 2: Installing the 2.6.x kernel
-Copy the linux-2.6.7 tarball to /usr/src and cd' into this directory.
+Copy the linux-220.127.116.11 tarball to /usr/src and cd' into this directory.
As usual, unpack the sources and cd' into the sources directory:
-tar xjf linux-2.6.7.tar.bz2
+tar xjf linux-18.104.22.168.tar.bz2
If you want to install the kernel version tarball without patching, you can
skip the tabulated field down here, read it if you want to patch the kernel.
@@ -164,8 +177,8 @@
Now configure the kernel, this is just like with the 2.4 kernel, you can choose
from menuconfig, xconfig and gconfig. Menuconfig is based on Ncurses, xconfig
-is based on QT and gconfig is based on GTK+, for the last two, you'll need X to
-run. Do so by:
+is based on QT and gconfig is based on GTK+, for the last two, you'll need an
+X-server running. Do so by:
@@ -202,14 +215,11 @@
The kernel development team recommends you to build the kernel with GCC-2.95.3
it is not a must, but stability is not guaranteed if you deviate from this
-version. I tried both GCC-3.3.x and GCC-2.95.3, they both worked fine for me.
-You can choose which compiler to use if you change the CC flag for make.
+version. As already stated I kept GCC-2.95 in this hint for strict reasons. I
+tried both GCC-3.x and GCC-2.95.3, they both worked fine for me, allthough I
+suggest you using GCC-3.x. You can choose which compiler to use if you change
+the CC flag for make.
-NOTE: The incoming version of LFS; v6.0 will require _at least_ GCC-3.0, this
- is because of the use of Native Posix Threading Libraries (NPTL) under
- Glibc, which causes a segfault if the kernel is not compiled with at
- least GCC-3.0.
To make the kernel with your global GCC version, which is GCC-3.3.1 for
@@ -231,18 +241,22 @@
+This copies the modules (.ko files) with some configuration files into the
+/lib/modules/<kernel-version> directory where the module loaders can find
Now copy the kernel to /boot:
-cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.7
+cp arch/i386/boot/bzImage /boot/vmlinuz-22.214.171.124
Or to another filename as you want.
-The versioning is supported on 'System.map', you'll have to copy this file to
+Versioning is supported on 'System.map', you'll have to copy this file to
your /boot directory. Before you do so, consider keeping the 2.4-System.map;
you can rename it to 'System.map-2.4' (for kernel-2.4.x of course) and the
new 2.6 one to 'System.map-2.6' so that each kernel version gets it's own.
-Now modify your lilo.conf (for lilo) of menu.lst (for grub) to be able to load
+Now modify your lilo.conf (for lilo) or menu.lst (for grub) to be able to load
the new kernel, if you have lilo, don't forget to invoke /sbin/lilo and re-
write the boot-record.
@@ -269,7 +283,7 @@
---The module loading system complains about wrong module versions
You probably forgot to run >>make modules_install<< make sure that the
modules on which you run >>make modules_install<< are compiled with the same
-version as the kernel itself.
+version of GCC as the kernel itself.
If the problem is really stubborn and you can't get it away, google for it,
read the mailing-list archives or ask a new question there.
@@ -281,17 +295,13 @@
Lucent Technologies provides a driver for WinModems, you can get it here:
-Or (not tested):
OTHER DOCUMENTS ABOUT THIS SUBJECT:
---The HTML version of this hint! (much more readable):
---The post-halloween document from Dave Jones:
@@ -360,3 +370,12 @@
*Added 'make mrproper' and 'make clean' to kernel installing commands
*Added backing up of kernel configuration
*Added note about requirement GCC-3.0 for incoming LFS-6.0
+ Version 1.9
+ *Fixed a typo - Thanks David!
+ Version 2.0
+ *Changed the hint to be a 'final' version
+ +Fixed some typos
+ +Upgraded versions used
+ +Changed a few URL's
More information about the hints