之前重新编译了Ubuntu下的内核(Linux驱动开发之环境搭建----Ubuntu 12.4 编译内核),可不是很完美,现在构建基于Ubuntu官方版本的内核树.
1. 先查看内核版本
cody@kdev:~$ uname -a Linux kdev 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386 GNU/Linux
2. 由于Ubuntu默认是没有安装内核树的,但是有提供安装包,这就需要我们手工安装上去
cody@kdev:~$ 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 cody@kdev:~$ sudo apt-get install linux-source-3.2.0
3. 解压,进入到源代码目录,使用原版的快速配置,然后make
cody@kdev:/usr/src$ sudo tar jvxf linux-source-3.2.0 cody@kdev:/usr/src$ cd linux-source-3.2.0 cody@kdev:/usr/src/linux-source-3.2.0$ sudo make oldconfig cody@kdev:/usr/src/linux-source-3.2.0$ sudo make
4. 在我的PC上,等了二个小时左右,出现一个错误
ERROR: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] undefined! WARNING: modpost: Found 5 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
估计是RTS5139驱动的问题.反正没有使用这个驱动,不要加入编译, 编辑.config, 将
CONFIG_RTS5139=m
修改成如下的形式:
CONFIG_RTS5139=n
继续make,等了半小时左右,终于完成了.
5. 编译成模块
sudo make modules
6. 安装,重启.如果没什么问题就算成功了.
sudo make modules_install