Installing Linux-2.4.20

Estimated build time:           All default options: 4.20 SBU
Estimated required disk space:  All default options: 181 MB

Contents of Linux

Last checked against version 2.4.18.

The Linux kernel is at the core of every Linux system. It's what makes Linux tick. When a computer is turned on and boots a Linux system, the very first piece of Linux software that gets loaded is the kernel. The kernel initializes the system's hardware components: serial ports, parallel ports, sound cards, network cards, IDE controllers, SCSI controllers and a lot more. In a nutshell the kernel makes the hardware available so that the software can run.

Linux installs the following files:

Program Files

kernel and kernel headers

Linux Installation Dependencies

Last checked against version 2.4.17.

Bash: sh
Binutils: ar, as, ld, nm, objcopy
Fileutils: cp, ln, mkdir, mv, rm, touch
Findutils: find, xargs
Gcc: cc1, collect2, cpp0, gcc
Grep: grep
Gzip: gzip
Make: make
Gawk: awk
Modutils: depmod, genksyms
Net-tools: dnsdomainname, hostname
Sed: sed
Sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes
Textutils: cat, md5sum, sort, tail

Installation of the kernel

Building the kernel involves a few steps: configuration, compilation, and installation. If you don't like the way this book configures the kernel, view the README file in the kernel source tree for alternative methods.

Prepare for compilation by running the following command:

make mrproper

This ensures that the kernel tree is absolutely clean. The kernel team recommends that this command be issued prior to each kernel compilation. You shouldn't rely on the source tree being clean after untarring.

Configure the kernel via a menu-driven interface:

make menuconfig

make oldconfig may be more appropriate in some situations. See the README file for more information.

If you wish, you may skip kernel configuration by copying the kernel config file, .config, from your host system to the $LFS/usr/src/linux-2.4.20 directory.

Verify dependencies and create dependency information files:

make dep

Compile the kernel image:

make bzImage

Compile the drivers which have been configured as modules:

make modules

If you intend to use kernel modules, you will need an /etc/modules.conf file. Information pertaining to modules and to kernel configuration in general may be found in the kernel documentation, which is stored stored in /usr/src/linux-2.4.20/Documentation. The modules.conf man page and the kernel HOWTO at http://www.tldp.org/HOWTO/Kernel-HOWTO.html may also be of interest to you.

Install the modules:

make modules_install

Kernel compilation has finished, but some of the files created still reside in the source tree. To complete the installation, two files should to be copied to the /boot directory.

The path to the kernel file may vary depending on the platform you're using. Issue the following command to install the kernel:

cp arch/i386/boot/bzImage /boot/lfskernel

System.map is a symbol file for the kernel. It maps the function entrypoints of every function in the kernel API, as well as the addresses of the kernel data structures for the running kernel. Issue the following command to install the map file:

cp System.map /boot