编译定制版内核有它自己的优点和缺点。但是,新的Linux用户和管理员会发现编译Linux内核比较困难。编译内核需要理解很少的东西并且然后输入几行命令。这个一步步的如何编译Linux内核涉及了在Debian GNU Linux下编译2.6XX版本的Linux内核。但是,指令对除了apt-get命令外的任何其他发行版本仍然一样。
第一步 获取最新的Linux内核
访问http://kernel.org/并下载最新的源代码。文件名可能是linux-x.y.z.tar.bz2,x.y.z实际上是版本号。例如linux-2.6.25.tar.bz2代表2.6.25内核版本。使用wget命令来下载内核源代码:
<span style="font-size:14px;"><span style="font-size:14px;"><span style="font-size:12px;">$ cd /tmp
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-x.y.z.tar.bz2</span></span></span>
注意:把x.y.z用实际的版本号来替换。
第二步 提取tar(.tar.bz3)文件
输入如下代码:
<span style="font-size:14px;"><span style="font-size:14px;"># tar -xjvf linux-2.6.25.tar.bz2 -C /usr/src
# cd /usr/src</span></span>
第三步 配置内核
在你配置内核之前要确保你有开发工具(gcc编译器和相关工具)被安装到你的系统上。如果gcc编译器和工具没有被安装,那就在Debian Linux下使用apt-get命令来安装开发工具。
<span style="font-size:14px;"># apt-get install gcc</span>
现在你可以通过输入以下任何一个命令来开始内核配置:
$ make menuconfig - 基于文本的颜色菜单,单选列表和对话框。如果你想远程编译内核的话,这个选项在远程服务器上还是很有用的。
$ make xconfig - 基于X窗口(Qt)的配置工具,在KDE桌面下工作得最好。
$ make gconfig - 基于X窗口(Gtk)的配置工具,在Gnome桌面下工作最好。
例如,可以使用如下命令来启动菜单配置:
<span style="font-size:14px;"><span style="font-size:14px;">$ make menuconfig</span></span>
你必须根据你的需要来选择不同的选项。每个配置选项都有相关的帮助按钮,所以可以选择帮助按钮来获取帮助。第四步 编译内核
开始编译,首先创建一个压缩的内核镜像,输入:
<span style="font-size:14px;">$ make</span>
开始编译内核模块:
<span style="font-size:14px;"><span style="font-size:14px;">$ make modules</span></span>
<span style="font-size:14px;"><span style="font-size:14px;">$ su -
# make modules_install</span></span>
第五步 安装内核
到目前为止,我们已经编译了内核并安装了内核模块。是时候来安装内核本身了。
<span style="font-size:14px;"><span style="font-size:14px;"># make install</span></span>
它会在/boot目录里安装三个文件并对你的内核grub配置文件进行修改:
- System.map-2.6.26
- config-2.6.26
- vmlinuz-2.6.26
<span style="font-size:14px;"># cd /boot
# mkinitrd -o initrd.img-2.6.26 2.6.26</span>
<span style="font-size:14px;"><span style="font-size:14px;"># vi /boot/grub/menu.lst</span></span>
<span style="font-size:14px;"><span style="font-size:14px;">title Debian GNU/Linux, kernel 2.6.25 Default
root (hd0,0)
kernel /boot/vmlinuz root=/dev/hdb1 ro
initrd /boot/initrd.img-2.6.25
savedefault
boot</span></span>
记得要设置正确的root=/dev/hdXX设备。保存并关闭该文件。如果你认为用手编辑并写所有代码行对你来说太多的话,试试update-grub命令来更新/boot/grub/menu.lst中的每个内核的代码行。只需输入如下命令:<span style="font-size:14px;"># update-grub</span>
嘿,是不是很简洁?
<span style="font-size:14px;"><span style="font-size:14px;"># reboot</span></span>