美文网首页
Linux下编写和加载 .ko 文件(驱动模块文件

Linux下编写和加载 .ko 文件(驱动模块文件

作者: 不醒的兔子 | 来源:发表于2018-12-29 00:40 被阅读0次

    一、.ko 文件介绍

    .ko文件是kernel object文件(内核模块),该文件的意义就是把内核的一些功能移动到内核外边, 需要的时候插入内核,不需要时卸载。

    二、优点

    (1)这样可以缩小内核体积;

    (2)使用方便。

    三、.ko文件一般的用处

    (1)作为一个功能模块,需要使用时,直接插入运行就行。如在imx6上连接模拟摄像头,先运行模拟摄像头对应的驱动模块 camera.ko文件,然后对应的工程执行文件运行就行。

    四、使用.ko 文件

    1、加载驱动模块test.ko

    (1)方法一 

    进入test.ko驱动模块文件所在的目录,然后直接   insmod  test.ko 

    (2)方法二 

    将test.ko文件拷贝到/lib/module/#uname-r#/目录下,这里,#uname -r#意思是,在终端中输入 

    uname -r后显示的内核版本及名称,例如mini2440中#uname-r#就是2.6.32.2-FriendlyARM。

    然后 depmod(会在/lib/modules/#uname -r#/目录下生成modules.dep和modules.dep.bb文件,表明模块的依赖关系) 

    最后 modprobe test(注意这里无需输入.ko后缀) 即可

    注:两种方法的区别

    modprobe和insmod类似,都是用来动态加载驱动模块的,区别在于modprobe可以解决load module时的依赖关系,它是通过/lib/modules/#uname -r/modules.dep(.bb)文件来查找依赖关系的;而insmod不能解决依赖问题。也就是说,如果你确定你要加载的驱动模块不依赖其他驱动模块的话,既可以insmod也可以modprobe,当然insmod可以在任何目录下执行,更方便一些。而如果你要加载的驱动模块还依赖其他ko驱动模块的话,就只能将模块拷贝到上述的特定目录,depmod后再modprobe。

    相关文章

      网友评论

          本文标题:Linux下编写和加载 .ko 文件(驱动模块文件

          本文链接:https://www.haomeiwen.com/subject/jziylqtx.html