Linux驱动中的.o文件与.ko文件的区别
2013-08-11 17:47
405 查看
转自:http://wxpjiujiang.blog.163.com/blog/static/2039940302012272272901/
Linux驱动中的.o文件与.ko文件的区别
2012-03-07 14:27:02| 分类: 默认分类 | 标签:linux .ko .o 区别 |字号 订阅最近在学习linux的驱动,之前做嵌入式实验的时候加载驱动模块都是.o文件,但是现在发现很多驱动模块都是.ko文件,于是上网查了一下两者的区别,现在贴出来,和大家一起分享。
.o文件也就是object文件,.ko文件是kernel object文件,与.o的区别在于其多了一些sections,比如.modinfo。.modinfo section是由kernel source里的modpost工具生成的,包括MODULE_AUTHOR, MODULE_DESCRIPTION, MODULE_LICENSE, device
ID table以及模块依赖关系等等。depmod工具根据.modinfo section生成modules.dep, modules.*map等文件,以便modprobe更方便的加载模块。
在2.6内核下编译driver, 首先要确认你的linux系统里有没有kernel tree,检查的方法是看看文件夹/lib/modules/$(uname -r)/build是否指向source code,并进去看看,是否有Makefile, include, scripts等文件夹,在scripts/mod下可以找到前面提到的modpost,这个是生成.ko的关键。如果没有kernel
tree,需要重新build一份kernel来建立这个kernel tree。
在2.4内核中,生成的就是.o文件。2.6的kernel对内核模块的管理做了一些扩展,生成的就是.ko文件。
相关文章推荐
- 将驱动编译成.ko文件添加到嵌入式Linux系统下
- Linux驱动中的.o文件与.ko文件的区别
- Linux驱动开发第一步:怎么将.ko文件传入开发板
- LINUX驱动开发: UBUNTU下,比如我写了个.C 驱动文件。 之后我要把它放在哪里,我才能得到.ko文件
- Linux文件与目录的三种时间状态(mtime,atime,ctime)区别
- Linux下的.ko文件
- linux下的硬链接和软连接区别及ext2文件系统
- linux驱动头文件位置的说明
- linux下驱动编译报错EEROR: "***" [***.ko] undefined! 的错误原因和解决办法
- linux驱动头文件位置的说明
- Linux命令:修改文件权限命令chmod、chgrp、chown的区别
- 关于linux驱动(应用)程序头文件使用
- 笔记——设备文件、设备文件节点 、设备驱动的区别
- linux目录文件权限的区别。
- Linux下.bashrc文件和/etc/profile文件的区别
- linux中文件的accesstime/modifytime/changetime的区别
- Linux驱动 读写文件【转】
- linux命令和文件查找之which、whereis、locate、find的特点和区别
- linux 驱动之Kconfig文件和Makefile文件实例
- 在Linux中用source,dot(.)和直接用脚本文件名执行shell脚本的区别