首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Linux-kmod 内核模块管理工具使用

Linux-kmod 内核模块管理工具使用

作者头像
韦东山
发布2022-05-05 16:09:49
发布2022-05-05 16:09:49
2.4K0
举报
文章被收录于专栏:韦东山嵌入式韦东山嵌入式

1.1 lsmod:列出已经安装了哪些模块

代码语言:javascript
复制
[root@imx6ull:~]# lsmod

提示信息含义说明: • Module :表示模块的名称 • Size : 表示模块的大小 • Used: 使用者

1.2 insmod:手工安装模块

后面讲到的 modprobe 命令,它是从/lib/modules 下的目录里自动安装某个模块。但是在实验过程中,我们经常需要手工安装其他目录下的模块,可以使用以下命令安装(需要指定模块文件即 ko 文件的位置)。

代码语言:javascript
复制
[root@imx6ull:~]# insmod /path/to/module/xxx.ko 
[root@imx6ull:~]# insmod -f /path/to/module/xxx.ko // 强制安装

开发板出厂时运行的是我们编译好的内核,当你做实验时需要先编译出自己的内核,然后编译出自己的驱动程序。如果你不想替换内核,那么你的驱动程序跟板上的内核并不完全匹配。这时就要用 insmod -f 命令强制安装驱动程序。下面是一个例子:

1.3 rmmod:卸载掉某个已安装的模块

代码语言:javascript
复制
[root@imx6ull:~]# rmmod <模块名称>

从上图 lsmod 可知系统已经安装了哪些模块,这里我们以卸载 usb wifi 模块驱动为例,具体操作如下图所示。

1.4 modinfo:查看某个模块的详细信息

代码语言:javascript
复制
[root@imx6ull:~]# modinfo <模块>

modinfo 命令用于显示 kernel 模块的信息。 用法:

[root@imx6ull:~]# modinfo [-adlpn0Fkbvh] <模块文件> -a 或–author 显示模块开发人员。 -d 或–description 显示模块的说明。 -l 或—license 显示版本信息 -p 或–parameters 显示模块所支持的参数。 -0 或–null 用 \0 代替 \n -F 或–field=FIELD 仅打印提供的字段 -k 或–set-version=VERSION 用 VERSION 代替 uname -r -b 或–basedir=DIR 使用 DIR 作为/lib/modules 的文件系统根目录 -V 或–version 显示版本信息 -h 或–help 显示帮助信息

可以在开发板执行 modinfo -h 命令查看帮助信息,如下图:

下面是一个例子,用来显示 evbug 模块的信息:

代码语言:javascript
复制
[root@imx6ull:~]# modinfo evbug

1.5 modprobe:自动安装模块

modprobe 可载入指定的个别模块,或是载入一组相依的模块。modprobe 会根据 depmod 所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,则 modprobe 会卸载整组的模块。

insmod 与 modprobe 都是用于安装内核模块,差别是:modprobe 能够处理模块的依赖问题。比方你要加载 a 模块,但是 a 要求系统先载入 b 模块时,直接用 insmod 加载可能会出现错误讯息。modprobe 会自动加载 b,才加载 a,帮你处理这些依赖关系。

用法:

代码语言:javascript
复制
[root@imx6ull:~]# modprobe [options] [模块名]

开发板执行 modprobe -h 可以看到命令用法,如下图:

常用的命令解释如下:

-r 卸载模块 -f 名制安装或卸载 -r 删除模块(堆栈)或自动清洁 -D 显示依赖

操作示例,modprobe 自动解析依赖并安装相应模块:

注意:使用modproe也会碰到insmod同样的内核版本不一致问题,可以使用 modprobe -f 强制安装。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 lsmod:列出已经安装了哪些模块
  • 1.2 insmod:手工安装模块
  • 1.3 rmmod:卸载掉某个已安装的模块
  • 1.4 modinfo:查看某个模块的详细信息
  • 1.5 modprobe:自动安装模块
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档