デフォルトのオープンソースドライバーを使用しています
# cat /sys/kernel/debug/vgaswitcheroo/switch
私は常にディスクリートAMDアダプターをDynOffとして持っています。私は試した
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
しかし、何も起こりません。私は何をすべきか?
Ubuntu 18.04では、この方法で解決しました。 /etc/default/grub
ファイルを編集する必要はありません。
glxheads
を実行して、デフォルトで統合GPUが使用されていることを確認します
$ glxheads
...
GL_VERSION: 3.0 Mesa 18.0.5
GL_VENDOR: Intel Open Source Technology Center
GL_RENDERER: Mesa DRI Intel(R) Sandybridge Mobile
個別のGPUは表示されているが、DynOff
であることを確認します
$ Sudo cat /sys/kernel/debug/vgaswitcheroo/switch
0:DIS: :DynOff:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0
glxheads
のディスクリートGPUを有効にして、再度実行します。レンダラーが変更されたことがわかります。
$ DRI_PRIME=1 glxheads
GL_VERSION: 3.0 Mesa 18.0.5
GL_VENDOR: X.Org
GL_RENDERER: AMD TURKS (DRM 2.50.0 / 4.15.0-32-generic, LLVM 6.0.0)
さらに、DRI_PRIME=1 glxheads
の実行中に、別のウィンドウで、個別のGPUがDynPwr
ではなくDynOff
であることを確認します
$ Sudo cat /sys/kernel/debug/vgaswitcheroo/switch
0:DIS: :DynPwr:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0
したがって、個別のGPUを使用するには、DRI_PRIME=1
で各アプリケーションを実行する必要があります。また、この環境変数を永続的に設定できます https://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables
カーネルパラメーターを設定します。
Sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT
を検索し、radeon.runpm=0
を追加します
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.runpm=0"
設定を更新
Sudo update-grub
/etc/rc.local
に追加
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
マシンを再起動
Sudo shutdown -r now
利益!
Sudo cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0
ATIディスクリートハイブリッドへの私のセットは機能します。
# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Thames [Radeon HD 7500M/7600M Series]
gedit /etc/default/grub
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.runpm=0"
GRUB_CMDLINE_LINUX_DEFAULT="radeon.runpm=0"
GRUB_CMDLINE_LINUX=""
cat /sys/kernel/debug/vgaswitcheroo/switch
0:DIS: :Pwr:0000:01:00.0
1:IGD:+:Pwr:0000:00:02.0
ファイルenvにDRI_PRIME=1
文字列を追加して、アプリでATIグラフィックカードを操作します。
gedit /etc/bash.bashrc
DRI_PRIME=1
gedit /etc/environment
DRI_PRIME=1
gedit /etc/profile
DRI_PRIME=1
最後に、デフォルトですべてのアプリで使用されます。
# glxheads
glxheads: exercise multiple GLX connections (any key = exit)
Usage:
glxheads xdisplayname ...
Example:
glxheads :0 mars:0 venus:1
Name: :0.0
Display: 0x55a68ea5b670
Window: 0x4200002
Context: 0x55a68ea6cd80
GL_VERSION: 3.0 Mesa 17.2.2
GL_VENDOR: X.Org
GL_RENDERER: AMD TURKS (DRM 2.50.0 / 4.13.0-25-generic, LLVM 5.0.0)