ko文件的解释
1,什么是空文件?
Linux下加载驱动模块都是.o文件, .o文件也就是object文件。
.ko文件是kernel object文件,也就问kernel下的模块加载文件。
2,ko文件的作用
一般情况下,内核中会有许多已经加载进去的模块,而有些驱动模块并不需要一直加载到内核中,为了减少内核的压力,就将这些模块写好,当需要的时候再加载带内核中去,那么如何做到在需要的时候加载内核模块呢!这个时候ko文件就起作用了,当你需要某个模块时,直接insmod xxx.ko文件就行!!当然加载驱动模块的方法不止这一种!!
3,加载ko文件的另一种方法及区别
将xxx.ko文件拷贝到/lib/module/#uname-r#/目录下,然后 depmod(会在/lib/modules/#uname -r#/目录下生成modules.dep和modules.dep.bb文件,表明模块的依赖关系)最后 modprobe xxx(注意这里无需输入.ko后缀) 即可
这两种加载驱动模块的区别就在于modprobe和insmod类似,都是用来动态加载驱动模块的,区别在于modprobe可以解决load module时的依赖关系,它是通过/lib/modules/#uname -
r/modules.dep(.bb)文件来查找依赖关系的;而insmod不能解决依赖问题。也就是说,如果你确定你要加载的驱动模块不依赖其他驱动模块的话,既可以insmod也可以modprobe,当然insmod可以在任何目录下执行,更方便一些。而如果你要加载的驱动模块还依赖其他ko驱动模块的话,就只能将模块拷贝到上述的特定目录,depmod后再modprobe。