If your distributtion does not have a
installkernel
command, or
you wish to just do the work by hand to understand the steps involved, here
are the steps involved.
-
The modules must be installed:
#
make modules_install
-
The static kernel image must be copied into the /boot
directory. For an i386-based kernel, do the
following:
#
make kernelversion
2.6.17.11
Note that the kernel version will probably be different for your kernel.
Use this value in place of the text
KERNEL_VERSION
in
all of the following steps:
#
cp arch/i386/boot/bzImage /boot/bzImage-
KERNEL_VERSION
#
cp System.map /boot/System.map-
KERNEL_VERSION
-
Modify the bootloader so it knows about the new kernel. This involves
editing a configuration file for the bootloader you use, and is
covered later in the section called “Modifying the Bootloader For the New Kernel” for the
GRUB and LILO bootloaders.
If the boot process does not work properly, it's usually because an initial ramdisk image is needed. To create this properly, use
the steps in the beginning of this chapter for installing a kernel
automatically, because the distribution install scripts know how to properly
create the ramdisk using the needed scripts and tools. Because each
distribution does this differently, it is beyond the scope of this book to
cover all of the different methods of building the ramdisk image.
Here is a handy script that can be used to install the kernel automatically
instead of having to type the previous commands all the time:
#!/bin/sh
#
# installs a kernel
#
make modules_install
# find out what kernel version this is
for TAG in VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION ; do
eval `sed -ne "/^$TAG/s/ //gp" Makefile`
done
SRC_RELEASE=$VERSION.$PATCHLEVEL.$SUBLEVEL$EXTRAVERSION
# figure out the architecture
ARCH=`grep "CONFIG_ARCH " include/linux/autoconf.h | cut -f 2 -d "\""`
# copy the kernel image
cp arch/$ARCH/boot/bzImage /boot/bzImage-"$SRC_RELEASE"
# copy the System.map file
cp System.map /boot/System.map-"$SRC_RELEASE"
echo "Installed $SRC_RELEASE for $ARCH"