2. 嵌入式linux驱动-模块加载/卸载的两种方法

2019-07-12 16:00发布

文章目录

1. insmod和rmmod命令

  insmod需要指定模块的绝对路径,用法: insmod test.ko   rmmod只需要模块的名字即可,用法: rmmod test   需要说明的是,使用insmod和rmmod加载卸载模块时并不会加载/卸载卸载其依赖模块。

2. modprobe命令

  modprobe命令智能地向内核中加载模块或者从内核中移除模块,可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的依赖关系,决定要载入哪些模块。若在载入过程中出错,modprobe会卸载整组的模块。
注:在使用这个命令加载模块前先使用depmod -a命令生成modules.dep文件,该文件位于/lib/modules/$(uname -r)目录下。

2-1. 语法

modprobe (选项) (参数)

2-2. 选项

-a或--all:载入全部的模块; -c或--show-conf:显示所有模块的设置信息; -d或--debug:使用排错模式; -l或--list:显示可用的模块; -r或--remove:模块闲置不用时,即自动卸载模块; -t或--type:指定模块类型; -v或--verbose:执行时显示详细的信息; -V或--version:显示版本信息; -help:显示帮助。

2-3. 示例

  • 加载模块
modprobe vfat   这里,使用格式modprobe 模块名来挂载一个模块。挂载之后,用lsmod可以查看已经挂载的模块。模块名是不能带有后缀的,我们通过modprobe -l所看到的模块,都是带有.ko或.o后缀。
  • 卸载模块
modprobe -r 模块名   移除已加载的模块,和rmmod功能相同。