専用グラフィック カードでは実行できません。VGA スイッチャーで強制的にオンにすることはできません。DRI_PRIME を使用するとエラーが発生します。

専用グラフィック カードでは実行できません。VGA スイッチャーで強制的にオンにすることはできません。DRI_PRIME を使用するとエラーが発生します。

私は Dell Inpiron 15 7548 で Xubuntu 18.04 を実行しています。マシンには HD 5500 グラフィックスと専用の AMD R7 カードが統合されています。専用カードへのアクセスを何度も試みましたが、いつも諦めてしまっていたので、この問題の真相を突き止めて、実際にハードウェアを使用できるようにしたいと思っています。

まず、両方のカードが正常に検出されます。

narameh@Hydrogen:~$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)
08:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465] (rev ff)

私は、Dell 独自のガイドに従って、switcheroo を使用してシステム全体を専用カードに切り替える方法を試しました。こちらを参照してください。 https://www.dell.com/support/article/uk/en/ukbsdt1/sln298475/a-guide-to-hybrid-video-on-dell-pcs-with-an-ubuntu-operating-system?lang=en

出力は次のようになります:

VGA スイッチャーが有効になっています:

narameh@Hydrogen:~$ grep -i switcheroo /boot/config-*
/boot/config-4.15.0-50-generic:CONFIG_VGA_SWITCHEROO=y
/boot/config-4.15.0-51-generic:CONFIG_VGA_SWITCHEROO=y

スイッチファイルが存在します:

narameh@Hydrogen:~$ sudo ls -l /sys/kernel/debug/vgaswitcheroo/switch
-rw-r--r-- 1 root root 0 Jun 12 16:07 /sys/kernel/debug/vgaswitcheroo/switch

デフォルトの状態:

narameh@Hydrogen:~$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :DynOff:0000:08:00.0

チュートリアルでは、Pwr または Off のいずれかであると想定していますが、これはハイブリッド システムであるため、私の場合は DynOff です。したがって、指示に従って切断された GPU をオンにしようとすると、実際には切断されておらず、動的にオフになっているだけなので、何も起こりません。これは、ルートとして実行する必要があります。そうでない場合、権限がないため echo できません。

narameh@Hydrogen:~$ sudo su
root@Hydrogen:/home/narameh# echo ON > /sys/kernel/debug/vgaswitcheroo/switch
root@Hydrogen:/home/narameh# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :DynOff:0000:08:00.0

次に、DRI_PRIMEを使用してAMDカードで何かを実行し、カードが起動するかどうかを確認してみました。

DRI_PRIME=1 glxinfo

1つのターミナルウィンドウでスパム行為をする

narameh@Hydrogen:~$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch

一方、最初のターミナルは大量のエラーを吐き出し、DynOff に戻ります。エラー出力の Pastebin:https://pastebin.com/gJ4StVLS

エラー コードを Google で検索すると、同様の問題に関する次のトピックが見つかりました。https://www.linuxquestions.org/questions/slackware-14/current-14-2-and-dri-3-and-dri_prime-ain%27t-working-4175578108/ このポスターが何をしているのかについての詳しい情報は、こちらをご覧ください:ハイブリッドGFX

そこの手順に従うと次のようになります

DRI は問題ないようです:

narameh@Hydrogen:~$ cat /var/log/Xorg.0.log | grep DRI
[    45.527] (II) RADEON(G0): [DRI2] Setup complete
[    45.527] (II) RADEON(G0): [DRI2]   DRI driver: radeonsi
[    45.527] (II) RADEON(G0): [DRI2]   VDPAU driver: radeonsi
[    46.672] (II) modeset(0): [DRI2] Setup complete
[    46.672] (II) modeset(0): [DRI2]   DRI driver: i965
[    46.672] (II) modeset(0): [DRI2]   VDPAU driver: i965
[    46.704] (II) GLX: Initialized DRI2 GL provider for screen 0


narameh@Hydrogen:~$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x66 cap: 0x9, Source Output, Sink Offload crtcs: 3 outputs: 2 associated providers: 1 name:modesetting
Provider 1: id: 0x41 cap: 0x6, Sink Output, Source Offload crtcs: 2 outputs: 0 associated providers: 1 name:OLAND @ pci:0000:08:00.0
narameh@Hydrogen:~$ xrandr --setprovideroffloadsink 0x41 0x66
narameh@Hydrogen:~$ 

エラーは発生しないので、このコマンドは正常に動作するようです。その後、いずれかのカードで実行してみると、Intel オンボードは正常に動作します。

narameh@Hydrogen:~$ DRI_PRIME=0 glxinfo | grep "OpenGL vendor string"
OpenGL vendor string: Intel Open Source Technology Center

しかし、AMD は依然として同じエラーをスローします:https://pastebin.com/W56z6z3L

結局、スレッドのユーザーは問題の原因をカーネルのコミットの不具合にまでさかのぼってロールバックしましたが、これは a) 2016 年のスレッドであり、b) 私はカーネルをいじるほど高度なユーザーではないため、私にとってはそれが選択肢ではありません。

カーネルバージョンに関連していると思われる同様のエラーが他にも複数見つかりました(例:https://bugs.freedesktop.org/show_bug.cgi?id=102800Ubuntu 17.01またはこちらhttps://bugs.freedesktop.org/show_bug.cgi?id=94874

どちらのトピックでも、カーネル ブートに radeon.nopm=0 を追加することが提案されていますが、自分が何をしているのか十分に理解していないため、何らかのガイダンスなしにこれを試すのは躊躇しています。

この投稿から、私が自分でこの問題を解決しようと努力したが、知識の限界に達しており、理解できない変更や、そのせいで起動時に黒い画面が表示された場合に元に戻せない変更によってシステムを台無しにしたくないということが明確に伝われば幸いです。より上級の人からの助けが非常にありがたいです。

要約: ディスクリートAMDはDynOffで、VGA_switcherooで強制的にオンにすることはできません。DRI_PRIMEはディスクリートカードと通信できますが、思われるカーネルの問題でしょうか? ユーザーは知識の限界に達しており、何かを壊すことを恐れています。助けていただければ幸いです。

編集: カーネルバージョンなどを含めると便利だと気づきました:

    narameh@Hydrogen:~$ uname -r
    4.15.0-51-generic
    narameh@Hydrogen:~$ lspci -nnk | grep -i vga -A3
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 5500 [8086:1616] (rev 09)
    Subsystem: Dell HD Graphics 5500 [1028:066f]
    Kernel driver in use: i915
    Kernel modules: i915
--
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465] [1002:6604] (rev ff)
    Kernel driver in use: radeon
    Kernel modules: radeon, amdgpu

編集 2: また、BIOS に GPU のオン/オフを切り替えるオプションがないことも付け加えておきます。ビデオ関連のオプションはまったくありません。

答え1

まったくの戸惑いでしたが、今はうまくいっています。1 年以上もの間、この問題を解決しようと試みてきました。結局、うまくいきませんでした。今日、この投稿を書いた後、休憩することにしました。BIOS オプションを再確認するために再起動し、未使用の PPA を消去しました。次に、DRI_PRIME=1 glxinfo を実行して、エラー ログからさらに情報を取得できないか確認したところ、うまくいきました。正直、何が起こったのかわかりません。再起動も未使用の PPA の削除も、この現象にはまったく影響しないはずです。何てこった。でも、うまくいったのでとてもうれしいです。この問題は解決したと考えてください。

関連情報