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

文章目录

    • 1. insmod和rmmod命令
    • 2. modprobe命令
      • 2-1. 语法
      • 2-2. 选项
      • 2-3. 示例

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功能相同。

你可能感兴趣的:(嵌入式linux驱动)