驱动模块编译总结

来源:互联网 发布:小米笔记本 游戏 知乎 编辑:程序博客网 时间:2024/06/07 04:49

首先内核编译过程中最容易犯得一类错误是编译器版本不匹配(太低),所以在编译前首先习惯检查编译器版本。现在简单总结下驱动模块的编译及安装方法及对比:

方法一:自己编写Makefile文件(详见我的另一篇博文),指定内核源码树等,使用make指令编译,然后动态添加使用insmod。

感悟:该方法适用于内核驱动开发阶段,具有方便高效的开发过程。

方法二:修改内核源码目录树下对应驱动路径文件,例如:首先拷贝驱动源文件到/Linux-2.6.30/deiver/char/下,然后修改该目录下对应Kconfig文件,修改参见Kconfig文件中照猫画虎,不过需要自己记住驱动名,同时警惕命名冲突。(修改Kconfig是因为在内核配置编译过程中Kconfig影响menuconfig,menuconfig影响.config,而.config影响

makefile,所以按照依赖关系修改配置)然后进入menuconfig配置单,在device drivers-> character devices中即可看见自己的模块名,选择是否编译为M或*或[ ]中的一种即可。然后修改对应目录下的makefile,在适当位置添加目标依赖,仿照原makefile添加即可,文件名注意就行。然后执行指令make zImage即可。如选择为模块则还需要执行指令make modules,然后在对应源目录下即可查看.ko文件。

感悟:该方法适合产品阶段,直接固定。

方法三:鉴于方法二中已经提到内核配置编译过程中的相互依赖关系。我们完全可以直接修改.config及makefile文件来进行设置,该方法其实速度最快最有效。

总之,编译的方法有多种,我们可以选择自己喜欢的方式来编译安装。


转自:http://blog.csdn.net/yanbober/article/details/8280940

0 0
原创粉丝点击