问题描述
我想尝试一个不同的视频显示驱动程序,但我不确定我目前使用哪一个。
目前我的系统使用什么驱动程序的简单方法是什么?
最佳解决办法
运行lshw -c video
,并用”configuration”查找该行。加载的驱动程序以”driver=”为前缀。示例输出:
*-display
description: VGA compatible controller
product: Core Processor Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 02
width: 64 bits
clock: 33MHz
capabilities: vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:45 memory:fd000000-fd3fffff memory:d0000000-dfffffff ioport:1800(size=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)
次佳解决办法
您可以使用以下命令查看当前使用的vga内核驱动程序:
lspci -nnk | grep -i vga -A3 | grep 'in use'
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
可用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
没有任何司机信息。
第三种解决办法
我尝试了许多方法,但没有成功,但是这对我有用(Ubuntu 12.10):
/usr/lib/nux/unity_support_test --print
其中一个原因是我拥有Nvidia Optimus显卡,这让事情变得更加困难,所以我在命令前添加了optirun
。