一直在作DSP的驱动开发,思虑良久,以为对后续职业发展不利,面太窄,决定转向ARM+Linux平台开发,遂开始学习Linux,看了一些资料,有了必定的基础以后在网上找了一个很简单的hello字符驱动准备实践一下,结果一编译就遇见找不到Linux不少头文件的错误(以下图),断断续续搞了有两周,网上也查了好多资料,其中也有说道须要构建Linux内核源码树,可是看Ubunt系统装好后/lib/modules目录下就带有3.13.0-32-generic目录,按理说应该就是内核源码树,可是不知道为何不能用。并且系统自带/usr/src下面的linux-headers-3.13.0-32和linux-headers-3.13.0-32-generic彷佛不是完整的内核源码。这两个问题如今还没搞清楚,待定。linux
下面是经过我参考网上的资料及本身的实践写的构建内核源码树的步骤:学习
1. 执行 sudo apt-cache search linux-source 获取当前的内核版本号为linux-source-3.13.0spa
2. 执行 sudo apt-get install linux-source-3.13.0 下载内核版本,下载存储目录在/usr/src中。blog
3. 使用 tar -jxvf linux-source-3.13.0.tar.bz2 解压下载的内核文件资源
4. 进入 linux-source-3.13.0 内核文件夹开发
5. 执行 sudo make oldconfig 生成.config配置文件(一路按Enter键)get
6. 执行 sudo chmod 660 .config 设置器对非root用户的写权限(不然后续对.config文件的修改不能保存)源码
7. 执行 vi .config 打开.config文件,将其中的CONFIG_RTS5139=m改成CONFIG_RTS5139=n,保存退出qt
8. 执行 sudo make 执行完毕以后(大约1-2小时),会在目录下生成vmlinux.o文件编译
8. 执行 sudo make modules
9. 执行 sudo make modules_install 完毕后,在/lib/modules目录下生成3.13.11-ckt39文件夹,说明内核源码树构建成功。
其它问题:
1. 在进行内核编译以前会提醒须要安装几个相关的软件,以下图所示。
安装方法为使用 sudo apt-get install ncurses-dev 命令,我在安装libqt3-dev的时候提示找不到相应的资源,更换镜像源后依然如此,最后没有安装这个软件就开始构建内核源码树了,目前没有出问题,不清楚这个是干啥的,继续做为遗留问题吧。