当前位置:首页 > Linux > 正文

linux如何查看有哪些驱动

在Linux系统中,可运行 lsmod命令快速查看已加载的内核驱动模块

在Linux系统中,查看已加载或可用的驱动程序可以通过多种命令和工具实现,以下是详细说明:

使用内核模块管理命令

  1. lsmod

    • 作用:列出当前内核加载的所有模块(即驱动程序)。
    • 用法:直接输入 lsmod,输出包括模块名、大小、实例引用次数等。
    • 示例输出
      Module                  Size  Used by
      rfkill                  4096  1 
      nfs                    20480  1 
    • 注意:该命令仅显示已加载的模块,未加载的驱动不会显示。
  2. modinfo

    • 作用:查询指定模块的详细信息,如依赖关系、作者、描述等。
    • 用法modinfo [模块名]modinfo e1000
    • 输出示例
      filename:       /lib/modules/5.10.0/kernel/drivers/net/ethernet/intell000.ko
      description:    Intel(R) PRO/1000 Network Driver
    • 适用场景:确认模块是否匹配当前内核版本。

硬件设备与驱动关联分析

  1. lspci -k

    linux如何查看有哪些驱动  第1张

    • 作用:列出PCI设备及其对应的内核驱动。
    • 用法lspci -k,输出中包含“Kernel driver in use”字段。
    • 示例输出
      00:19.0 Communications controller: Intel Corporation Device [8086:1229]
         Kernel driver in use: mei_me
         Kernel modules: mei_me
    • 适用对象:PCI设备(如网卡、声卡、显卡)。
  2. lsusb -t

    • 作用:查看USB设备及使用的驱动模块。
    • 用法lsusb -t,输出中显示“Driver”字段。
    • 示例输出
      Bus 002 Device 003: ID 046d:c31c Logitech, Inc. M720 Wireless Mouse
          Driver: usbhid
    • 补充:结合 lsmod 可确认驱动是否已加载。

系统文件与日志查询

  1. /sys 目录

    • 作用:通过系统文件获取设备驱动信息。
    • 路径
      • PCI设备:/sys/bus/pci/devices/
      • USB设备:/sys/bus/usb/devices/
    • 示例
      cat /sys/bus/pci/devices/0000:00:1a:0/driver/module/name
      # 输出: snd_hda_intel
    • 优势:实时性强,支持动态查询。
  2. dmesg

    • 作用:查看内核日志,追踪驱动加载过程。
    • 用法dmesg | grep [模块名]dmesg | grep e1000
    • 典型输出
      [    7.123456] e1000 0000:00:19.0: enabling device (ocmap 0xFF)
    • 适用场景:诊断驱动是否成功加载或存在冲突。

存储设备驱动查询

  1. lsblk

    • 作用:列出块设备(如硬盘、SSD)及其挂载点。
    • 用法lsblk,显示设备名称、类型、大小等。
    • 关联驱动:结合 lspci -klsmod 确认驱动模块(如 sd 对应SCSI磁盘驱动)。
  2. fdisk -l

    • 作用:显示磁盘分区表,间接推断磁盘驱动状态。
    • 输出示例
      Disk /dev/sda: 500 GB, 500107862016 bytes
    • 注意:需结合其他命令确认驱动模块。

图形化工具辅助

  1. gnome-disks(Debian/Ubuntu)

    • 功能:可视化查看磁盘及其驱动状态。
    • 操作:在“Details”标签下查看设备信息。
  2. ksmokee(CentOS/Fedora)

    • 功能:类似功能,支持设备驱动详情查看。

方法对比与选择建议

场景 推荐命令 补充工具
查看所有已加载驱动 lsmod modinfo
分析PCI设备驱动 lspci -k dmesg
诊断USB设备驱动 lsusb -t lsmod
存储设备驱动排查 lsblk + lspci -k fdisk -l
内核驱动兼容性检查 modinfo /lib/modules/$(uname -r)/kernel/drivers/

FAQs

  1. Q:如何查看某个设备是否使用了正确的驱动?
    A:使用 lspci -klsusb -t 查看设备对应的驱动模块,再通过 lsmod 确认模块是否已加载,若驱动不匹配,可能需要手动加载或重新安装。

  2. Q:如何查找未被使用的冗余驱动模块?
    A:通过 lsmod 列出已加载模块,结合 depmod 生成当前内核的模块依赖关系,对比后清理无效模块

0