Linux内核模块管理命令
1、insmod命令
在Linux系统下,insmod命令用于将给定的模块加载到内核中去,Linux系统有许多功能是通过模块的方式,在需要时才载入kernel,这样做可以使kernel较为精简,进而提高效率,这类可载入的模块,通常是设备驱动程序。
(1)命令语法
insmod(选项)(参数)
(2)常用选项说明
-f:不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入。
-k:将模块设置为自动卸载。
-m:输出模块的载入信息。
-o<模块名称>:指定模块的名称,可使用模块文件的文件名。
-p:测试模块是否能正确载入到kernel。
-s:将所有信息记录在系统记录文件中。
-v:执行时显示详细的信息。
-x:不要汇出模块的外部符号。
-X:汇出模块所有的外部符号
(3)参数
内核模块:指定要加载的内核模块文件
(4)实例
加载一个简单的hello.ko内核模块,并查看加载结果:
# insmod hello.ko # lsmod | grep “hello”
运行结果如下所示:
2、rmmod命令
在Linux系统下,rmmod命令用于从当前运行的内核中移除指定的内核模块,执行rmmod命令,可删除不需要的模块。
(1)命令语法
rmmod(选项)(参数)
(2)常用选项说明
-v:显示指令执行的详细信息。
-f:强制移除模块,该选项比较危险。
-w:等待着,直到模块能够被移除时再移除模块。
-s:向系统日志(syslog)发送错误信息。
(3)参数
模块名称:要移除的模块的名称
(4)实例
将hello内核模块进行移除:
# lsmod | grep “hello” # rmmod hello # lsmod | grep “hello”
运行结果如下所示:
3、lsmod命令
在Linux系统下,lsmod命令用于显示已经加载到内核中的模块的状态信息,运行lsmod命令后会列出所有已经载入系统的模块。
(1)语法
lsmod
(2)实例
查看当前系统已经载入的模块:
# lsmod
运行结果如下:
在上面显示的结果中:
第一列:表示模块的名称;
第二列:表示模块的大小;
第三列:表示依赖模块的个数;
第四列:表示依赖模块的内容。
4、modinfo命令
在Linux系统下,可以使用modinfo命令显示给定模块的详细信息。
(1)语法
modinfo(选项)(参数)
(2)常用选项说明
-a:显示模块的作者。
-d:显示模块的描述信息。
-l:显示模块的许可证信息。
-p:显示模块的参数信息。
-n:显示模块对应的文字信息。
(3)参数
模块名:要显示详细信息的模块名称。
(4)实例
显示hello.ko模块的信息:
# modinfo hello.ko
运行结果如下所示:
4、modprobe命令
Linux系统下,modprobe命令用于智能地向内核中加载模块或者从内核中移除模块。
(1)语法
modprobe(选项)(参数)
(2)常用选项说明
-a或--all:载入全部的模块。
-c或--show-conf:显示所有模块的设置信息。
-d或--debug:使用排错模式。
-r或--remove:当模块闲置不用时,即自动卸载模块。
-v或--verbose:执行时显示详细信息。
-V或--version:显示版本信息。
-help:显示命令帮助信息。
(3)参数
模块名:要加载或移除的模块名称。
(4)实例
加载hello.ko模块:
先将要加载的模块拷贝到/lib/modules/“uname -r”目录下,uname –r表示内核版本号
# cp hello.ko /lib/modules/“uname -r” # depmod # modprobe hello.ko # lsmod | grep “hello” # modprobe -r hello # lsmod | grep hello
运行结果如下所示:
参考:
https://man.linuxde.net/insmod
https://man.linuxde.net/rmmod
https://man.linuxde.net/lsmod
https://man.linuxde.net/modprobe
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App