どのグラフィック カードがディスプレイを駆動しているかを確認するにはどうすればよいですか?

どのグラフィック カードがディスプレイを駆動しているかを確認するにはどうすればよいですか?

このシステムは、Intel/ATI のハイブリッド製品 (マルチプレクサなし) の 1 つでセットアップされています。カーネル設定とドライバーを少しいじった後、両方のカードが動作するようになったと思います (カーネル設定に radeon.dpm=1 を追加し、オープンソース ドライバーのみを使用)。

しかし、システムがどのカードを使用しているかわかりません。私の理解では、新しいカーネル (3.12) では、AMD の動的電源管理により、必要に応じてカードの電源をオン/オフにできるので、理論上はほとんどの時間、統合された HD4000 が使用されるはずですが、どのカードが使用されているかを確認する簡単な方法が見つかりません。

lspci | grep VGAすべてのカードがリストされるだけで、現在使用されているカードは指定されません。

正しい方向への導きが大いにありがたく思います。

システム

Debian 7 安定版、3.12 amd64 カーネル 7670M AMD + Intel HD4000

答え1

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

xrandrこのシステムには、2 つのポート (出力) を持つ Intel のグラフィック カードが 1 枚あります。出力は次のように確認できます。

$ 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最後に、実際のグラフィック カード情報に関する詳細情報を確認するには、次の方法を使用できます。

$ 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 は LVDS1 と VGA1 の 2 つの出力を駆動できます。ただし、このアプローチにより、どのディスプレイがどの GPU によって駆動されているかをかなり高い信頼性で判断できます。

上記の関連付けはシステムの設定によって制御されるため、誤解を招く可能性があります。たとえば、上記の関連付けは、多くの場合、次のような設定から実行されます。

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

そのため、システムがScreen0以外の何かで駆動されるように設定されている可能性がありますDevice0

参考文献

答え2

glxinfoで使用可能な を使用すると、OpenGLmesa-utilsグラフィックスに使用されているビデオ アダプタを表示できます。

例えば:

➜  ~  glxinfo | grep "OpenGL renderer string"
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile

答え3

この質問は、Google 検索結果の上位にまだ表示されるので、非常に古い質問ですが回答します。slm からの回答で、多くの便利なツールを知りましたが、答えは得られませんでした。Ubuntu の Wayland への切り替えが問題の一部である可能性があります。私が解決した方法は次のとおりです。

    root@Legion5:~# ls -lah /sys/class/drm
total 0
drwxr-xr-x  2 root root    0 Nov  9 11:07 .
drwxr-xr-x 87 root root    0 Nov  9 11:07 ..
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card0 -> ../../devices/pci0000:00/0000:00:08.1/0000:06:00.0/drm/card0
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card0-eDP-1 -> ../../devices/pci0000:00/0000:00:08.1/0000:06:00.0/drm/card0/card0-eDP-1
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card1 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/card1
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card1-DP-1 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/card1/card1-DP-1
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card1-DP-2 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/card1/card1-DP-2
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card1-eDP-2 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/card1/card1-eDP-2
lrwxrwxrwx  1 root root    0 Nov  9 11:07 card1-HDMI-A-1 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/card1/card1-HDMI-A-1
lrwxrwxrwx  1 root root    0 Nov  9 11:07 renderD128 -> ../../devices/pci0000:00/0000:00:08.1/0000:06:00.0/drm/renderD128
lrwxrwxrwx  1 root root    0 Nov  9 11:07 renderD129 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/drm/renderD129
-r--r--r--  1 root root 4.0K Nov  9 11:07 version

このリストにはカードとディスプレイが表示されています。つまり、「card0 eDP-1」はラップトップの内蔵 LCD 画面を制御するラップトップ AMD GPU です。「card1-HDMI-A-1」は HDMI ポートの外部ディスプレイを制御する NVIDIA GPU です。まだ完璧ではありませんが、必要なものを伝えるには十分です。

関連情報