如何检查哪个显卡驱动了我的显示器?


9

该系统设置有这些混合Intel / ATI产品之一(无复用)。经过一番摆弄内核设置和驱动程序后,我认为两张卡都可以工作(在内核设置中添加radeon.dpm = 1,并且仅使用开源驱动程序)。

但是我不知道系统正在使用哪张卡。根据我对较新内核(3.12)的理解,动态电源管理将在需要时关闭/打开卡的电源,因此从理论上讲,它应该在大多数时间使用集成的hd4000,但是我找不到简单的方法检查使用中的哪一个。

lspci | grep VGA 仅列出所有卡,没有指定当前正在使用的卡。

一些朝着正确的方向转向很受赞赏。

系统

Debian 7稳定版,3.12 amd64内核7670M AMD + Intel HD4000

Answers:


3

朗德

使用xrandr将显示哪些卡可用。

$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x49 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 8 associated providers: 0 name:Intel

在此系统上,我有1个图形卡,一个Intel,具有2个端口(输出)。您可以xrandr像这样看到输出:

$ xrandr -q
Screen 0: minimum 320 x 200, current 3360 x 1080, maximum 8192 x 8192
LVDS1 connected primary 1440x900+0+0 (normal left inverted right x axis y axis) 303mm x 190mm
   1440x900       60.0*+   50.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1920x1080+1440+0 (normal left inverted right x axis y axis) 521mm x 293mm
   1920x1080      60.0*+
   1680x1050      60.0  
   1280x1024      75.0     60.0  
   1440x900       59.9  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)

2个输出是VGA1(VGA外部端口)和LVDS1(笔记本电脑上的LCD监视器)。

sh

最后,您可以用来lshw查找有关实际显卡信息的更多信息:

$ sudo lshw -numeric -c video
  *-display               
       description: VGA compatible controller
       product: Core Processor Integrated Graphics Controller [8086:46]
       vendor: Intel Corporation [8086]
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 02
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:41 memory:f2000000-f23fffff memory:d0000000-dfffffff ioport:1800(size=8)

如何确定哪个GPU在驱动哪个显示器

要完成此任务,您需要获取提供程序列表,并从xrandr --listproviders命令中记下其编号。该编号是设备编号。它的时间通常是在输出中与屏幕一起分配的相同数字xrandr -q

因此,人们可以轻松地构造出哪个GPU“设备”正在驱动哪个屏幕。在我的示例中,“提供者0”正在驱动“屏幕0”。

注意:术语“屏幕”不一定对应于单个显示器。在我的场景中,我的GPU可以驱动2个输出,即LVDS1和VGA1。但是,这种方法的确可以使您高度确定哪个GPU驱动哪个显示器。

上述关联是通过系统的设置进行控制的,因此有可能会误导您。例如,上面的关联是由通常如下所示的设置驱动的:

Section "Screen"
    Identifier  "Screen0"
    Device      "Device0"
EndSection
Section "Screen"
    Identifier  "Screen1"
    Device      "Device1"
EndSection

因此,有可能系统被设置Screen0为非驱动Device0

参考文献


我没有要测试的多GPU机器,但据我所知,您提出的命令都没有指示哪个GPU驱动了哪个显示器。
吉尔斯(Gillles)“所以-别再作恶了”

@Gilles-的确,它们没有出来并进行实际声明,但它们确实显示了设备如何与给定的屏幕(即显示器)相关联。
slm

您仍然没有解释如何将GPU与显示器相关联(至少在没有的常见情况下Xorg.conf)。如果没有其他地方(可能还有其他地方,但我没有经验),这些信息可能在Xorg日志中。
吉尔(Gilles)'所以

@吉尔斯-嗯。提供者“提供者0”是GPU#0。该GPU驱动器将显示关联为“屏幕0”。我没有解释清楚吗?
slm

但是您如何知道哪个提供商驱动哪个屏幕?
吉尔斯(Gillles)“所以-别再作恶了”

2

glxinfo,这是可以在mesa-utils可用于该视频适配器用于OpenGL图形显示。

例如:

➜  ~  glxinfo | grep "OpenGL renderer string"
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
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.