Ubuntu 9.10下内核编译


现在最新的内核版本是2.6.32,而我的9.10自带的内核版本已经是2.6.31-20,两者差别不是很大。因此这次的主要目的是熟悉一下内核编译的流程,为下面的内核编程打好基础,实验环境是VirtualBox下的Ubuntu 9.10。

1、下载linux-2.6.32,途径很多,不具体说明

2、解压到/usr/src/下
root@globus-laptop:~# ls /usr/src/ ls /usr/src
linux-headers-2.6.31-14-generic  vboxguest-3.1.0
linux-2.6.32             linux-headers-2.6.31-20          vboxvfs-3.1.0
linux-headers-2.6.31-14  linux-headers-2.6.31-20-generic  vboxvideo-3.1.0

3、创建一个新的链接
root@globus-laptop:~# ln -s /usr/src/linux-2.6.14 /usr/src/linux
root@globus-laptop:~# ls /usr/src/
linux                    linux-headers-2.6.31-14-generic  vboxguest-3.1.0
linux-2.6.32             linux-headers-2.6.31-20          vboxvfs-3.1.0
linux-headers-2.6.31-14  linux-headers-2.6.31-20-generic  vboxvideo-3.1.0

4、配置内核。
这个过程比较麻烦,我们采用之前版本的配置。
root@globus-laptop:~# cd /usr/src/linux
root@globus-laptop:/usr/src/linux# uname -r
2.6.31-20-generic
root@globus-laptop:/usr/src/linux# cp /boot/config-2.6.31-20-generic .config
开始配置:
root@globus-laptop:/usr/src/linux# make xconfig
在这一步可能会遇到下面的问题:
HOSTCC scripts/kconfig/kconfig_load.o
make[1]: *** No rule to make target `scripts/kconfig/.tmp_qtcheck', needed by `scripts/kconfig/qconf.o'. Stop.
make: *** [xconfig] Error 2
解决方法:
apt-get install build-essential
apt-get install libqt3-mt-dev
这是因为用xconfig需要libqt3-mt-dev
再次make xconfig
出现一个配置界面,选择自己需要的配置(大部分配置都已经由.config文件完成),保存,退出。

5、开始编译。
root@globus-laptop:/usr/src/linux# make-kpkg clean
如果提示没有kpkg,按提示安装一下即可。
root@globus-laptop:/usr/src/linux# make-kpkg --initrd -revision=first  kernel_image kernel_headers
漫长的等待。。。

6、安装新内核。
在成功构建内核后, 在/usr/src目录能发现两个.deb软件包,一个是内核的安装包,另外一个是内核headers的安装包。
root@globus-laptop:/usr/src# dpkg -i /usr/src/linux-image-2.6.32_first_i386.deb
root@globus-laptop:/usr/src# dpkg -i /usr/src/linux-headers-2.6.32_first_i386.deb

7、重启即可。

相关内容