• Linux下加载.ko驱动模块的两种方法:insmod与modprobe
    假设要加载的驱动程序模块名为SHT21.ko
    
    加载驱动模块
    ----
    
    方法一:
    进入SHT21.ko驱动模块文件所在的目录,然后直接
    `insmod SHT21.ko`
    即可
    
    方法二:
    将SHT21.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 SHT21`(注意这里无需输入.ko后缀)
    即可
    
    **两种方法的区别:**
    
     modprobe和insmod类似,都是用来动态加载驱动模块的,区别在于modprobe可以解决load module时的依赖关系,它是通过/lib/modules/#uname -r/modules.dep(.bb)文件来查找依赖关系的;而insmod不能解决依赖问题。
    
    也就是说,如果你确定你要加载的驱动模块不依赖其他驱动模块的话,既可以insmod也可以modprobe,当然insmod可以在任何目录下执行,更方便一些。而如果你要加载的驱动模块还依赖其他ko驱动模块的话,就只能将模块拷贝到上述的特定目录,depmod后再modprobe。
    
    查看已加载的驱动模块列表
    ------------
    在任何目录下,
    `lsmod`
    即可
    
    卸载驱动模块
    ----
    在任何目录下,
    `rmmod `
    即可
    注意其中"module_name"是`lsmod`显示的模块名称,而不是对应的ko文件名
    
    参考资料
    [.ko内核模块文件以及载入模块命令modprobe insmod](http://blog.csdn.net/evenness/article/details/7655921)
    展开全文
  • .ko文件是kernel object文件(内核模块),该文件的意义就是把内核的一些功能移动到内核外边, 需要的时候插入内核,不需要时卸载。 二、优点 (1)这样可以缩小内核体积; (2)使用方便。 三、.ko文件一般...
  • .ko文件是kernel object文件(内核模块),该文件的意义就是把内核的一些功能移动到内核外边, 需要的时候插入内核,不需要时卸载。 二、优点 (1)这样可以缩小内核体积; (2)使用方便。 三、.ko文件一般...
  • 编译驱动ko文件 2017-05-03 13:29:28
    KERN_DIR = /work/system/linux-3.4.2 all: make -C $(KERN_DIR) M=`pwd` modules clean: make -C $(KERN_DIR) M=`pwd` modules clean rm -rf modules.order obj-m += hello.o -
  • linux查找网卡模块及驱动信息 Linux内核模块文件命名方式一般模块名称.ko>格式,Centos7系统内核模块集中存 在/lib/modules/`uname -r`/目录下。模块名称都在modules.*文件中。 #查看设备是否已经识别网卡: [root@...
  • 假设要加载的驱动程序模块名为SHT21.ko 加载驱动模块 ...将SHT21.ko文件拷贝到/lib/module/#uname -r#/目录下,这里,#uname -r#意思是,在终端中输入  uname -r后显示的内核版本及名称,例如mini2440
  • 驱动操作命令: insmod / modprobe 加载驱动 rmmod 卸载驱动 lsmod 查看系统中所有已经被加载了的所有的模块以及模块间的依赖关系 modinfo 获得模块的信息查看模块
  • 昨天整理了一篇关于linux内核驱动模块的开发介绍入门,其中介绍了一些关于驱动模块的基本开发步骤,不过面广而不深,很多细节都没有涉及到,其中就包括如何编写驱动模块的makefile。那么,今天我们就来聊一聊这个...
  • 假设我们要添加的驱动程序模块名为:demo.ko ...将demo.ko文件拷贝到 /lib/module/`uname -r`/目录下,这里,`uname -r`意思为在终端中输入此命令执行的结果后显示的内核版本及名称,例如exynos 441...
  • 文章目录1、insmod xxx.ko提示:first_drv: disagrees about version of symbol module_layout1.1 错误提示:1.2 错误原因:1.3 解决办法:2、 序言:刚开始学驱动,期间会遇到大大小小的坑,这里作为典型问题记录...
  • Linux驱动的两种安装方式 2016-10-17 12:23:05
    一、概念简述 在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载。 静态加载就是把驱动程序直接编译进内核,系统启动...动态加载利用了Linux的module特性,可以在系统启动后用insmod命令添加模块(.ko
  • 目的是找到ko_hi3518目录下某个ko文件中是否存在某个函数定义的地方。 如:查找CMPI_CreateProc是在哪个驱动文件中实现的。2.ko_hi3518目录acodec.ko hi3518_ai.ko hi3518_group.ko hi3518_rc.ko hi3518_vda.ko ...
  • Linux驱动之导出符号表 2018-12-23 16:09:22
    Linux 2.6的“/proc/kallsyms”文件对应着内核符号表,它记录了符号以及符号所在的内存地址。   模块可以使用如下宏导出符号到内核符号表: EXPORT_SYMBOL(符号名); EXPORT_SYMBOL_GPL(符号名); Module....
  • 可能是以前的驱动太多简单,也可能是我看书的时候不够仔细,一直以为ko写好以后,insmod成功以后就能在/dev下直接引用。其实不然。 对于misc类型的驱动,可能确实如此(没有系统的考证过)。但是对于字符设备和块...
1 2 3 4 5 ... 20
收藏数 3,760
精华内容 1,504