linux内核树的建立
(2013-07-07 09:05:19)
标签:
内核树
config_debug_section
我的系统是ubuntu12.04,先查看自己OS使用的内核版本
~$ uname -r
3.2.0-48-generic
如果安装系统时,自动安装了源码。在 /usr/src 目录下有对应的使用的版本目录。默认情况下是不安装的
查看适合自己的内核版本
/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
/usr/src$
然后下载安装内核源码:
:/usr/src$ sudo apt-get install linux-source-3.2.0
下载完成后,在/usr/src下,文件名为:linux-source-3.2.0.tar.bz2,是一个压缩包,解压缩既可以得到整个内核的源代码:
注意 切换到超级用户模式进行解压缩
:/usr/src#sudo tar jxvf linux-source-3.2.0.tar.bz2
解压后生成一个新的目录/usr/src/linux-source-3.2.0,所有的源代码都在该目录下。
进入该目录 ,开始配置内核 选择最快的原版的配置(默认)方式 (我是如此)
:/usr/src/linux-source-3.2.0#sudo make oldconfig
(当然你也可以使用 自己喜欢的配置方式 如 menuconfig ,
xconfig(必须有GTK环境吧)。反正不用剪裁什么,所以不管那种方式能配置它就行了。)
完成后,开始make (保证空间足够,至少2G空闲空间) 。
我在make的时候出现错误终止,错误提示如下:
ERROR: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko]
undefined!
WARNING: modpost: Found 23 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
网上搜了一下,发现这个问题从3.0.0开始就有了,一直没有解决,既然解决不了就选择回避,在make
menuconfig配置选项中找到了staging这个配置项,直接选择为N([]中为空),重新编译就可以了(修改/usr/src/linux-headers-3.2.0-24-generic-pae/.config文件,找到STAGING项,将其值改为n)
:/usr/src/linux-source-3.2.0$sudo make
:/usr/src/linux-source-3.2.0$ make bzImage
当然,第一个make也可以不执行,直接make bzImage。执行结束后,可以看到在当前目录下生成了一个新的文件: vmlinux,
其属性为-rwxr-xr-x。
然后 :
:/usr/src/linux-source-3.2.0#sudo make modules
:/usr/src/linux-source-3.2.0#sudo make modules_install
执行结束之后,会在/lib/modules下生成新的目录/lib/modules/3.2.0-24-generic-pae/
。 在随后的编译模块文件时,要用到这个路径下的build目录。至此,内核编译完成。可以重启一下系统。
赶快写一个简单的内核驱动试一试吧。。
没有解决的问题:开始的时候在虚拟机里装了ubuntu系统,执行make时提示内存不足导致ubuntu系统挂掉,为vmare分配更大的内存后重新编译,还是出现同样的问题,未找到解决办法,,
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。