离散图形总是DynOff
我正在使用默认的开源驱动程序,当我运行时
# 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
-
因此,您需要使用
DRI_PRIME=1
运行每个应用程序才能使用离散GPU。 此外,您可以永久设置此环境变量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)