Nouveauドライバを含むNvidia Optimus

Nouveauドライバを含むNvidia Optimus

optirun内蔵グラフィックスデバイスと個々のグラフィックス処理デバイスを搭載したマイコンピュータでFOSS Nouveauドライバを使用するためのコマンドを取得しようとしています。次のコマンドで提供される設定は次のとおりですlspci | egrep -i 'vga|3d'

00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)
01:00.0 3D controller: NVIDIA Corporation GK208BM [GeForce 920M] (rev a1)

~によるとNouveau CodeNamesのウェブサイトページ、私のGPUはNV108(GK208)Nouveauドライバで駆動されます。その場合、コマンドを使用して機能しない理由はありませんoptirun。そうですか?しかし、古典的なインストールプロセスに従った後、

  1. 排他ドライバーの削除
  2. 設置bumblebeemesa-utils梱包
  3. インストールする仮想GL

optirunコマンドを実行できません。たとえば、optirun glxgears エラーを提供します。

[ERROR]Cannot access secondary GPU - error: [XORG] (EE) 
[ERROR]Aborting because fallback start is disabled

問題はカーネルのNouveauモジュールにあるようです。

$ optirun -vv glxgears
----------------------
[DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[DEBUG]optirun version 3.2.1 starting...
[DEBUG]Active configuration:
[DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[DEBUG] X display: :8
[DEBUG] LD_LIBRARY_PATH: 
[DEBUG] Socket path: /var/run/bumblebee.socket
[DEBUG] Accel/display bridge: auto
[DEBUG] VGL Compression: proxy
[DEBUG] VGLrun extra options: 
[DEBUG] Primus LD Path: /usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus:/usr/lib/primus:/usr/lib32/primus
[DEBUG]Using auto-detected bridge virtualgl
[INFO]Response: No - error: [XORG] (EE) 
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) 
[DEBUG]Socket closed.
[ERROR]Aborting because fallback start is disabled.
[DEBUG]Killing all remaining processes.

私が試したこと

/etc/bumblebee/bumblebee.confOptimusがby設定でNouveauドライバを使用するように強制しようとしていますDriver=nouveau。違いなし。


私が直したもの

最初のコマンドの実行中に別のエラーが発生しました。

[ERROR]Cannot access secondary GPU - error: [XORG] (EE) 
[ERROR]Failed to load module "mouse" (module does not exist, 0)

不足しているパッケージをインストールして問題を解決しましたxserver-xorg-input-mouse

答え1

研究を続けながら、ついに問題に対する解決策を見つけました。

回避策:GPU間の切り替えにOptimusを使用しないでください。

Primus と Optimus プログラムは、Nvidia 独自のドライバで使用するように設計されています。そのため、Nouveau ドライバとの併用はお勧めできません。 Linuxカーネルには、追加のプログラムをインストールせずにGPUを切り替えることができるツールがあります。問題のツールはVGAスイッチ。このツールはオープンソースドライバでのみ動作します。

このツールはデフォルトでシステムで有効になっていない可能性があるため、いくつかのアクションが必要です。ツールが有効になっていることを確認するには、スイッチファイルを探します。

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

私の場合は、ツールが有効になっていないため、Bumblebeeのみを削除して問題を解決しました。 Bumblebee を削除しても問題が解決しない場合は、こちらの手順に従ってください。記事

これでvga_switcherooアクティブになったので、次のようにアクティブなGPUをオフにできます。

# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

専用カードを有効にして

# echo DIS > /sys/kernel/debug/vgaswitcheroo/switch

または統合カードの有効化

# echo IGD > /sys/kernel/debug/vgaswitcheroo/switch

引用する

関連情報