Compiling a New Kernel

王朝other·作者佚名  2006-02-04
窄屏简体版  字體: |||超大  

Introduction

If you have completed the Configuring a New Kernel guide, then you are ready to start the process of compiling the kernel. The kernel takes a while to compile, although the time needed to compile will vary from machine to machine. The amount of RAM on the system is just as important as the speed of the processor.

For example, on my old machine, a 200 MHz Pentium Pro with 90 MB of RAM, compiling the kernel takes about 20 minutes. Usually, during the make zImage step, I get an error message that says, "System is too big." Running the make bzImage command fixes this problem, which I'm guessing stems from not having enough RAM and swap space. However, on my new machine, an 850 MHz Athlon with 256 MB of RAM, compiling the kernel takes about 5 minutes (no kidding) and I don't get the "System is too big" error.

Compiling the Kernel

make dep - This step identifies kernel dependencies so that they will be resolved at compile time.

make clean - This step removes any old object files from previous builds. Even if you haven't compiled a kernel before, this step only takes a second and doesn't do any damage.

make zImage - This step actually compiles the kernel. If you get a message about the system being too big, try using the make bzImage command. This results in the kernel being named bzImage instead of zImage, but it will still be located in the /usr/src/linux directory. This step will take some time to complete..

make modules - This step compiles all the modules that the kernel may need to use in the future, such as the network and sound card drivers. This step will take some time to finish.

make modules_install - This step moves the module object files into the correct directory.

make install - This step will move the new kernel and its associated files into the correct directories on your system.

The previous step is supposed to modify your /etc/lilo.conf file to boot from the new kernel. However, it frequently fails to add the new kernel to the file! So, you need to modify the /etc/lilo.conf yourself.

For example, if your old kernel was 2.2.14, your current /etc/lilo.conf looks something like the following:

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

linear

default=linux

image=/boot/vmlinuz-2.2.14

label=linux

read-only

root=/dev/hda5

other=/dev/hda1

label=nt

Continuing with the example, let's say that you installed and compiled the 2.2.16 kernel. You will need to add another stanza to the /etc/lilo.conf file so that it looks something like:

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

linear

default=linux

image=/boot/vmlinuz-2.2.16

label=linux

read-only

root=/dev/hda5

image=/boot/vmlinuz-2.2.14

label=failsafe

read-only

root=/dev/hda5

Notice how we have renamed the label for the 2.2.14 to failsafe. This is so that if there is a problem of some kind with the new kernel, you can easily revert back to the old kernel. At the very least, this should allow the machine to boot so that you can fix whatever problems may have occured.

/sbin/lilo - Running this command will make the changes to /etc/lilo.conf take effect.

Now you're done. Sit back, cross your fingers, and reboot! Pay attention to the messages that scroll across as the kernel is booting. If there is a problem loading any modules, you will probably see some warning messages displayed. They scroll by quickly, so watch carefully. After your machine has rebooted, spend a few minutes checking to make sure all the devices like the network and sound cards work.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航