6.3.1. Installation of the kernel
        
        
          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.
        
        
          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. Be sure to enable
          DEVTMPFS so that /dev will be
          populated automatically.
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            Since you are building for an embedded system make sure all key
            components are built into the kernel and not as modules. The key
            components are console/video, disk, and network. Without these
            built in, the system will not function properly. It is
            recommended to configure the kernel without modules in order to
            conserve disk space and to reduce the complexity of booting.
          
         
        make ARCH=${CLFS_ARCH} CROSS_COMPILE=${CLFS_TARGET}- menuconfig
        
          Alternatively, the make
          oldconfig or make
          ${CLFS_TARGET}_defconfig
          may be more appropriate in some situations. See the README file for more information.
        
        
          If desired, skip kernel configuration by copying the kernel config
          file, .config, from an example system
          (assuming it is available) to the root directory of the unpacked
          kernel sources.
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            If you are using the u-boot bootloader, creating a uImage type kernel is recommended. Install the
            u-boot tools (not documented here) and append "uImage" when
            compiling the kernel.
          
         
        
          Compile the configured kernel image and modules:
        
        make ARCH=${CLFS_ARCH} CROSS_COMPILE=${CLFS_TARGET}-
        
          If using kernel modules, 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. Also, modprobe.conf(5) may be
          of interest.
        
        
          If building modules, install the modules:
        
        make ARCH=${CLFS_ARCH} CROSS_COMPILE=${CLFS_TARGET}- \
    INSTALL_MOD_PATH=${CLFS}/targetfs modules_install
        
          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.
        
        
          The resulting kernel will be located within the arch/${CLFS_ARCH}/boot. There may be more than
          one version of the same kernel, simply with different compression
          or bootloader helpers added. Follow your bootloader's instructions
          on how to copy the kernel to the final system.