最近正准备学习《Linux设备驱动程序》,需要搭建内核源码树。 配置内核首先要下载源码,使用命令apt-cache search linux-source查找源码(所有截图是在win7下的VirtualBox下)。
使用命令sudo apt-get install linux-source-3.16.0
(版本号是找到的源码的版本号)下载源码,在usr/src/
会得到一个名为 linux-source-3.16.0.tar.bz2的压缩文件。
然后跳转路径到/usr/src/
下使用sudo tar jvxf linux-source-3.16.0.tar.bz2
进行解压缩。会得到一个名为linux-source-3.16.0
的文件夹。
进入linux-source-3.16.0
文件会看到(有一些隐藏文件没有列出来,其中有一个名为.config
的文件是一些配置信息,有兴趣可以使用vi .config查看其内容)
接下来要进行配置、编译加载等(在该文件路径下,可以通过命令make help,查看其帮助信息)。
首先是sudo make oldconfig
进行配置(注意要使用root权限,否则会出错)。
接着使用sudo make bzImage
(这一步需要花费很长时间,就是在这一步虚拟机系统非常卡,我只能放弃,重新在我的Ubuntu系统下进行,接下来就不放截图了)。
然后使用sudo make modules
(这一步也需要花费很长时间)。
最后使用sudo make modules_install
。
通过上述的步骤就配置成功了,前后差不多需要花费三个小时左右。
接下来就可以加载《Linux设备驱动程序》中的Hello World
模块。