独立显卡始终 DynOff

独立显卡始终 DynOff

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

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

我总是将我的独立 AMD 适配器设置为 DynOff。我尝试过

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

但什么都没发生。我该怎么办?

答案1

在我的 Ubuntu 18.04 上,我通过这种方式解决了这个问题。无需编辑/etc/default/grub文件。

  1. 通过运行检查是否默认使用集成 GPUglxheads

    $ 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. 启用独立 GPUglxheads并再次运行。您可以看到渲染器已经发生了变化。

    $ 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

答案2

  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
    

答案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)

相关内容