当前位置: 首页
系统平台
Linux查看具体硬件驱动列表的命令

Linux查看具体硬件驱动列表的命令

热心网友 时间:2026-07-10
转载

在Linux系统中,查看硬件驱动列表,可使用lsmod命令查看已加载模块(但内置驱动不显示),使用lspci-k命令查看PCI设备当前驱动,使用lsusb-t命令查看USB设备驱动。需特别注意驱动与固件缺失问题,使用dmesg|grepfirmware命令可辅助排查驱动和固件缺失。

如何在Linux系统中查看硬件驱动?这是一个经常被问到的问题,但答案取决于你的具体需求:是想了解“系统当前正在运行哪些驱动模块”,还是想定位“某个特定设备到底使用了哪个驱动”?这两种不同角度的查询,对应的Linux命令和排查方法截然不同。

Linux怎么查看具体的硬件驱动列表

如果想查看当前Linux系统正在运行哪些硬件驱动,最直接高效的方法就是执行 lsmod 命令。它会列出所有已加载的内核模块,而绝大多数硬件驱动都是以模块形式存在的,因此这基本上就是系统当前实际在使用的“驱动列表”。但需要注意——lsmod 只显示已加载的驱动,并不等于系统“支持”的全部驱动种类。许多驱动被静态编译进了内核(built-in),不会出现在输出结果中;还有一些驱动虽然存在,但因为没有相应设备触发加载,同样不会被列出。

当你的目标明确为“查询系统当前正在加载哪些硬件驱动”时,直接运行:

lsmod

输出结果的每行第一列就是驱动模块名称(例如 r8169iwlwifinvidia),第二列是模块大小,第三列是使用计数(为0表示当前未被设备占用,但模块仍驻留在内存中)。

不过,使用 lsmod 时有几个常见误区需要留意,避免踩坑:

  • lsmod 不会区分 PCI、USB 或平台设备,所有加载的模块混合在一起——如果要查找网卡驱动,需要自行 grep -i netgrep -E "(r81|e100|mlx|igb)" 进行过滤。
  • 模块名称不完全等同于驱动名称。例如 nvme 模块驱动 NVMe SSD,但 ahci 模块在某些内核配置下也能管理部分 NVMe 设备,不能仅凭名称轻易下结论。
  • lsmod 无法直接显示哪个设备使用了哪个模块——要建立硬件与驱动的关联,必须配合 lspci -kls /sys/class/net/*/device/driver 等命令。

如何精准定位某个设备使用了哪个驱动?

对于 PCI 设备(如显卡、网卡、SSD 控制器等),lspci -k 是核查驱动的黄金组合:

lspci -k | grep -A 3 -B 1 "Kernel driver in use"

该命令会将每个设备下面的 Kernel driver in use: 和紧随其后的 Kernel modules: 一起输出。这里需要特别区分两个概念:

  • Kernel driver in use: 表示当前实际绑定到设备的驱动(例如 amdgpu)。
  • Kernel modules: 列出的是内核支持的所有候选驱动(例如 amdgpu nouveau),它们不一定都安装了,也不一定都可用。
  • 如果 Kernel driver in use: 后面为空,说明设备尚未被任何驱动接管——可能的原因是未启用、firmware 缺失或设备 ID 不匹配。

如何查看 USB 设备绑定的驱动?

此时,lsusb -tlsusb -v 能更快速地定位驱动信息:

lsusb -t

输出结果中,每条设备行末尾括号内的名称就是当前绑定的驱动(例如 driver=uvcvideodriver=usbhid)。如果括号内显示 driver=none,则表示未绑定任何驱动。

还可以使用以下两种方法进行验证:

  • ls /sys/bus/usb/devices/*/driver —— 列出所有包含 driver 符号链接的 USB 设备路径。
  • readlink /sys/bus/usb/devices/1-1.2/driver —— 直接查询特定设备绑定的驱动(路径可通过 lsusb -t 获取)。

为什么有些驱动不在 lsmod 中,却在 lspci 输出里出现?

原因在于,某些驱动被静态编译进了内核(built-in),而不是以模块形式存在。在这种情况下:

  • lsmod 无法找到它(例如,旧版内核中的 intel_agp 常被编译为 built-in)。
  • lspci -k 仍然会显示 Kernel driver in use:(因为它确实在内核中运行)。
  • 如果要确认,可以查看内核源码或执行 zcat /proc/config.gz | grep CONFIG_AGP_INTEL,通过结果判断是 =y(built-in)还是 =m(module)。

最后,有一点常被忽略:驱动(Driver)与固件(Firmware)是完全不同的两个概念。即使 lspci -k 显示驱动已成功绑定,但如果 /lib/firmware/ 目录下缺少对应的固件文件,设备依然无法正常工作——此时,dmesg | grep -i firmware 才是找到问题根源的关键线索。

来源:https://www.php.cn/faq/2795114.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
如何用Linux查看网络数据包在内核的流向

如何用Linux查看网络数据包在内核的流向

tcpdump在链路层入口后、IP层解析前捕获,可看到MAC地址等头部;perf配合kprobe可跟踪skb在内核中的函数调用路径; proc net snmp等文件通过协议栈丢包计数反映流向瓶颈;iptablesTRACE仅在netfilter钩子打日志,不适合追踪真实流向。需交叉验证多种工具。

时间:2026-07-10 07:19
如何在CentOS 7中修改文件系统配额的具体操作步骤

如何在CentOS 7中修改文件系统配额的具体操作步骤

修改XFS文件系统配额时,需先在 etc fstab挂载点启用uquota或gquota选项,然后重新挂载文件系统使配额生效。之后以xfs_quota-x专家模式为用户或组设置软硬限制。修改后务必执行report命令验证,并检查输出确保限制值已写入且用量被正确统计。

时间:2026-07-10 07:19
Linux查看具体硬件驱动列表的命令

Linux查看具体硬件驱动列表的命令

在Linux系统中,查看硬件驱动列表,可使用lsmod命令查看已加载模块(但内置驱动不显示),使用lspci-k命令查看PCI设备当前驱动,使用lsusb-t命令查看USB设备驱动。需特别注意驱动与固件缺失问题,使用dmesg|grepfirmware命令可辅助排查驱动和固件缺失。

时间:2026-07-10 07:19
电脑0x800401f3无效类字符串系统底层报错解决

电脑0x800401f3无效类字符串系统底层报错解决

错误0x800401f3无效的类字符串,因系统找不到COM组件注册信息或权限不足导致。需先定位出错组件的ProgID,检查注册表HKEY_CLASSES_ROOT下对应项是否存在,若缺失则使用regsvr32命令重新注册对应的DLL文件,再修改ProgID及CLSID子项的权限,赋予Everyone完全控制,最后重启IIS服务或相关应用程序池使更改生效。

时间:2026-07-10 07:19
统信UOS更换系统图标包详细教程

统信UOS更换系统图标包详细教程

统信UOS更换系统图标包可通过三种途径实现:控制中心直接切换已安装主题、手动复制图标包至用户目录并更新缓存、使用深度商店一键安装。三种方式分别适合不同技术能力的用户,均能即时生效,提升操作效率与视觉体验。

时间:2026-07-10 07:18
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜