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
。そうですか?しかし、古典的なインストールプロセスに従った後、
- 排他ドライバーの削除
- 設置
bumblebee
とmesa-utils
梱包 - インストールする仮想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.conf
Optimusが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