Ubuntu12.04建立内核树实现过程详解
先查看自己使用的内核版本
lin@lin-virtual-machine:~$ uname -r
3.2.0-23-generic
如果安装系统时,自动安装了源码。在 /usr/src 目录下有对应的使用的版本目录。
lin@lin-virtual-machine:~$ cd /usr/src
lin@lin-virtual-machine:/usr/src$ ls
linux-headers-3.2.0-23 linux-headers-3.2.0-23-generic
查看一下可一下载的源码包
lin@lin-virtual-machine:/usr/src$ apt-cache search linux-source
linux-source - linux kernel source with ubuntu patches
linux-source-3.2.0 - linux kernel source for version 3.2.0 with ubuntu patches
我这里选择所以“linux-source-3.2.0 - linux kernel source for version 3.2.0 with ubuntu patches”直接 install
lin@lin-virtual-machine:/usr/src$ sudo apt-get install linux-source-3.2.0
下载完成后,在/usr/src下,文件名为:linux-source-3.2.0.tar.bz2,是一个压缩包,解压缩既可以得到整个内核的源代码。
使用pwd来查看当前路径
ls来查看文件夹中有哪些文件
lin@lin-virtual-machine:/usr/src$ pwd
/usr/src
lin@lin-virtual-machine:/usr/src$ ls
linux-headers-3.2.0-23 linux-source-3.2.0
linux-headers-3.2.0-23-generic linux-source-3.2.0.tar.bz2
解压缩
lin@lin-virtual-machine:/usr/src#sudo tar jxvf linux-source-3.2.0.tar.bz2
进入该目录(cd linux-source-3.2.0)
lin@lin-virtual-machine:/usr/src$ cd linux-source-3.2.0/
lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ pwd
/usr/src/linux-source-3.2.0
开始配置内核 选择最快的原版的配置(默认)方式
lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo make oldconfig
make需要等一个小时多。。。
lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo make
数小时后
...system is 4826 kb crc d5a51584 kernel: arch/x86/boot/bzimage is ready (#1) building modules, stage 2. modpost 3304 modules error: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] undefined! warning: modpost: found 4 section mismatch(es). to see full details build your kernel with: 'make config_debug_section_mismatch=y' make[1]: *** [__modpost] error 1 make: *** [modules] error 2
解决方法:来自http://ubuntuforums.org/showthread.php?t=1931029
lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo gedit .config
估计是rts5139驱动的问题.反正没有使用这个驱动,不要加入编译, 编辑.config, 将
config_rts5139=m
修改成如下的形式:
config_rts5139=n
继续make
编译压缩形式的内核
make bzimage
编译模块:
make modules
安装模块:
make modules_install
执行结束之后,会在/lib/modules下生成新的目录
lin@lin-virtual-machine:/lib/modules$ ls
3.2.0-23-generic 3.2.79
成功后重启。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 备孕男人要远离 8大杀精食物