当前位置:

首页 > 系统应用 > Linux查看当前开启的内核模块 lsmod与modinfo用法

Linux查看当前开启的内核模块 lsmod与modinfo用法

在Linux系统里,内核模块的管理和排查是个精细活儿。很多朋友都熟悉lsmod和modinfo这两个命令,但真正用起来,却常常发现它们给出的信息似乎对不上号,或者漏掉了关键线索。这其实是因为这两个工具的关注点完全不同,必须配合使用才能拼出完整的真相。 lsmod仅显示模块加载状态,无法确认是否正常工

在Linux系统里,内核模块的管理和排查是个精细活儿。很多朋友都熟悉lsmod和modinfo这两个命令,但真正用起来,却常常发现它们给出的信息似乎对不上号,或者漏掉了关键线索。这其实是因为这两个工具的关注点完全不同,必须配合使用才能拼出完整的真相。

lsmod仅显示模块加载状态,无法确认是否正常工作;modinfo只读取磁盘文件元数据;二者必须配合使用:lsmod查运行态,modinfo查兼容性与参数。

Linux查看当前开启的内核模块 lsmod与modinfo用法

简单来说,lsmod告诉你的是“哪些模块正在内存里跑着”,但它可不管这个模块是不是真的在工作,或者能不能正常工作。而modinfo呢,它压根不关心模块有没有被加载,它的任务就是去翻看磁盘上那个模块文件自带的“说明书”(元数据)。所以,想把模块问题搞清楚,这两者缺一不可。

lsmod 输出里 Used by 为 0 是什么情况

看到Used by那一列是0,先别急着下结论说这个模块是“闲置”的。它只表示当前没有其他模块或内核子系统明确引用它,但模块本身确实还驻留在内存中。以下几种情况都很常见:

  • 模块刚被modprobe加载进来,但触发它工作的条件还没满足。比如一个USB设备驱动加载了,可对应的U盘还没插上。
  • 驱动已经加载,对应的硬件却被热拔出了,或者电源关了。像usb_storage模块,U盘拔掉后,它可能还在列表里,但Used by就变成了0。
  • 有些模块设计上就是“常驻监听”的,比如kvm_intel,即便当前没有虚拟机在跑,它也会保持加载状态,Used by长期为0也不奇怪。
  • 这里有个关键陷阱:Used by 0绝不等于这个模块就能安全卸载。你尝试rmmod时,很可能还是会收到Module is in use的错误。这是因为内核内部可能通过try_module_get()这类机制持有着引用,而lsmod的统计反映不出来。

modinfo 查不到模块名?先确认模块是否存在

当modinfo报出ERROR: Module not found时,别先怀疑自己命令敲错了。十有八九,是这个模块根本就没安装到你当前运行的内核版本路径下。排查可以按这个顺序来:

  • 先用uname -r确认一下当前内核版本,比如输出是6.8.0-45-generic。
  • 然后去对应的路径下找文件:ls /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rtw88/rtw88_8822bu.ko*。看看文件到底在不在。
  • 如果文件存在,但是.ko.xz这样的压缩格式,通常modinfo是能直接识别的,不需要手动解压。不过,一些比较老的工具链可能不支持,这时可以临时解压验证一下:xz -d rtw88_8822bu.ko.xz。
  • 还要注意模块名和文件名的区别。比如ath9k.ko这个文件,对应的模块名就是ath9k。但像ath9k_common.ko,它通常是一个依赖模块,你不能直接用modinfo ath9k_common去加载它,得靠modprobe ath9k在加载主模块时自动把它带起来。

grep 过滤 lsmod 时为什么漏掉模块

想用lsmod | grep nvidia来找所有NVIDIA相关模块?结果可能会让你失望,因为模块名不一定都包含你想找的关键词。这里有几个典型的“坑”:

  • NVIDIA驱动的主模块确实是nvidia,但它的配套模块可能叫nvidia_uvm、nvidia_drm、nvidia_modeset。光用grep nvidia,后面这几个就全漏了。
  • 有些模块用了别名(alias)。比如btusb模块,可能在/etc/modprobe.d/的某个配置文件里被设置成了bluetooth的别名。这时你用lsmod | grep bluetooth去搜,自然什么也看不到。
  • 命令是大小写敏感的。LSMOD不是有效命令,lsmod | grep NVME也匹配不到全小写的nvme模块。
  • 更稳妥的做法是:lsmod | awk '{print $1}' | grep -i 'nvidia\|nvme\|bt'。先用awk精准提取第一列(模块名),再进行不区分大小写的过滤。

modinfo -p 显示的参数,为什么 modprobe 加了却没生效

modinfo -p列出来的,是模块在编译时就声明好的、可供配置的参数列表。但这只是个“菜单”,想让参数真正起作用,还得满足几个条件:

  • 参数必须在modprobe命令里显式地传进去。比如:sudo modprobe r8169 disable_msi=1。
  • 如果模块已经加载在内存里了,那么再次执行modprobe(不带-r选项)默认是不会重新加载的。你得先rmmod r8169把它卸掉,再重新执行带参数的modprobe命令。
  • 有些参数比较特殊,必须在模块加载之前,通过内核启动参数来设置。例如i915.enable_psr=0这种,得写在GRUB配置文件的linux行里。等系统跑起来再用modprobe传,是无效的。
  • 怎么验证参数生效了呢?模块加载后,可以去/sys/module/下对应的目录查看:sudo cat /sys/module/r8169/parameters/disable_msi。如果输出是Y或者1,那才算成功。

说到底,内核模块管理的麻烦之处,不在于命令有多难记,而在于它的状态信息是分散在多处的。运行时的加载状态在/proc/modules(lsmod的数据源),模块文件本身和它的元数据在/lib/modules/$(uname -r)/目录下,而加载后的参数和详细状态又在/sys/module/里。这三层信息各自为政,如果只盯着一个地方看,很容易就查偏了方向。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
系统应用 Linux
相关文章 更多
linux删除用户与用户组的方法及命令教程
linux删除用户与用户组的方法及命令教程

掌握Linux中删除用户和用户组的正确方法,避免残留文件和进程冲突。本文深入解析userdel和groupdel命令的参数用法,提供处理“用户仍在使用”等常见错误的实战方案。

Linux如何开启端口号?开放端口命令详解
Linux如何开启端口号?开放端口命令详解

详细讲解Linux如何开启端口号以及常用的开放端口命令。

crossover卸载软件下载及重新安装教程
crossover卸载软件下载及重新安装教程

遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
AirBuddy 3 macOS版
AirBuddy 3 macOS版
macOS

AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

AirServer macOS版
AirServer macOS版
macOS

AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

AnyDesk macOS版
AnyDesk macOS版
macOS

AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

WINDOWS 更多
AnyDesk Windows版
AnyDesk Windows版
Windows

AnyDesk Windows版是一款轻量化远程桌面与技术支持工具,可用于控制异地电脑、传输文件、远程打印及无人值守访问。它兼顾连接响应、安全权限和部署灵活性,适合个人远程办公、企业设备维护与客服支持。

Boom 3D Windows版
Boom 3D Windows版
Windows

Boom 3D Windows版是一款面向音乐、电影和游戏场景的系统级音效增强工具,支持虚拟3D环绕声、31段均衡器、预设音效、应用音量控制及本地音乐播放,可配合耳机、扬声器和蓝牙耳机使用。

Boris FX Windows版
Boris FX Windows版
Windows

Boris FX Windows版是一套服务于影视剪辑、视觉特效、运动跟踪、转描、图像修饰及音频修复的专业创作工具集合,可作为插件接入多种主流后期宿主,也包含可独立运行的应用,适合剪辑师、特效师与内容创作者使用。