linux系统如何查看驱动

在Linux系统中,查看驱动信息是系统管理和故障排查的重要环节,驱动作为内核与硬件之间的桥梁,其状态直接影响硬件功能的使用,本文将详细介绍通过命令行工具、文件系统及图形界面查看驱动信息的方法,帮助用户全面掌握驱动状态。

linux系统如何查看驱动

命令行工具查看驱动信息

命令行是Linux系统管理的核心方式,通过特定命令可快速获取驱动加载状态、模块信息及硬件绑定关系。

lsmod:列出已加载的内核模块

lsmod命令用于显示当前内核中已加载的所有模块(即驱动程序),其数据来源于/proc/modules文件,执行lsmod会输出模块名、大小及依赖关系,

lsmod | grep nvidia

此命令会过滤出与“nvidia”相关的模块,输出结果包含模块名(如nvidia)、大小(如45214768字节)及依赖模块(如drm、ttm等),通过依赖关系可分析驱动加载的层级。

modinfo:查看模块详细信息

若需了解模块的版本、许可证、作者、参数等详细信息,可使用modinfo命令,后跟模块名。

modinfo nvidia

输出会包含模块的version(版本)、license(许可证,如GPL)、author(作者)、parm(可配置参数)等字段,对于未加载的模块,modinfo仍可查询其信息,前提是模块文件存在于/lib/modules/$(uname -r)/目录下。

lspci与lsusb:查看硬件设备及绑定驱动

  • lspci:列出PCI总线上的硬件设备,需安装pciutils包,使用-k或-nn参数可查看设备绑定的驱动及厂商/设备ID:

    lspci -k | grep -i 'network'  # 查看网络设备及其驱动
    lspci -nn | grep -i 'vga'     # 查看VGA设备(显卡)及其ID

    输出中“Kernel driver in use”字段即当前设备使用的驱动,如“Kernel driver in use: nvidia”。

  • lsusb:列出USB设备,需安装usbutils包,参数与lspci类似:

    lsusb -v | grep -i 'driver'   # 查看USB设备驱动详情

dmesg:查看内核日志中的驱动加载信息

驱动加载过程中,内核会输出相关信息至dmesg日志,通过过滤关键字可快速定位驱动加载状态:

linux系统如何查看驱动

dmesg | grep -i 'driver|nvidia'  # 查看驱动相关的内核日志

日志中会显示驱动加载成功(如nvidia: module loaded)或失败(如nvidia: probe failed)的信息,结合时间戳可排查驱动加载问题。

dkms:查看动态内核模块支持状态

若系统使用DKMS(Dynamic Kernel Module Support)管理驱动(如NVIDIA闭源驱动、无线网卡驱动),可通过dkms status查看已安装的驱动模块及其与内核版本的匹配状态:

dkms status

输出示例为nvidia/510.47.03: 5.15.0-52-generic, 5.15.0-52-generic, i686,表示该驱动模块已为内核版本15.0-52-generic编译并安装。

文件系统查看驱动信息

Linux内核通过/proc和/sys虚拟文件系统暴露驱动和硬件信息,适合直接查看底层绑定关系。

/proc/modules:已加载模块的原始数据

/proc/modules是lsmod的数据来源,直接查看可获取模块的内存占用、引用计数及依赖列表:

cat /proc/modules | grep -i 'sound'

/sys/bus/:总线设备与驱动绑定信息

/sys/bus/目录下按总线类型(如pci、usb)组织设备,每个设备目录下有driver符号链接,指向绑定的驱动:

# 查看PCI设备(如网卡)绑定的驱动
ls -l /sys/bus/pci/devices/0000:02:00.0/driver  # 0000:02:00.0为PCI设备地址
# 输出示例:lrwxrwxrwx 1 root root 0 10月 1 10:00 /sys/bus/pci/devices/0000:02:00.0/driver -> ../../../bus/pci/drivers/e1000e

通过driver链接的路径可确定驱动名称,进一步查看驱动信息(如/sys/bus/pci/drivers/e1000e目录包含驱动的绑定设备列表)。

/sys/class/:按设备类型查看驱动

/sys/class/目录按设备类型(如net、drm)组织,例如查看网络设备驱动:

ls -l /sys/class/net/eth0/device/driver  # eth0为网卡名

图形界面工具查看驱动信息

对于习惯图形界面的用户,以下工具可直观展示硬件及驱动信息:

linux系统如何查看驱动

lshw:硬件信息查看工具

lshw以树状结构展示硬件及驱动信息,需安装lshw包:

sudo lshw -C display  # 查看显卡及驱动

输出会包含“configuration”字段中的驱动名称(如driver=nvidia)及“logical name”(如/dev/dri/card0)。

hardinfo:系统信息工具

hardinfo提供图形界面,支持生成硬件报告,包含驱动信息:

sudo hardinfo  # 启动后选择“Devices”查看各硬件驱动

inxi:命令行信息工具(带图形输出)

inxi以简洁格式显示系统信息,包含驱动状态:

inxi -Fxxx  # 详细显示硬件及驱动信息

常用命令对比表

命令 用途 示例 说明
lsmod 列出已加载模块 lsmod | grep -i 'audio' 显示模块名、大小、依赖关系
modinfo 查看模块详细信息 modinfo snd_hda_intel 需模块名,可查未加载模块
lspci -k 查看PCI设备及绑定驱动 lspci -k | grep -i 'vga' 需安装pciutils
lsusb -v 查看USB设备及驱动详情 lsusb -v | grep -i 'driver' 需安装usbutils
dmesg 查看驱动加载日志 dmesg | grep -i 'nvidia' 过滤关键字定位驱动状态
dkms status 查看DKMS驱动模块状态 dkms status 适用于DKMS管理的驱动

相关问答FAQs

Q1: 如何查看某个具体设备(如网卡)的驱动名称?
A1: 可通过lspci或ip命令定位设备,再查看绑定驱动。

  1. 使用ip a找到网卡名(如eth0);
  2. 通过lspci | grep -i 'ethernet'找到对应的PCI地址(如0000:02:00.0);
  3. 执行lspci -k -s 0000:02:00.0,查看“Kernel driver in use”字段即为驱动名(如e1000e)。
    或直接查看/sys/class/net/eth0/device/driver链接指向的路径。

Q2: 如何判断内核是否加载了某个驱动模块(如rtl8723be)?
A2: 可通过以下两种方式判断:

  1. 使用lsmod | grep rtl8723be,若有输出则表示模块已加载;
  2. 查看模块信息:modinfo rtl8723be,若显示“filename”字段(如/lib/modules/5.15.0-52-generic/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8723be.ko),说明模块文件存在,再结合lsmod确认是否加载,若模块未加载,可尝试sudo modprobe rtl8723be手动加载。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15064.html

赞 (0)
酷番叔酷番叔
上一篇 2025年8月23日 07:01
下一篇 2025年8月23日 07:15

相关推荐

  • Linux环境下编程语言的实际应用该如何入门与实践?

    在Linux环境下进行编程,依托于开源生态和丰富的工具链,开发者可以选择多种编程语言实现不同场景的需求,从系统级开发到应用层脚本,Linux提供了完善的编译、调试、运行环境,本文将详细介绍如何利用Linux编程语言进行开发,涵盖语言选择、环境搭建、核心工具使用及项目实践,Linux作为开源操作系统,其编程环境的……

    2025年9月22日
    24000
  • linux如何guolv

    Linux 中可通过多种方式过滤,如用 grep 根据模式筛选文本内容,用

    2025年8月17日
    20300
  • 如何查看当前环境变量设置?

    在Linux系统中,PATH环境变量决定了终端执行命令时的搜索路径,当用户输入一个命令(如ls或python),系统会按照PATH中列出的目录顺序查找可执行文件,如果PATH包含错误路径、重复路径或存在安全风险的路径(如恶意脚本目录),就需要清理或删除多余项,以下是详细操作方法:PATH的作用与删除原因PATH……

    2025年6月13日
    22200
  • Linux抓包后如何分析数据包?

    Linux环境下抓包是网络故障排查、安全分析、性能优化的核心手段,而抓包后的分析则需要结合工具操作与协议知识,从基础信息到深层逻辑逐步解析,本文以tcpdump、Wireshark为核心工具,分步骤拆解抓包后的分析方法,帮助读者系统掌握流量解读技巧,基础信息快速定位:锁定流量“身份标签”抓包文件(通常为.pca……

    2025年9月18日
    31900
  • Linux密码怎么改最安全?

    更改当前登录用户密码打开终端Ctrl+Alt+T 快捷键启动终端(适用于大多数图形界面),或通过系统菜单搜索”Terminal”,执行密码修改命令输入命令后按回车:passwd系统提示输入当前密码(输入时无显示),输入新密码并确认(需输入两次),密码强度要求:建议包含大小写字母、数字、符号(如 S3cur!ty……

    2025年6月20日
    39200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信