如何找到系统上正在使用的视频驱动程序?

bel*_*qua 226 graphics drivers

我想尝试不同的视频显示驱动程序,但我不确定我目前使用的是哪一个。

查看我的系统当前使用的驱动程序的简单方法是什么?

Lek*_*eyn 229

运行lshw -c video,并查找带有“配置”的行。加载的驱动程序以“driver=”为前缀。示例输出:

  *-展示
       描述:VGA兼容控制器
       产品:核心处理器集成图形控制器
       供应商:英特尔公司
       物理 ID:2
       巴士信息:pci@0000:00:02.0
       版本:02
       宽度:64位
       时钟:33MHz
       功能:vga_controller bus_master cap_list rom
       配置:驱动程序=i915延迟=0
       资源:irq:45 内存:fd000000-fd3fffff 内存:d0000000-dffffff ioport:1800(大小=8)

如果您想了解有关加载的驱动程序的更多信息,请运行modinfo。的输出modinfo i915

filename:       /lib/modules/2.6.35-24-generic/kernel/drivers/gpu/drm/i915/i915.ko
license:        GPL and additional rights
description:    Intel Graphics
author:         Tungsten Graphics, Inc.
license:        GPL and additional rights
... stripped information for saving space ...
depends:        drm,drm_kms_helper,video,intel-agp,i2c-algo-bit
vermagic:       2.6.35-24-generic SMP mod_unload modversions 
Run Code Online (Sandbox Code Playgroud)

请注意,它modinfo适用于文件名和别名,而不适用于模块名称。大多数模块的模块名和文件名将具有相同的名称,但也有例外。其中之一是nvidia

使用这些命令向您显示驱动程序文件名的另一种方法是:

modinfo -F filename `lshw -c video | awk '/configuration: driver/{print $2}' | cut -d= -f2`
Run Code Online (Sandbox Code Playgroud)

加载后,该命令lsmod将显示nvidia模块已加载。modinfo nvidia会出错。为什么?因为没有名为“nvidia”的模块,它只是一个别名。要解析别名,您可以使用modprobe --resolve-alias nvidia. 或者在一个命令中获取整个 modinfo:

modinfo $(modprobe --resolve-alias nvidia)
Run Code Online (Sandbox Code Playgroud)

  • 当我运行 `sudo lshw -c video` 时,“配置”行显示“延迟 = 0”,并且在任何地方都没有驱动程序条目。我已经成功地重新安装了 Intel 驱动程序几次,中间有重新启动,无论如何,lshw 不显示任何驱动程序信息。 (7认同)
  • @naught101 查看`/var/log/Xorg.0.log` 来发现。正在使用的卡标有星号:` (--) PCI:*(0:0:2:0) ...` (5认同)
  • `modinfo nvidia_current` 对我不起作用。然而,`lshw -c video` 确实向我显示了 nvidia 的驱动程序详细信息 (3认同)
  • 我的说`配置:延迟= 0`根本没有列出驱动程序。我怎样才能找到它?编辑:好的,这是因为 nomodeset 选项。 (3认同)

BuZ*_*dEE 97

您可以使用以下命令查看当前使用的 vga 内核驱动程序:

lspci -nnk | grep -i vga -A3 | grep 'in use'
Run Code Online (Sandbox Code Playgroud)

ATI / AMD 显卡的示例输出:

完成输出 lspci -nnk | grep -i vga -A3

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI Mobility Radeon HD 2400 [1002:94c9]
    Subsystem: Toshiba America Info Systems Device [1179:ff00]
    Kernel driver in use: fglrx_pci
    Kernel modules: fglrx, radeon
Run Code Online (Sandbox Code Playgroud)

您可以看到的可用内核模块lspci -nnk | grep -i vga -A3 | grep 'Kernel modules'

Kernel modules: fglrx, radeon
Run Code Online (Sandbox Code Playgroud)

注意:这并不适用于所有情况!

对于 SiS 65x/M650/740 PCI/AGP VGA 显示适配器,没有“正在使用的内核驱动程序”行:

lspci -nnk | grep -i vga -A2
01:00.0 VGA compatible controller [0300]: Silicon Integrated Systems [SiS] 65x/M650/740 PCI/AGP VGA Display Adapter [1039:6325]
    Subsystem: ASUSTeK Computer Inc. Device [1043:1612]
    Kernel modules: sisfb
Run Code Online (Sandbox Code Playgroud)

并且可用的sisfb内核模块不是加载的驱动程序,因为lsmod | grep sisfb没有输出(sisfb被列入黑名单)。在这种情况下也sudo lshw -c video | grep Konfiguration不起作用。输出是:

   Konfiguration: latency=0
Run Code Online (Sandbox Code Playgroud)

没有任何驱动程序信息。

  • +1 用于使用“标准”linux 工具的解决方案(在此处在 Fedora 上完美运行) (4认同)
  • 如果我看到 i915 和 nouveau 都“正在使用”怎么样?我如何知道 X 使用的是哪一个? (4认同)

jar*_*rno 10

hwinfo --gfxcard
Run Code Online (Sandbox Code Playgroud)

查找以“Driver:”开头的行,您可能需要先安装 hwinfo 包。