Finding and Installing Kernel Source Code
by Brent Fox
Last Modified: Wednesday, 19-May-2004 11:54:48 EDT
|
Introduction
|
   
Usually, the Linux kernel source code is installed with the operating system. If for some reason the kernel source is not installed,
you will have to download and install them. Or perhaps you already have older kernel source installed but wish to upgrade to an entirely new kernel. In
either case, you will need to download and install the source code for the kernel.
Kernel sources can be found at the following sites:
   
Kernel source code is usually distributed in tar format that has been compressed in bz2
or gz format. For example, downloadable kernel source files look something like
linux-2.2.16.tar.gz or linux-2.2.16.tar.bz2.
If you are not familiar with .gz and .bz2 file formats, see the
gzip and gunzip: Files With .gz Extensions guide and the
bzip2 and bunzip: Files With .bz2 Extensions guide.
|
|
Installing the Source Code
|
    By convention, the /usr/src/linux directory is a symbolic link to the directory that actually contains the kernel sources.
For example, if you are using Red Hat 6.2, the kernel sources are placed in /usr/src/linux-2.2.14. Going to the /usr/src/linux
will redirect you to the /usr/src/linux-2.2.14 directory. However, if you have never had any kernel sources installed, it's likely that
you won't see any files or directories named linux.
For the purpose of this guide, we will use linux-2.2.x for the kernel
name. You should replace the x with the version number you are installing.
- Place the kernel file you downloaded in the
/usr/src directory. You must be root to do this.
- If you downloaded the kernel in
bz2 format, execute the following command:
bunzip2 linux-2.2.x.tar.bz2
If you downloaded the kernel in gzip format, execute the following command:
gunzip linux-2.2.x.tar.gz
You should now have a file named linux-2.2.x.tar
- Before you extract the tar file, you should be aware that the kernel will install itself in the
linux directory. If you have
source code from older kernels installed, the problem here is that the linux "directory" probably isn't a directory at all.
It is a symbolic link to another directory containing the older kernel source. In this case, you must remove the symbolic link with the following
command:
rm linux
tar -xvf linux-2.2.x.tar     - Unarchive the tar file
mv linux linux-2.2.x     - Rename the linux dir to linux-2.2.x
ln -s linux-2.2.x linux     - Create a symbolic link from linux to linux-2.2.x
The kernel source code is now installed. To make sure everything was successful, issue the following command:
ls -al
For example, if you installed the 2.2.16 kernel source, you should see something similar to this:
drwxr-xr-x 5 root root 4096 Jul 29 12:59 .
drwxr-xr-x 22 root root 4096 Aug 2 1998 ..
lrwxrwxrwx 1 root root 12 Jul 29 12:59 linux -> linux-2.2.16
drwxr-xr-x 14 1026 101 4096 Jun 7 17:26 linux-2.2.16
-rwxr-xr-x 1 bfox bfox 74557440 Jul 29 12:43 linux-2.2.16.tar
You can now remove the tar file if you wish with the following command:
rm linux-2.2.x.tar
Now go to the Configuring a New Kernel guide.
|
|
What's Related
|
|
|
|
|
|
|
All Rights Reserved Linux Headquarters © 2000-2007
Linux is a registered trademark of Linus Torvalds
All logos are registered trademarks of their respective owners
Last modified: Wednesday, May 19, 2004
|
|
|