Next: Making a Bootable Diskette
Up: Making Linux Installation Disks
Previous: Populating the Root File
Contents
Now it is time to build a kernel. For the target system we will build
a kernel that is different from the host system kernel. We build it
under the myboot directory. First cd to the myboot/linux-2.4.21 subdirectory.
The most important job is configuring the kernel. Run the following
command:
make menuconfig
Instead of menuconfig you can use config (not
recommended!) or xconfig. This will give a usable kernel for the
target system.
- Processor type menu: processor family must be 486, switch off SMP
support, leave the rest at
defaults.
- General setup menu: switch off hot-pluggable devices,
system V IPC
and sysctl support. Support ELF binaries, other formats can be
disabled.
- Parallel port support can be switched off, unless you want to enable it
for PLIP networking or parallel port storage devices (ZIP disk, CD-ROM).
- SCSI: enable SCSI CD-ROM support, enable a large selection of
low level drivers as modules.
- Network device support: enable a large selection of
Ethernet cards as modules.
- Code maturity, Module support, Memory Technology, Parallel port,
Plug and play, Multi-device, Telephony, I2O, Amateur radio,
ISDN, Old CDROM, Input core, Multimedia, Sound, and kernel hacking
submenus: disable everything, if it was not already disabled.
- Block device submenu: support floppy, loop device, RAM disk and
initial RAM disk.
- ATA/IDE/MFM/RLL submenu: support, keep everything under the
ATA/IDE... block devices submenu the default.
- Character devices submenu: Support virtual terminal, console on
virtual terminal, Unix 98 PTY, disable everything else.
- File systems. Keep second extended, proc and dev PTS enabled. If
you want to mount DOS diskettes, enable fat, msdos and
vfat. Enable iso9660, NFS (client only) and ext3. If you want to experiment
with other file systems such as reiserfs, you must enable support for them.
- Console drivers. Keep VGA text console enabled.
- Exit and say Yes to save changes.
Of course you must adapt the configuration to the target system you
are using are you are anticipating your target audience to use. This kernel
tries to be useful for a large number of systems, from 486DX onward. The
strategy is to keep things in if they enable a user to get started with
an installation, so it must be possible to access SCSI harddisks and CD-ROMs
and also the local area network in case the machine does not have a CD-ROM.
This kernel will be different from the one that is going to be used
after installation. Support for soundcards and printers is probably unnecessary
on this installation disk.
Now we only need to build the kernel:
make clean
make dep
make bzImage
The kernel described here should be around 900kB.
Next create the modules:
make modules
make INSTALL_MOD_PATH=$MYBOOT modules_install
cd $MYBOOT
tar zcvf modules.tar.gz lib
The modules will end up in a compressed tar archive, not normally stored on
the main RAM disk.
Next: Making a Bootable Diskette
Up: Making Linux Installation Disks
Previous: Populating the Root File
Contents
Lennart Benschop
2003-07-16