离散图形总是DynOff

我正在使用默认的开源驱动程序,当我运行时

# cat /sys/kernel/debug/vgaswitcheroo/switch 

我总是将我的分立式AMD适配器作为DynOff。 我试过了

  echo ON > /sys/kernel/debug/vgaswitcheroo/switch 

但没有任何反应。 我该怎么办?

在我的Ubuntu 18.04上,我用这种方式解决了它。 无需编辑/etc/default/grub文件。

  1. 通过运行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 
  2. 检查离散GPU是否可见但是DynOff

     $ sudo cat /sys/kernel/debug/vgaswitcheroo/switch 0:DIS: :DynOff:0000:01:00.0 1:IGD:+:Pwr:0000:00:02.0 
  3. 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) 
  4. 另外,在运行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 
  5. 因此,您需要使用DRI_PRIME=1运行每个应用程序才能使用离散GPU。 此外,您可以永久设置此环境变量https://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables

  1. 设置内核参数:

     sudo nano /etc/default/grub 
  2. 找到GRUB_CMDLINE_LINUX_DEFAULT ,像这样追加radeon.runpm=0

     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.runpm=0" 
  3. 更新配置

     sudo update-grub 
  4. /etc/rc.local添加

     echo OFF > /sys/kernel/debug/vgaswitcheroo/switch 
  5. 重启机器

     sudo shutdown -r now 
  6. 利润!

     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)