[原创]Ubuntu 6.10 编译内核2.6.26.3
发表于 : 2008-09-04 23:43
Step1:
到http://www.kernel.org/下载需要的内核包,这里选择下载2.6.26.3
然后安装所有需要的软件包:(可以选择是否更新系统sudo apt-get update,在这里我没有做这个操作)
sudo apt-get install kernel-package libncurses5-dev gcc module-init-tools make
tar xvf linux-2.6.26.3
cd linux-2.6.26.3
说明:有的参考文档说只要更新gcc就可以了,但是在编译的时候会提示报错没有相关的命令,这个问题的出现可能是没有执行apt-get update造成的,这里没有进行详细的验证,需要注意一下。
Step 2:
配置编译
make menuconfig
说明:其实在这里还有别的选择,make gconfig ,make xconfig,但是在执行的时候
选“Y”(*)就是把它编译到内核中,选“M”(M)把它编译成模块,供内核动态调用。选“N”就是不安装。
菜单出现的各个选项的意思,请参照相关的文档,这里不做详细说明。
配置晚后保存配置退出。
Step 3:
编译内核
make
编译模块
make modules
安装内核
make install
安装模块
make modules_install
Step 4:
生成initrd.img
cd /usr/sbin/
mkinitramfs -o /boot/initrd.img-2.6.26.3
Step 5:
最后修改 /boot/grub/menu.lst,修改之前把先前的menu.lst做一个备份
cp /boot/grub/menu.lst /boot/grub/menu.lst.bak
在 menu.lst加入下面的内容
title Ubuntu, kernel 2.6.26.3
root (hd0,0)
kernel /boot/vmlinuz-2.6.26.3 root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.26.3
savedefault
boot
title Ubuntu, kernel 2.6.26.3 (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.26.3 root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.26.3
boot
编辑完成后保存
这个是修改完成后的样本:
title Ubuntu, kernel 2.6.26.3
root (hd0,0)
kernel /boot/vmlinuz-2.6.26.3 root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.26.3
savedefault
boot
title Ubuntu, kernel 2.6.26.3 (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.26.3 root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.26.3
boot
title Ubuntu, kernel 2.6.15-26-386
root (hd0,0)
kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.15-26-386
savedefault
boot
title Ubuntu, kernel 2.6.15-26-386 (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.15-26-386
boot
title Ubuntu, memtest86+
root (hd0,0)
kernel /boot/memtest86+.bin
boot
注意:有的文档在这里指出需要执行update-grub,需要说明的是在6.10里面执行这个操作后,menu.lst会增加很多内容,并且会修改你添加的内容/boot/vmlinuz-2.6.26.3,导致重启之后找不到相关的文件,因此在这里没有进行这个操作。
Step 6:
重新启动计算机,在GRUB中选择新内核启动。如果启动失败,可以重启选择老内核,然后检查menu.lst文件中指定的文件的路径是否正确。
参考文档:
How to: Compile Linux kernel 2.6
Ubuntu 6.10 编译内核
对以上两篇文档的作者表示感谢,文档不足的地方请大家不吝赐教。
到http://www.kernel.org/下载需要的内核包,这里选择下载2.6.26.3
然后安装所有需要的软件包:(可以选择是否更新系统sudo apt-get update,在这里我没有做这个操作)
sudo apt-get install kernel-package libncurses5-dev gcc module-init-tools make
tar xvf linux-2.6.26.3
cd linux-2.6.26.3
说明:有的参考文档说只要更新gcc就可以了,但是在编译的时候会提示报错没有相关的命令,这个问题的出现可能是没有执行apt-get update造成的,这里没有进行详细的验证,需要注意一下。
Step 2:
配置编译
make menuconfig
说明:其实在这里还有别的选择,make gconfig ,make xconfig,但是在执行的时候
选“Y”(*)就是把它编译到内核中,选“M”(M)把它编译成模块,供内核动态调用。选“N”就是不安装。
菜单出现的各个选项的意思,请参照相关的文档,这里不做详细说明。
配置晚后保存配置退出。
Step 3:
编译内核
make
编译模块
make modules
安装内核
make install
安装模块
make modules_install
Step 4:
生成initrd.img
cd /usr/sbin/
mkinitramfs -o /boot/initrd.img-2.6.26.3
Step 5:
最后修改 /boot/grub/menu.lst,修改之前把先前的menu.lst做一个备份
cp /boot/grub/menu.lst /boot/grub/menu.lst.bak
在 menu.lst加入下面的内容
title Ubuntu, kernel 2.6.26.3
root (hd0,0)
kernel /boot/vmlinuz-2.6.26.3 root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.26.3
savedefault
boot
title Ubuntu, kernel 2.6.26.3 (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.26.3 root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.26.3
boot
编辑完成后保存
这个是修改完成后的样本:
title Ubuntu, kernel 2.6.26.3
root (hd0,0)
kernel /boot/vmlinuz-2.6.26.3 root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.26.3
savedefault
boot
title Ubuntu, kernel 2.6.26.3 (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.26.3 root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.26.3
boot
title Ubuntu, kernel 2.6.15-26-386
root (hd0,0)
kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.15-26-386
savedefault
boot
title Ubuntu, kernel 2.6.15-26-386 (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.15-26-386
boot
title Ubuntu, memtest86+
root (hd0,0)
kernel /boot/memtest86+.bin
boot
注意:有的文档在这里指出需要执行update-grub,需要说明的是在6.10里面执行这个操作后,menu.lst会增加很多内容,并且会修改你添加的内容/boot/vmlinuz-2.6.26.3,导致重启之后找不到相关的文件,因此在这里没有进行这个操作。
Step 6:
重新启动计算机,在GRUB中选择新内核启动。如果启动失败,可以重启选择老内核,然后检查menu.lst文件中指定的文件的路径是否正确。
参考文档:
How to: Compile Linux kernel 2.6
Ubuntu 6.10 编译内核
对以上两篇文档的作者表示感谢,文档不足的地方请大家不吝赐教。