我使用默认的开源驱动程序,当我运行
# cat /sys/kernel/debug/vgaswitcheroo/switch
我总是将我的独立 AMD 适配器设置为 DynOff。我尝试过
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
但什么都没发生。我该怎么办?
答案1
在我的 Ubuntu 18.04 上,我通过这种方式解决了这个问题。无需编辑/etc/default/grub
文件。
通过运行检查是否默认使用集成 GPU
glxheads
$ 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
启用独立 GPU
glxheads
并再次运行。您可以看到渲染器已经发生了变化。$ 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
答案2
设置内核参数:
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
答案3
我的设置为 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
在文件环境中添加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)