Details on this package are located in Section 13.3.2, “Contents of Linux.”
The Linux package contains the Linux kernel.
Here a temporary cross-compiled kernel will be built. When configuring it, select the minimal amount of options required to boot the target machine and build the final system. I.e., no support for sound, printers, etc. will be needed.
Also, try to avoid the use of modules if possible, and don't use the resulting kernel image for production systems.
Building the kernel involves a few steps—configuration,
compilation, and installation. Read the README
file in the kernel source tree for
alternative methods to the way this book configures the kernel.
To ensure that your system boots and you can properly run both 32 bit and 64 bit binaries, please make sure that you enable support for ELF and emulations for 32bit ELF into the kernel.
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. Do not rely on the source tree being clean after un-tarring.
Configure the kernel via a menu-driven interface:
make ARCH=powerpc CROSS_COMPILE=${CLFS_TARGET}- menuconfig
Compile the kernel image and modules:
make ARCH=powerpc CROSS_COMPILE=${CLFS_TARGET}-
If the use of kernel modules can't be avoided, an /etc/modprobe.conf
file may be needed.
Information pertaining to modules and kernel configuration is
located in the kernel documentation in the Documentation
directory of the kernel sources
tree. The modprobe.conf
man page may
also be of interest.
Be very careful when reading other documentation relating to kernel
modules because it usually applies to 2.4.x kernels only. As far as
we know, kernel configuration issues specific to Hotplug and Eudev
are not documented. The problem is that Eudev will create a device
node only if Hotplug or a user-written script inserts the
corresponding module into the kernel, and not all modules are
detectable by Hotplug. Note that statements like the one below in
the /etc/modprobe.conf
file do not
work with Eudev:
alias char-major-XXX some-module
Install the modules, if the kernel configuration uses them:
make ARCH=powerpc CROSS_COMPILE=${CLFS_TARGET}- \ INSTALL_MOD_PATH=${CLFS} modules_install
Install the firmware, if the kernel configuration uses them:
make ARCH=powerpc CROSS_COMPILE=${CLFS_TARGET}- \ INSTALL_FW_PATH=${CLFS}/lib/firmware firmware_install
After kernel compilation is complete, additional steps are required
to complete the installation. Some files need to be copied to the
${CLFS}/boot
directory.
Issue the following command to install the kernel:
cp -v vmlinux ${CLFS}/boot/clfskernel-3.10.14
System.map
is a symbol file for the
kernel. It maps the function entry points 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 -v System.map ${CLFS}/boot/System.map-3.10.14
The kernel configuration file .config
produced by the make
menuconfig step above contains all the
configuration selections for the kernel that was just compiled. It
is a good idea to keep this file for future reference:
cp -v .config ${CLFS}/boot/config-3.10.14
Details on this package are located in Section 13.3.2, “Contents of Linux.”