- Go to the /usr/src/linux directory, where linux is a link to the appropriate kernel version (e.g. /usr/src/linux-2.4)
- Edit the EXTRAVERSION line of /usr/src/linux/Makefile. Change the definition for EXTRAVERSION=versionnumber to something that uniquely identifies your kernel, for example EXTRAVERSION=RHcustom.
- Run make mrproper to ensure your source files are in a consistent and clean state.
- Save a copy of the old configuration file /usr/src/linux/.config to a secure location.
- If you want to reuse an old configuration file as a starting point, copy it to /usr/src/.config and run make oldconfig
- Customize the kernel. Use make config for a text-based interface, make menuconfig for a curses-based interface or make xconfig for an X-based interface. Select all desired/needed options.
- Run make dep to set up all dependencies correctly.
- Run make bzImage to create a gzip-compressed kernel image file. This will compile the kernel, which can be a lengthy process depending on your hardware.
- Run make modules to build the kernel modules.
- Copy kernel image file to /boot directory: cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.19-RHcustom
- Run make modules_install to install the kernel modules into /lib/modules/2.4.19-RHcustom.
- Build support for an initial RAM disk (initrd) by running: mkinitrd /boot/initrd-2.4.19-RHcustom.img 2.4.19-RHcustom
- Copy the new kernel’s symbol table and configuration file to the /boot partition: cp /usr/src/linux/System.map /boot/System.map-2.4.19-RHcustom; cp /usr/src/linux/.config /boot/config-2.4.19-RHcustom
- Update the boot manager configuration files.
- For GRUB, update /etc/grub.conf with a section for the new kernel.
- For LILO, update /etc/lilo.conf with a section for the new kernel and then run lilo –v.
Tuesday, October 11, 2005
Mini HOWTO #3: compiling and installing a custom Linux kernel
One task that comes up again and again is adding, removing or updating source CIDR blocks in various security groups in an EC2 infrastructur...
I first saw nsupdate mentioned on the devops-toolchain mailing list as a tool for dynamically updating DNS zone files from the command line....
Here's a good interview question for a tester: how do you define performance/load/stress testing? Many times people use these terms inte...
A common requirement when setting up a development or staging server is to try to mimic production as much as possible. One scenario I'...