xrandr
を使用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つのグラフィックカードと、2つのポート(出力)を持つIntelを使用しています。次の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モニター)です。
lshw
最後に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」を駆動しています。
注:「画面」という用語は、必ずしも1つのディスプレイに対応しているとは限りません。私のシナリオでは、GPUは2つの出力、LVDS1とVGA1を駆動できます。ただし、このアプローチでは、どのディスプレイがどのGPUによって駆動されているかをかなり高い信頼度で判断できます。
上記の関連付けはシステムの設定によって制御されるため、誤解を招く可能性があります。たとえば、上記の関連付けは、次のような設定に基づいています。
Section "Screen"
Identifier "Screen0"
Device "Device0"
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
EndSection
したがって、システムがScreen0
以外で駆動されるようにセットアップされた可能性がありますDevice0
。
参考文献