web-dev-qa-db-ja.com

離散グラフィックスは常にDynOff

デフォルトのオープンソースドライバーを使用しています

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

私は常にディスクリートAMDアダプターをDynOffとして持っています。私は試した

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

しかし、何も起こりません。私は何をすべきか?

5
Ticiano Arraes

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. したがって、個別のGPUを使用するには、DRI_PRIME=1で各アプリケーションを実行する必要があります。また、この環境変数を永続的に設定できます https://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables

5
Scarabyte
  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
    
2
shcherbak

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)
1
user782499