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


189

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

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

Answers:


181

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

  *-显示
       说明:VGA兼容控制器
       产品:核心处理器集成图形控制器
       供应商:英特尔公司
       物理ID:2
       巴士资讯:pci @ 0000:00:02.0
       版本:02
       宽度:64位
       时钟:33MHz
       功能:vga_controller bus_master cap_list rom
       配置:driver = i915延迟= 0
       资源:irq:45内存:fd000000-fd3fffff内存:d0000000-dfffffff 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 

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

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

modinfo -F filename `lshw -c video | awk '/configuration: driver/{print $2}' | cut -d= -f2`

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

modinfo $(modprobe --resolve-alias nvidia)

1
谢谢-您是否知道是否可以将返回给数据库的字符串(或列表等)与返回的字符串进行匹配?
belacqua 2011年

3
modinfo nvidia_current对我不起作用。但是lshw -c video确实向我显示了nvidia的驱动程序详细信息
Ubuntuser

1
我的笔记本电脑有两个视频卡:一个集成的英特尔卡和一个Radeon HD 6xxx。两张卡都有驱动程序,因此都通过这些命令显示。但这并不能告诉我X11实际使用的是哪个,不是吗?
naught101

3
@ naught101看看/var/log/Xorg.0.log来发现。正在使用的卡上标有星号:`(-)PCI:*(0:0:2:0)...`
Lekensteyn 2013年

3
当我运行时sudo lshw -c video,“ configuration”行显示“ latency = 0”,并且任何地方都没有驱动程序条目。我已经成功安装了几次英特尔驱动程序,两次之间都重新启动,无论如何,lshw不会显示任何驱动程序信息。
2016年

85

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

lspci -nnk | grep -i vga -A3 | grep 'in use'

ATI / AMD图形卡的示例输出:

  • 如果使用开源Radeon驱动程序:

    Kernel driver in use: radeon
    
  • 如果使用专有的Fglrx驱动程序:

    Kernel driver in use: fglrx_pci
    

完成输出 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

您可以通过以下代码查看可用的内核模块lspci -nnk | grep -i vga -A3 | grep 'Kernel modules'

Kernel modules: fglrx, radeon

注意:这并非在所有情况下都有效!

对于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

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

   Konfiguration: latency=0

没有任何驾驶员信息。


4
+1与“标准”的Linux工具的解决方案(完美的作品在Fedora这里)
4levels

1
如果in use同时看到i915和nouveau怎么办?我怎么知道X使用哪个?
akostadinov

+1我正在尝试在lubuntu系统上使用视频驱动程序的名称:您lspci | grep让我很努力。lshwLekensteyn 的提议正在研究ubuntu时,未能在lubuntu上检测到模块文件的名称。
安东尼奥·莫利纳罗

3

我尝试了很多方法但都没有成功,但这确实对我有效(Ubuntu 12.10):

/usr/lib/nux/unity_support_test --print

原因之一是我有Nvidia Optimus卡,这使事情变得更难,所以我optirun在命令前添加了它。


2
我以为它只显示驱动程序功能和OpenGL版本-这是否显示您正在使用的驱动程序?
belacqua

我已经在Ubuntu 16.04.2。中测试了此命令。它似乎以与命令glxinfo|egrep "OpenGL vendor|OpenGL renderer*" 所见类似的语法报告活动的GPU 。我相信它将unity_support_test --print在后端运行OpenGL命令。
太阳熊


2
hwinfo --gfxcard

查找以“ Driver:”开头的行,您可能必须先安装hwinfo软件包。


0

打开一个终端并输入:

sudo apt-get install sysinfo

这是一个方便的小程序,可以告诉您所有有关PC的知识。


2
我无法通过Sysinfo获取任何VGA驱动程序信息。Sysinfo VGA信息屏幕快照
BuZZ-dEE

1
sysinfo在Ubuntu 16.04下崩溃。好的程序可以显示有用的系统信息。
颠覆
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.