optirun
コマンドを、埋め込みグラフィックスユニットとディスクリートグラフィックス処理ユニットを備えたコンピューター上のFOSSNouveauドライバーで動作させようとしています。 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のWebサイトページ によると、私のGPUはNV108(GK208)Nouveauドライバーでサポートされています。だから、optirun
コマンドで動作させることができない理由はありませんよね?ただし、従来のインストール手順に従った後
bumblebee
&mesa-utils
パッケージをインストールします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にDriver=nouveau
のNouveauドライバーを強制的に使用させようとしました。違いはありません。
最初に、コマンドの実行中に別のエラーが発生しました。
[ERROR]Cannot access secondary GPU - error: [XORG] (EE)
[ERROR]Failed to load module "mouse" (module does not exist, 0)
不足しているパッケージxserver-xorg-input-mouse
をインストールして修正しました。
研究を続けることで、ようやく問題の解決策を見つけました。
PrimusおよびOptimusプログラムは、Nvidia独自のドライバーで使用するように作られています。したがって、Nouveauドライバーと一緒に使用することはお勧めしません。 Linuxカーネルには、追加のプログラムをインストールせずにGPUを切り替えることができるツールがあります。問題のツールは VGA Switcheroo です。このツールはオープンソースドライバーでのみ機能することに注意してください。
システムでツールがデフォルトでアクティブになっていない可能性があるため、いくつかの操作が必要になります。ツールが有効になっているかどうかを確認するには、次のスイッチファイルを探します。
# 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