a) 确保gcc make libncurses5 和 libncurses5-dev 已经安装,若未安装,则用apt-getinstall **安装即可
b) 从http://www.kernel.org/pub/linux/kernel/v2.6/下载源码包,现在实验室的版本一般为linux-2.6.26.2.tar.gz
在终端下执行下面命令
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.2.tar.gz /usr/src
c) cd /usr/src 进入该目录,执行 tar –xf ./linux-2.6.26.2.tar.gz 解压包
d) cd /usr/src/linux-2.6.26.2 进入该目录
或者apt-get install linux-source-2.6.26.2 下载实验室源上的包
e) 开始准备内核编译
i. make mrproper
ii. make menuconfig 默认配置即可,选择exit
iii. make clean 删除以前的模块和文件
iv. make 编译内核。等待时间较长,约20分钟
v. make bzImage 生成内核文件,默认在/usr/src/arch/x86/boot/bzImage。
vi. make modules 编译模块
vii. make modules_install 安装编译的模块,完成后可以看到/lib/modules/目录下有新生成的模块目录 2.6.26.2,可将其重命名为***。(注:1: 执行该命令前,先将/lib/modules/2.6.26.2-686目录做备份)
viii. make install 在/boot/下面会有 vmlinuz-2.6.26.2 system.map-2.6.26.2 configure-2.6.26.2 生成
f) 配置启动文件
i. 执行 mkinitramfs –o /boot/initrd.img-*** /lib/modules/2.6.26.2(***)
来创建initrd.img; 这样在/boot目录下可以看到由新内核生成的四个文件,检查新生成的这四个文件,务必使其与原四个文件不同(看日期大小即可)。
四个文件为: initrd.img-*** system.map-*** vmlinux-*** 还有个config文件暂不处理 -
*** 即为2.6.26.2 – 安装的内核版本号
ii. 修改启动配置文件 vim /boot/grub/grub.cfg (debian下,也可能在/boot/grub/menu.list)找到 menuentry 开始的文本段,编写如下: (不编辑该文本亦可)
menuentry “Debian linux 2.6.26-2 ***” {
set root=(hd0,1) 与上面的一致即可
search –fs-uuid –set ********(保持不变)
linux /boot/vmlinuz-*** root=/dev/sda1 ro 与上面的一致即可
initrd /boot/initrd.img-***
} 保存
如果是menu.list,则稍有不同。
如果没有grub,则需按照apt-getinstall grub 即可
在终端中执行update-grub 。 重启机器,如果人品高,应该在启动项看到自己编译的系统项 “linux 2-6.26-2 ***”