FreeOS.com logo

FreeOS Most Popular
* Most Read stories
* Commented Stories
* Active Categories
* Non Linux Section
* User Submitters
* Top Polls
* Top Authors
* Top Reviews
* Top Rated
* Top Search Terms

Top Articles
* Writing a Linux device driver
* The Linux filesystem explained
* Samba NT Domain Controller
* Setting up Squid as your caching HTTP/FTP proxy
* Web server tutorial - Part 1

FreeOS Highlights
* Howtos (72)
* Reviews (20)
* Opinions (18)
* Interviews (8)
* News (3)

My FreeOS

Nick:
Pass:
Register

Forgot your password?

Contact Us
Contact Us

       

Project: Linux triangle Howtos triangle

Upgrading to the 2.4.x kernel

By Amit Chattopadhyay <amitc@technologist.com>
Posted: ( 2001-02-14 12:22:11 EST by )

The 2.4.x kernel packs a completely revised networking core and support for cutting edge technology. Let's see what's new and useful here and then move on to upgrading your system to the 2.4.x kernel from the 2.2.x kernel that you're likely to be running.

The Linux kernel is the heart of the operating system. It is important that it is kept up to date and working properly for your system to work at its optimum potential. The stable 2.4.0 kernel is a conglomeration of patches and additions that have been made throughout the experimental 2.3.x series of the kernel.

Upgrading from 2.0.x to 2.2.x had been a tricky affair as many of the supporting tools had to be upgraded before the kernel could be compiled and booted into. Fortunately this time, the transition from 2.2.x to 2.4.x is simpler, assuming that your system was 2.2.x ready. Since the 2.4.x kernel is a hefty 23mb download, it would be worthwhile reading over the improvements and changes that have been made to the kernel to find out whether or not you really need it.

What's New?

The biggest addition comes in the form of the much-publicized support for the Itanium, Intel's 64bit processor. While the processor itself is slated for release later this year, the present support allows users to easily migrate to a 64bit processor and take full advantage of the processor's architecture. For home users, the IA64 support doesn't mean much as it will take time for prices to come down and become affordable. Additionally, support for IBM S/390 systems has also been added.

PNP support for ISA devices has finally become stable. Also support for USB devices has been improved and PCMCIA/PC Card support has become mature. These may very well be some of the good reasons why you may want to upgrade the kernel.

As far as file systems are concerned, the inclusion of UDF will benefit DVD and CD-RW users. Don't get too excited though, as DVD video playback support under Linux still remains flaky. ReiserFS is available in the 2.4.1 kernel release but is having some stability problems.

Another good reason for upgrading to 2.4.x would be to make use of the highly improved networking core, which was optimized for speed and completely revised. The NFS code has been improved and should cause lesser headaches and it even supports the latest revision of NFS namely NFSv3.

One of the notable changes with this kernel is the inclusion of Device Filesystem or DevFS. Unlike the large list of device nodes in the /dev directory which point to the devices, DevFS cleans up some of the clutter by created device nodes on the fly when a specific driver is loaded. The structure of /dev will also change with device nodes placed inside different categories. DevFS is not installed by default.

It is very clear that most of the improvements are for non-i386 users. If you need to use the improved ISA PNP, USB or faster networking core or the new sound/video/video4linux drivers it would be a good idea to go for the upgrade. However, if you don't find anything useful in the new features and do not want to tinker with your already well setup machine, you should probably stick on to your older kernel for some more time.

Still plan to upgrade your kernel?

The latest kernel available in the 2.4.x series is available from http://www.kernel.org/ . After you have downloaded the kernel, move the kernel source into the /usr/src directory. Now you need to make sure that supporting tools for the kernel are sufficiently up to date.

* Gnu C
# gcc --version
Should be at least version 2.91.66

* Gnu make
# make --version
Should be at least version 3.77

* binutils
# ld -v
Should be at least version 2.9.1.0.25

* util-linux
# fdformat --version
Should be at least version 2.10o

* modutils
# insmod -V
Should be at least version 2.4.0

* e2fsprogs
# tune2fs --version
Should be at least version 1.19

* pcmcia-cs
# cardmgr -V
Should be at least version 3.1.21

* PPP
# pppd --version
Should be at least version 2.4.0

* isdn4k-utils
# isdnctrl 2>&1|grep version
Should be at least version 3.1beta7

If you find that you have an older version of any of the following software, you can download the latest version from http://www.freshmeat.net. In most cases, if you already have a 2.2.x kernel, you won't require any additional downloading with the exception of a newer version of modutils.

Before you jump into compiling the kernel, move your older linux source kernel into a different directory to ensure that when you untar the 2.4.x kernel source, it doesn't overwrite your older kernel. For example,

# cd /usr/src
# mv linux linux-2.2.12
# tar xzpvf linux-2.4.1.tar.gz

This will move your older linux source into linux-2.2.12 directory and untar the downloaded kernel into the /usr/src/linux directory. Rename your older vmlinuz and System.map, in case they are files and not symlinks, and create a new entry in lilo to allow you to boot into your older kernel for last minute bail out, in case the 2.4.x kernel bombs out!

# cd /boot
# mv vmlinuz vmlinuz-2.2.12
# mv System.map System.map-2.2.12
# cd /etc

Edit your lilo.conf to add a new entry

image = /boot/vmlinuz-2.2.12
label=oldlin
read-only
root=/dev/hda5

For a quick guide to compiling kernels, read Mayank Sarup's article on compiling the Linux kernel.

Now you are ready to configure the kernel settings and compile the kernel.

# make menuconfig
or
# make xconfig

to open the configuration tool. Try to compile support as modules as this ensures a smaller size of the kernel.

Finally, get a cup of coffee (the compile takes a long time) and sit back and watch as the kernel compilation proceeds,

# make install

This will compile the kernel, copy the vmlinuz/System.map into your /boot directory and update lilo.conf. The next time you boot, selecting Linux will boot you into kernel 2.4.x

Kernel.org
Linux software/tools at Freshmeat
Compiling the Linux kernel

Other articles by Amit Chattopadhyay

Current Rating: [ 7.78 / 10 ] Number of Times Rated: [ 109 ]

More Howtos
* Kernel Compilation & Avoiding ‘Unresolved Symbol’
* Configuring CVS and CVSUP on Linux
* Knoppix installation tips
* Maximum Mount
* A WebServer Guide -- Help Using Apache

Contents
Articles
  Howtos
  Interviews
  News
  Opinions
  Reviews
Comparison
Links
  Articles
  Howtos
  Interviews
  Opinions
  Reviews
  Websites
News

Linux
About Linux

Print It!
Printer Friendly Version