在ubuntu 10.10(2.6.35.22) 编译安装linux-2.6.35.13内核

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在ubuntu 10.10(2.6.35.22) 编译安装linux-2.6.35.13内核

第一步:准备工作

打开终端获得root权限:sudo su

然后安装编译内核时需要的工具:

apt-get install build-essential kernel-package libncurses5-dev libqt3-headers

build-essential (基本的编程库(gcc, make等)

kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具)

libncurses5-dev (make menuconfig要调用的)

libqt3-headers (make xconfig要调用的)

其他工具在升级过程中可以按提示安装

第二步:到下载内核源代码linux-2.6.35.13.tar.gz

假设下载在root目录(具体路径个人喜好),然后解压到/usr/src/linux-2.6.35.13目录里

tar zxvf /root/linux-2.6.35.13.tar.gz -C /usr/src

解压后会在/usr/src生成新文件夹linux-2.6.35.13

第三步:配置

把正在使用中的内核配置文件/usr/src/linux-headers-2.6.35-22-generic/.config 拷到/usr/src/linux-2.6.35.13目录下

cp /usr/src/linux-headers-2.6.35-22-generic/.config /usr/src/linux-2.6.35.13

执行:

cd /usr/src/linux-2.6.35.13

make menuconfig

终端会弹出一个配置界面,注意主菜单最后有两项:

Load an Alternate Configuration File

Save an Alternate Configuration File

先选Load an Alternate Configuration File,意思是利用当前的内核配置详单来设置将要编译的内核,然后选Save an Alternate Configuration File,最后退出配置界面。

第四步:开如编译安装新内核

//执行:sudo make mrproper (清除以前曾经编译过的旧文件,如果你是第一次编译,可不执行)

//上面这个操作会把前面拷贝的.config干掉,所以。。。你懂的。。。

执行:sudo make(编译,可以加-j4,如果你CPU是双核心,够牛的话,因为可以提高速度)

然后:sudo make install(安装内核文件到/boot目录,安装过程会自动修改GRUB启动菜单)

再:sudo make modules(编译内核需要的模块)

再:sudo make modules_install(安装模块到/lib/modules目录)

最后创建initrd文件:

mkinitramfs -o /boot/initrd.img-2.6.35.13

第五步:更新配置GRUB引导列表

注意注意:其实这一步很简单,只要:

sudo update-grub

来更新引导文件,但它会扫描所有的可能,可能会生成一些多余的启动项,所以当然也可以自己编辑

/boot/grub/menu.lst(某些系统)或者/boot/grub/grub.cfg文件,注意如果权限不够修改不了,则先执行

sudo chmod 644 /boot/grub/grub.cfg,修改完后,记得再执行sudo chmod 444 /boot/grub/grub.cfg恢复只读属性。如下所示:

sudo gedit /boot/grub/grub.cfg

我的grub.cfg添加如下:

menuentry 'Ubuntu, with Linux 2.6.35.13' --class ubuntu --class gnu-linux --class gnu --class os {

recordfail

insmod part_msdos

insmod ext2

set root='(hd0,msdos1)'

search --no-floppy --fs-uuid --set 509a54da-c698-46f6-8803-f04643f6a08c

linux /boot/vmlinuz-2.6.35.13 root=UUID=509a54da-c698-46f6-8803-f04643f6a08c ro quiet splash initrd /boot/initrd.img-2.6.35.13

}

以下是原2.6.32内核启动项:

menuentry 'Ubuntu, with Linux 2.6.35-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {

recordfail

insmod part_msdos

insmod ext2

set root='(hd0,msdos1)'

search --no-floppy --fs-uuid --set 509a54da-c698-46f6-8803-f04643f6a08c

linux /boot/vmlinuz-2.6.35-22-generic root=UUID=509a54da-c698-46f6-8803-f04643f6a08c ro quiet splash

initrd /boot/initrd.img-2.6.35-22-generic

}

到此为止,整个内核的编译就全部完成啦。在这里要注意,对有些系统,或者你重启后,就再也无法通过按下任何键进入启动菜单选择了,如果你新编译的内核也无法正常启动的话,就真的杯具了,所以,如果你想看到下面的错误警告并且不在乎重装系统的话,可以考虑重启一下,否则最稳妥的方法还是先别重启,继续以下步骤,以防万一。如果你选择了重启,虽然启动菜单中增加了新内核2.6.35.13的启动项,但极可能会启动失败,出现以下提示:

warning:can't open directory /lib/modules/2.6.35.13/modules.dep,no such files or directory

此时不应气馁,重启系统,不断按下ESC或SHIFT(根据具体系统可能按键不同),反正就是为了进入启动菜单选择界面,然后选择旧系统登陆,然后进行下述动作:(如果你尝尽所有办法都无法进入启动菜单选择界面,恭喜你,重装系统吧^_^)

sudo su(保证获得root权限,否则会提示权限不够,不能成功完成任务哦)

cd /boot

cp initrd.img-2.6.35.13 initrd-2.6.35.13.bak (先做一个备份以防万一)

depmod -a(depmod可检测模块的相依性,供modprobe在安装模块时使用。 -a,分析所有可用的模块。)

相关文档
最新文档