「NVIDIA Optimus」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(英語版と同期していくつかの項目を削除)
(カテゴリを修正)
 
(4人の利用者による、間の33版が非表示)
1行目: 1行目:
[[Category:グラフィック]]
+
[[Category:グラフィック]]
 
[[en:NVIDIA Optimus]]
 
[[en:NVIDIA Optimus]]
  +
[[es:NVIDIA Optimus]]
  +
[[fr:NVIDIA Optimus]]
 
[[ru:NVIDIA Optimus]]
 
[[ru:NVIDIA Optimus]]
 
[[zh-hans:NVIDIA Optimus]]
 
[[zh-hans:NVIDIA Optimus]]
 
{{Related articles start}}
 
{{Related articles start}}
  +
{{Related|PRIME}}
 
{{Related|Bumblebee}}
 
{{Related|Bumblebee}}
 
{{Related|Nouveau}}
 
{{Related|Nouveau}}
 
{{Related|NVIDIA}}
 
{{Related|NVIDIA}}
  +
{{Related|nvidia-xrun}}
  +
{{Related|外付け GPU}}
 
{{Related articles end}}
 
{{Related articles end}}
   
NVIDIA Optimus は Intel の内蔵 GPU とディスクリート NVIDIA GPU をノートパソコンに組み込んで利用できるようにする技術です。Arch Linux で Optimus グラフィックを動作させるには、以下で示すような複雑な手順が必要となります。複数の方法が存在します:
+
[[Wikipedia:NVIDIA Optimus|NVIDIA Optimus]]内蔵 GPU とディスクリート NVIDIA GPU をノート PC に組み込み、さらにノート PC からアクセスできるようにする技術です。
   
  +
== 利用可能な方法 ==
* BIOS でどちらかのデバイスを無効化する。NVIDIA デバイスを無効化した場合、バッテリーの持ちがよくなりますが、BIOS によっては無効化できない場合もあり GPU 切り替えができなくなります。
 
   
  +
複数の方法が利用できます:
* プロプライエタリの NVIDIA ドライバーに含まれている公式の Optimus サポートを使う。NVIDIA のパフォーマンスを最大限発揮できますが、GPU 切り替えは不可能で、さらにオープンソースドライバーよりもバグが多く存在します。
 
   
  +
* [[#内蔵グラフィックスのみを使う]] - NVIDIA GPU は完全に電源オフになるので、消費電力を削減できます。
* オープンソースの nouveau ドライバーの PRIME 機能を使う。GPU 切り替え・省電力設定が可能ですがプロプライエタリの NVIDIA ドライバーと比べるとパフォーマンスで劣ります。また、スリープやハイバネートで問題が発生する場合があります。
 
  +
* [[#NVIDIA グラフィックスのみを使う]] - 内蔵グラフィックスよりも優れたパフォーマンスを発揮します。ただし、より多くの電力を消費します (これはモバイル端末においては喜ばしいことではありません)。この方法は、[[#optimus-manager を使う|optimus-manager]] と [[#nvidia-xrun を使う|nvidia-xrun]] と同じ基本プロセスを利用しており、より自動化されたアプローチを取る前にトラブルシューティングや一般的な機能検証のためにこの方法を利用するべきです。
 
  +
* 両方を使う (必要なときに NVIDIA GPU を使用し、それ以外のときは電源を落として電力を節約する):
* サードパーティの Bumblebee プログラムを使って Optimus のような機能を実現する。GPU 切り替えが可能で省電力機能も使えますが別個に設定が必要です。
 
  +
** [[#PRIME レンダーオフロードを使う]] - NVIDIA が公式にサポートしている方法です。
 
  +
** [[#optimus-manager を使う]] - 1つのコマンドでグラフィックスを切り替えます (適用させるにはログインし直さなければなりません)。また、PRIME レンダーオフロードとのハイブリッドモードもサポートしています。NVIDIA GPU の性能を最大限に引き出し、使用していない場合はオフにします。1.4 リリース以降では、AMD と NVIDIA の組み合わせもサポートされています。
以下では上記の方法を説明します。
 
  +
** [[#nvidia-xrun を使う]] - NVIDIA グラフィックスを使用して別の TTY で別の X セッションを実行します。NVIDIA GPU の性能を最大限に引き出し、使用していない場合はオフにします。
 
  +
** [[#Bumblebee を使う]] - 指定したアプリケーションに対しては NVIDIA グラフィックスを使用し、その他のアプリケーションに対しては Intel グラフィックスを使えるようにすることで、Windows ライクな機能を提供します。しかし、重大なパフォーマンスの問題を抱えています。
== いくつかの方法 ==
 
  +
** [[#switcheroo-control を使う]] - Bumblebee と似ていますが、特に [[GNOME]] ユーザ向けです。[[デスクトップエントリ]]内で専用 GPU を優先するかどうかを指定できるようになり、さらに右クリックメニューから手動で NVIDIA GPU でアプリケーションを実行できるようになります。
 
  +
** [[#nouveau を使う]] - (プロプライエタリな NVIDIA ドライバと比較して) パフォーマンスが劣っており、スリープやハイバネートの問題が発生することがあります。最新の NVIDIA GPU では動作しません。
* [https://wiki.archlinux.org/title/NVIDIA_Optimus#Use_Intel_graphics_only インテルグラフィックスのみを使用] -NVIDIA GPU の電源は完全にオフになるため、消費電力を節約できます。
 
  +
** [[#EnvyControl を使う]] - optimus-manager と似ていますが、多くの設定を必要とせず、バックグラウンドでデーモンを実行する必要もありませんし、GNOME を使用している場合でもパッチ適用済みの GDM バージョンをインストールする必要はありません。
* [https://wiki.archlinux.jp/index.php/NVIDIA_Optimus#nvidia_.E3.82.92.E4.BD.BF.E3.81.86 nvidia グラフィックスのみを使用] -インテルグラフィックスよりもパフォーマンスは向上しますが、より多くのバッテリを消費します (モバイルデバイスには適していません) 。これは、 [[#Using optimus-manager|optimus-manager]] および [[#Using nvidia-xrun|nvidia-xrun]] オプションと同じ基本プロセスを利用しており、より自動化されたアプローチの1つを選択する前に、一般的な機能のトラブルシューティングおよび検証する必要があります。
 
  +
** [[#NVidia-eXec を使う]] - Bumblebee と似ていますが、パフォーマンスが低下することはありません。Xorg と Wayland の両方で動作します。このパッケージは実験的であり、現在、GNOME/GDM においてテストされています。
* 両方を使用する (必要に応じて NVIDIA GPU を使用し、電源を切ったままにして電力を節約する) :
 
  +
** [[#nvidia-switch を使う]] - nvidia-xrun と似ていますが、TTY を変更する必要はありません。切り替えは、ディスプレイマネージャでログインとログアウトをすることにより、行われます。このパッケージは、Debian ベースのシステムでテストされていますが、nvidia-xrun のように、全ての Linux システムで動作するはずです。
** [https://wiki.archlinux.org/title/NVIDIA_Optimus#Using_PRIME_render_offload PRIME render offloadを使用] -NVIDIA が公式にサポートしている方法です。
 
** [https://wiki.archlinux.org/title/NVIDIA_Optimus#Using_PRIME_render_offload optimus-manager の使用] -1つのコマンドでグラフィックスを切り替えます (有効にするにはログアウトとログインが必要です) NVIDIA GPU の性能を最大限に引き出し、使用していない場合はオフにします。1.4リリース以降では、AMD と NVIDIA の組み合わせもサポートされています。
 
** [https://wiki.archlinux.org/title/NVIDIA_Optimus#Using_PRIME_render_offload nvidia-xrun を使用] -NVIDIA グラフィックスを使用して別の TTY で別の X セッションを実行します。NVIDIA GPU の性能を最大限に引き出し、使用していない場合はオフにします。
 
** [https://wiki.archlinux.org/title/NVIDIA_Optimus#Using_PRIME_render_offload Bumblebee の使用] -インテルのグラフィックスを他のすべてのものに使用しながら、選択したアプリケーションをNVIDIA のグラフィックスで実行できるようにすることで、Windows に似た機能を提供します。しかし、パフォーマンスに重大な問題があります。
 
** [https://wiki.archlinux.org/title/NVIDIA_Optimus#Using_PRIME_render_offload nouveau を使用] -独自の NVIDIA ドライバと比較してパフォーマンスが低く、スリープと休止状態で問題が発生する可能性があります。最新の NVIDIA GPU では動作しません。
 
   
 
{{Note|これらのオプションはすべて相互に排他的です。1つの方法をテストして別の方法を選択する場合は、別の方法を試行する前に、1つの方法に従って行われた構成変更を必ず元に戻す必要があります。そうしないと、ファイルの競合や未定義の動作が発生する可能性があります。}}
 
{{Note|これらのオプションはすべて相互に排他的です。1つの方法をテストして別の方法を選択する場合は、別の方法を試行する前に、1つの方法に従って行われた構成変更を必ず元に戻す必要があります。そうしないと、ファイルの競合や未定義の動作が発生する可能性があります。}}
   
== インテルのグラフィックスのみを使 ==
+
== 内蔵グラフィックスのみを使 ==
 
特定の GPU のみに切り替えずに使用する場合は、システムの BIOS でオプションを確認してください。いずれかのカードを無効にするオプションがあるはずです。ラップトップによっては、個別のカードを無効にすることしかできない場合や、その逆の場合がありますが、カードのうちの1つだけを使用する予定があるかどうかを確認してください。
 
 
BIOS が Nvidia グラフィックスを無効にできない場合は、Linux カーネル自体から無効にできます。[[ハイブリッドグラフィック#ディスクリート GPU の完全な電源オフ]] を参照してください。
 
 
=== レンダリングプロバイダを切り替えずに CUDA を使用 ===
 
   
  +
GPU を切り替えることに興味はなく、特定の GPU のみを使いたい場合は、システムの BIOS で関連するオプションを確認してください。いずれかのカードを無効にするオプションがあるはずです。ラップトップによっては、ディスクリートカードを有効化したり無効化したりしかできないことがあります。とはいえ、どれかのカードだけを使用する予定であるかを確認することは、損ではありません。
CUDA は、NVIDIA グラフィックスにレンダリングを切り替えることなく使用できます。CUDA アプリケーションを起動する前に、NVIDIA カードの電源が入っていることを確認するだけです。詳細については、 [[ハイブリッドグラフィック#ディスクリート GPU の完全な電源オフ]] を参照してください。
 
   
  +
BIOS で Nvidia グラフィックスを無効にできない場合は、Linux カーネル自体から無効にできます。[[ハイブリッドグラフィック#ディスクリート GPU の完全な電源オフ]] を参照してください。
これで、CUDA アプリケーションを起動すると、必要なすべてのカーネルモジュールが自動的にロードされます。CUDA の使用後に NVIDIA カードの電源を切る前に、まず {{ic|nvidia}} カーネルモジュールをアンロードする必要があります。
 
   
  +
=== レンダリングプロバイダを切り替えずに CUDA を使う ===
#rmmod nvidia_uvm
 
#rmmod NVIDIA
 
   
  +
CUDA は、NVIDIA グラフィックスにレンダリングを切り替えることなく使用できます。CUDA アプリケーションを起動する前に、NVIDIA カードの電源が入っていることを確認するだけです。詳細については、[[ハイブリッドグラフィック#ディスクリート GPU の完全な電源オフ]] を参照してください。
=== CUDA のみで NVIDIA を利用 ===
 
   
レンダリングを NVIDIA 側行わなくとも [[CUDA]] が利用できます。CUDA アプリケーション起動NVIDIA GPU 電源を入れておけば、アプリケーションの起動時必要なカーネルモジュールが読み込まれます
+
これCUDA アプリケーション起動すると、必要なすべてのカーネルモジュールが自動的ロードされます。CUDA の使用後に NVIDIA カードの電源を切る前、まず {{ic|nvidia}} カーネルモジュールをアンロードする必要あります:
   
なお、終了後 NVIDIA GPU の電源を切る前には、{{ic|nvidia_uvm}} と {{ic|nvidia}} カーネルモジュールをアンロードしておいてください。
 
 
# rmmod nvidia_uvm
 
# rmmod nvidia_uvm
 
# rmmod nvidia
 
# rmmod nvidia
   
[[ハイブリッドグラフィック#ディクリート GPU 完全な電源オフ]] も参照してください。
+
== NVIDIA グラフィックスのみを使う ==
   
  +
プロプライエタリな NVIDIA ドライバは、プライマリレンダリングプロバイダとして設定することができます。[[NVIDIA#DRM カーネルモード設定]] を有効化することによって prime sync を有効化しない限り、顕著なスクリーンティアリングの問題が発生します (詳細は [https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/] を参照)。ディスクリート GPU を使用することができ ([https://www.phoronix.com/scan.php?page=article&item=nouveau-410-blob&num=1 2017年1月]現在)、パフォーマンスにおいて nouveau ドライバよりも顕著な優位性を持っています。
== nvidia を使う ==
 
   
  +
まず、[[NVIDIA]] ドライバと {{Pkg|xorg-xrandr}} を[[インストール]]してください。そして、{{ic|/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf}} を設定してください。この設定ファイルのオプションは、このセットアップとの互換性を提供するために、パッケージによって提供されている {{ic|/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf}} と組み合わされます。
[[NVIDIA|プロプライエタリの NVIDIA ドライバー]]は nouveau ドライバーのような動的な切り替えはサポートしていません (つまり NVIDIA デバイスしか使用できません)。また、NVIDIA は画面にティアリングが発生する問題を認識していますが未だに修正がなされていません。そのかわり、ディスクリート GPU を利用して nouveau ドライバーよりも高い性能を発揮することができます (2013年10月現在)。
 
   
  +
{{Note|セットアップによっては EDID ファイルによる nvidia ドライバーのディスプレイの値の自動検出がされなくなることがあります。回避策は [[#解像度や画面スキャンが正しく認識されず Xorg.log に EDID のエラーが表示される]] を見て下さい。}}
まず {{Pkg|nvidia}} と {{Pkg|xorg-xrandr}} パッケージをインストールしてください。
 
   
  +
{{hc|/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf|
そして、{{ic|xorg.conf}} を設定します。NVIDIA カードの PCI アドレスを知る必要があるので、次のコマンドを実行してください:
 
  +
Section "OutputClass"
 
  +
Identifier "intel"
$ lspci | grep -E "VGA|3D"
 
  +
MatchDriver "i915"
 
  +
Driver "modesetting"
NVIDIA と書かれた行の最初の7文字が PCI アドレスです。例えば {{ic|01:00.0}} などと表記されます。{{ic|xorg.conf}} では {{ic|#:#:#}} という形式で表記する必要があります。例えば {{ic|01:00.0}} の場合 {{ic|1:0:0}} となります。
 
 
{{Note|セットアップによっては EDID ファイルによる nvidia ドライバーのディスプレイの値の自動検出がされなくなることがあります。解決方法は [[#解像度や画面スキャンが正しく認識されず Xorg.log に EDID のエラーが表示される]] を見て下さい。}}
 
 
バージョン 1.17.2 以降の X.Org サーバーがインストールされているなら ([http://us.download.nvidia.com/XFree86/Linux-x86/358.16/README/randr14.html]):
 
{{hc|/etc/X11/xorg.conf|
 
Section "Module"
 
Load "modesetting"
 
 
EndSection
 
EndSection
   
Section "Device"
+
Section "OutputClass"
 
Identifier "nvidia"
 
Identifier "nvidia"
  +
MatchDriver "nvidia-drm"
 
Driver "nvidia"
 
Driver "nvidia"
BusID "<BusID for NVIDIA device here>"
 
 
Option "AllowEmptyInitialConfiguration"
 
Option "AllowEmptyInitialConfiguration"
  +
Option "PrimaryGPU" "yes"
  +
ModulePath "/usr/lib/nvidia/xorg"
  +
ModulePath "/usr/lib/xorg/modules"
 
EndSection
 
EndSection
 
}}
 
}}
   
次に、{{ic|~/.xinitrc}} の最初に以下の2行を追加してください:
+
次に、{{ic|~/.xinitrc}} の先頭に以下の2行を追加してください:
   
 
{{hc|~/.xinitrc|
 
{{hc|~/.xinitrc|
94行目: 83行目:
 
}}
 
}}
   
そしてドライバをロードするために再起動し、X を起動させます。
+
そしてドライバをロードするために再起動し、X を起動させます。
   
 
ディスプレイの dpi が正しくない場合は以下の行を追加してください:
 
ディスプレイの dpi が正しくない場合は以下の行を追加してください:
100行目: 89行目:
 
xrandr --dpi 96
 
xrandr --dpi 96
   
X の起動時に黒画面が表示される場合、{{ic|~/.xinitrc}} に記述した {{ic|xrandr}} コマンドの後にアンパサンドがないことを確認してください。アンパサンドがある場合、{{ic|xrandr}} コマンドが実行し終える前にウィンドウマネージャが起動してしまうことがあり、そうなると黒画面になってしまいます。
+
X の起動時に黒画面が表示される場合、{{ic|~/.xinitrc}} に記述した 2 つの {{ic|xrandr}} コマンドの後にアンパサンド (アンド記号) がないことを確認してください。アンパサンドがある場合、{{ic|xrandr}} コマンドが実行し終える前にウィンドウマネージャが起動してしまうことがあり、そうなると黒画面になってしまいます。
 
アンパサンドがないのに黒画面になる場合、下の [[#別の設定]] を見て下さい。
 
 
=== 別の設定 ===
 
 
リリース 1.17.1 から、上記の設定を使っていて Xorg-server がクラッシュするようになった場合、{{ic|/etc/X11/xorg.conf}} の Intel デバイスのセクションを以下のように修正してください:
 
 
{{hc|# nano /etc/X11/xorg.conf|
 
Section "Device"
 
Identifier "intel"
 
Driver "modesetting"
 
BusID "PCI:0:2:0"
 
Option "AccelMethod" "sna"
 
#Option "TearFree" "True"
 
#Option "Tiling" "True"
 
#Option "SwapbuffersWait" "True"
 
EndSection}}
 
 
上の設定と同じように、{{ic|BusID}} は ''lspci'' コマンドの出力にあわせて置き換えてください。Intel という文字列が含まれた "VGA compatible controller" の行を検索してください。例:
 
$ lspci | grep VGA
 
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
 
 
{{Tip|最後のコメントアウトされている3つのオプションは (有効にすると) ティアリングを抑える効果がありますが、代わりにパフォーマンスが多少落ちます。{{ic|TearFree}} オプションは {{ic|"sna"}} アクセラレーションでのみ使えるので注意してください。[[Intel Graphics]] を参照。{{ic|"AccelMethod"}} オプションには {{ic|"sna"}} または {{ic|"uxa"}} を使うことができます。Lenovo Ideapad Z50-70 59-432128 での {{ic|xorg.conf}} の例が次のページにあります: [https://pastebin.com/tMtPz381]。}}
 
 
X を起動しても画面に何も表示されない場合、{{ic|/var/log/xorg.conf}} に以下のような行がないか確認してください:
 
 
{{hc|/var/log/xorg.conf|
 
[ 16112.937] (EE) Screen 1 deleted because of no matching config section.
 
}}
 
 
存在する場合、{{ic|/etc/X11/xorg.conf}} の ServerLayout セクションを変更することで問題が解決するかもしれません:
 
 
{{hc|/etc/X11/xorg.conf|
 
Section "ServerLayout"
 
Identifier "layout"
 
Screen '''1''' "nvidia"
 
Inactive "intel"
 
EndSection
 
}}
 
   
 
=== ディスプレイマネージャ ===
 
=== ディスプレイマネージャ ===
   
ディスプレイマネージャを使用する場合、{{ic|~/.xinitrc}} の代わりにディスプレイマネージャのディスプレイ設定スクリプトを作成編集する必要があります。
+
[[ディスプレイマネージャ]]を使用する場合、{{ic|~/.xinitrc}} を使うではなく、使用しているディスプレイマネージャのディスプレイセットアップスクリプトを作成あるいは編集する必要があります。
   
 
==== LightDM ====
 
==== LightDM ====
155行目: 105行目:
 
}}
 
}}
   
スクリプトに実行可能属性を付与:
+
スクリプトに[[実行可能属性]]を付与してください。
   
  +
次に、そのスクリプトを実行するように lightdm を設定します。{{ic|/etc/lightdm/lightdm.conf}} 内の {{ic|[Seat:*]}} セクションを編集してください:
# chmod +x /etc/lightdm/display_setup.sh
 
 
{{ic|/etc/lightdm/lightdm.conf}} の {{ic|[Seat:*]}} セクションを編集してスクリプトを実行するように lightdm を設定:
 
   
 
{{hc|/etc/lightdm/lightdm.conf|output=
 
{{hc|/etc/lightdm/lightdm.conf|output=
166行目: 114行目:
 
}}
 
}}
   
再起動し、ディスプレイマネージャ起動するのを確認してください。
+
そして、再起動し、ディスプレイマネージャ起動させてください。
   
 
==== SDDM ====
 
==== SDDM ====
  +
[[SDDM]] ディスプレイマネージャの場合:
 
  +
[[SDDM]] ディスプレイマネージャの場合 (SDDM は [[KDE]] のデフォルトのディスプレイマネージャです):
   
 
{{hc|/usr/share/sddm/scripts/Xsetup|
 
{{hc|/usr/share/sddm/scripts/Xsetup|
177行目: 126行目:
   
 
==== GDM ====
 
==== GDM ====
[[GDM]] ディスプレイマネージャの場合 {{ic|.desktop}} ファイルを作成します:
 
   
  +
[[GDM]] ディスプレイマネージャの場合、2つの .desktop ファイルを新規作成してください:
{{hc|/usr/share/gdm/greeter/autostart/optimus.desktop|
 
  +
  +
{{hc|/usr/share/gdm/greeter/autostart/optimus.desktop
  +
/etc/xdg/autostart/optimus.desktop|
 
<nowiki>[Desktop Entry]
 
<nowiki>[Desktop Entry]
 
Type=Application
 
Type=Application
188行目: 139行目:
 
}}
 
}}
   
また、GDM が [[GDM#Xorg バックエンドを使う|Xorg バックエンド使う]]ようになっているか確認してください。
+
GDM が [[GDM#Xorg バックエンドを使う|X をデフォルトバックエンドとして使う]]ように設定してください。
   
==== KDM ====
+
=== 3D を確認する ===
   
  +
NVIDIA グラフィックスが使用されているかどうかは、{{Pkg|mesa-utils}} をインストールして次のコマンドを実行することで確認できます:
KDE の [[KDM]] の場合、{{ic|/usr/share/config/kdm/Xsetup}} に xrandr の行を追加してください。
 
 
=== 3D の確認 ===
 
 
NVIDIA グラフィックが使われているかどうかは {{Pkg|mesa-demos}} をインストールして次のコマンドを実行することで確認できます:
 
   
 
$ glxinfo | grep NVIDIA
 
$ glxinfo | grep NVIDIA
202行目: 149行目:
 
=== 詳細情報 ===
 
=== 詳細情報 ===
   
しい情報は、NVIDIA の公式ページ [http://us.download.nvidia.com/XFree86/Linux-x86/370.28/README/randr14.html] を見てさい。
+
情報は、このトピックに関する NVIDIA の公式ページ [http://us.download.nvidia.com/XFree86/Linux-x86/370.28/README/randr14.html] を見てください。
  +
  +
== 切り替え可能なグラフィックスを使う ==
  +
  +
=== PRIME レンダーオフロードを使う ===
  +
  +
これは、切替可能なグラフィックスをサポートする NVIDIA 公式の方法です。
  +
  +
詳細は [[PRIME#PRIME レンダーオフロード]] を参照してください。
  +
  +
=== nouveau を使う ===
  +
  +
グラフィックスの切り替えについては [[PRIME]] を、オープンソースな NVIDIA ドライバについては [[nouveau]] を参照してください。
  +
  +
=== Bumblebee を使う ===
  +
  +
[[Bumblebee]] を参照してください。
  +
  +
=== switcheroo-control を使う ===
  +
  +
[[PRIME#Gnome 統合]] を参照してください。
  +
  +
=== nvidia-xrun を使う ===
  +
  +
[[nvidia-xrun]] を参照してください。
  +
  +
=== optimus-manager を使う ===
  +
  +
上流のドキュメント [https://github.com/Askannz/optimus-manager Optimus-manager] を参照してください。Arch Linux システムにおけるインストールと設定方法の両方がカバーされています。
  +
  +
=== EnvyControl を使う ===
  +
  +
上流のドキュメント [https://github.com/geminis3/envycontrol EnvyControl] を参照してください。インストール方法と使用方法の両方がカバーされています。
  +
  +
=== NVidia-eXec を使う ===
  +
  +
上流のドキュメント [https://github.com/pedro00dk/nvidia-exec NVidia-eXec] を参照してください。インストール方法と使用方法の両方がカバーされています。
  +
  +
=== nvidia-switch を使う ===
  +
  +
上流のドキュメント [https://github.com/nvidiaswitch/nvidia-switch nvidia-switch] を参照してください。インストール方法と使用方法の両方がカバーされています。
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
=== 垂直同期が機能せずティアリングが発生する ===
+
=== ティアリング/垂直同期が機能しない ===
   
解決するには {{pkg|xorg-server}} 1.19 以上、{{pkg|linux}} カーネル 4.5 以上、{{pkg|nvidia}} 370.23 以上が必須です。[[NVIDIA#DRM カーネルモードセッティング]]を有効にすることで PRIME 同期が有効になりティアリングが解消されます。
+
[[NVIDIA#DRM カーネルモード設定|DRM カーネルモード設定]]を有効化してください。これより、PRIME 同期が有効化され、ティアリングが修正されます。
   
しくは公式の [https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/ フォーラムスレッド] を参照してください
+
は公式の[https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/ フォーラムスレッド]で確認できます
   
 
=== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!) ===
 
=== Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!) ===
   
カーネルパラメータに {{ic|1=rcutree.rcu_idle_gp_delay=1}} を追加してください。詳しくは [https://bbs.archlinux.org/viewtopic.php?id=169742 こちら] を参照
+
カーネルパラメータに {{ic|1=rcutree.rcu_idle_gp_delay=1}} を追加してください。オリジナルのトピック [https://github.com/Bumblebee-Project/Bumblebee/issues/455#issuecomment-22497464] と [https://bbs.archlinux.org/viewtopic.php?id=169742] で確認できます
   
 
=== 解像度や画面スキャンが正しく認識されず Xorg.log に EDID のエラーが表示される ===
 
=== 解像度や画面スキャンが正しく認識されず Xorg.log に EDID のエラーが表示される ===
   
nVidia ドライバがディスプレイの EDID を検出できないが原因です。手動で EDID ファイルのパスを指定するか、同じような方法で同一の情報を提供する必要があります。
+
NVIDIA ドライバがディスプレイの EDID を検出できていないことが原因です。手動で EDID ファイルのパスを指定するか、同じような方法で同一の情報を提供する必要があります。
   
EDID ファイルのパスを指定するには {{ic|Xorg.conf}} の nvidia カードの Device セクションを編集して、以下のを追加して適当にパスを置き換えてください:
+
EDID ファイルのパスを指定するには {{ic|Xorg.conf}} の NVIDIA カードの Device セクションを編集して、以下の記述を追加して適当にパスを置き換えてください:
   
 
{{hc|/etc/X11/xorg.conf|
 
{{hc|/etc/X11/xorg.conf|
231行目: 218行目:
 
}}
 
}}
   
Xorg が起動しない場合は、CRT という文字列を全て DFB に置き換えてみて下さい。card0 は intel カードの識別子でディスプレイは LVDS で接続されています。edid バイナリはこのディレクトリに存在します。ハードウェアの構成が異なっている場合、CustomEDID の値も変わってくるので確認するようにしてください。パスの先頭の {{ic|/sys/class/drm}} は変わらないはずです
+
Xorg が起動しない場合は、CRT という文字列を全て DFB に置き換えてみて下さい。
  +
{{ic|card0}} は、LVDS でディスプレイに接続されている Intel カードの識別子です。edid バイナリはこのディレクトリに存在します。ハードウェアの構成が異なっている場合、CustomEDID の値も変わってくるので確認するようにしてください。どのような場合でも、パスは {{ic|/sys/class/drm}} で始まります。
   
または、{{Pkg|read-edid}} などのツールを使って edid を自分で作成して、作成したファイルを使うようにドライバーを設定することもできます。modeline も使えますが、"UseEDID""IgnoreEDID" は変更するようにしてください。
+
または、{{Pkg|read-edid}} などのツールを使って edid を自分で作成して、作成したファイルを使うようにドライバーを設定することもできます。modelines も使えますが、{{ic|UseEDID}}{{ic|IgnoreEDID}} は変更するようにしてください。
  +
  +
=== 解像度が間違っているが、EDID エラー無し ===
  +
  +
''nvidia-xconfig'' を使っていると、不適切な情報 (特に、利用可能な解像度を制限するモニタのリフレッシュレート) が {{ic|xorg.conf}} 内に生成されてしまうことがあります。{{ic|HorizSync}}/{{ic|VertRefresh}} の行をコメントアウトしてみてください。これで解決するならば、この記事で言及していないその他すべての項目も削除できるでしょう。
   
 
=== ロックアップ問題 (lspci がフリーズ) ===
 
=== ロックアップ問題 (lspci がフリーズ) ===
  +
GTX 965M が搭載された最新のノートパソコンで (Bumblebee などで) bbswitch や nouveau を使ったときに lspci がフリーズしたり、サスペンドが失敗したり、シャットダウン時に止まってしまったり、optirun でフリーズが発生することがあります。
 
  +
症状: lspci がハングする。システムのサスペンドが失敗する。シャットダウン時にハングする。optirun がハングする。
  +
  +
対象: GTX 965M やそれと似たようなカードを搭載した新しいノート PC で、bbswitch (例: Bumblebee 経由) や nouveau を使用している時。
   
 
dGPU 電源リソースがオンになっている場合、ACPI コードで失敗してフリーズが起こることがあります ([https://bugzilla.kernel.org/show_bug.cgi?id=156341 カーネルバグ 156341])。
 
dGPU 電源リソースがオンになっている場合、ACPI コードで失敗してフリーズが起こることがあります ([https://bugzilla.kernel.org/show_bug.cgi?id=156341 カーネルバグ 156341])。
   
  +
nouveau を使用している際に、ランタイムの電源管理を無効化すると、nouveau が電源状態を変更しなくなるため、この問題を回避できます。
解決方法については [https://github.com/Bumblebee-Project/Bumblebee/issues/764#issuecomment-234494238 こちら] を見てください。また、{{ic|1=acpi_osi="!Windows 2015"}} や {{ic|1=acpi_osi=! acpi_osi="Windows 2009"}} を[[カーネルパラメータ]]に追加して起動することで解決することもあります。
 
  +
ランタイムの電源管理を無効化するには、カーネルパラメータに {{ic|1=nouveau.runpm=0}} を追加してください。
  +
  +
モデル固有の既知の解決策については、[https://github.com/Bumblebee-Project/Bumblebee/issues/764#issuecomment-234494238 この issue] を見てください。
  +
その他の場合、{{ic|1=acpi_osi="!Windows 2015"}} や {{ic|1=acpi_osi=! acpi_osi="Windows 2009"}} を[[カーネルパラメータ]]に追加して起動することで解決することもあります。(あなたのノート PC を先の issue で報告することを検討してください)
  +
  +
=== ノート PC/NVIDIA Optimus で画面が見つからない ===
  +
  +
以下のような出力がないか調べてください:
  +
  +
{{hc|$ lspci {{!}} grep VGA|
  +
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02)
  +
01:00.0 VGA compatible controller: nVidia Corporation Device 0df4 (rev a1)
  +
}}
  +
  +
NVIDIA ドライバ 319.12 Beta [https://www.nvidia.com/object/linux-display-amd64-319.12-driver.html] と Linux カーネル 3.9 以降では、NVIDIA ドライバは Optimus のサポートを提供します。
  +
  +
他の解決策は、[[Intel]] ドライバをインストールして、Intel ドライバにスクリーンを処理させることです。3D ソフトウェアを使用したい場合は、[[Bumblebee]] を使ってそのソフトウェアを実行し、NVIDIA カードを使うようにソフトウェアに指示する必要があります。
  +
  +
=== ランダムなフリーズ "(EE) NVIDIA(GPU-0): WAIT" ===
  +
  +
内蔵 AMD カードを搭載していて、専用 NVIDIA カードのみを使用するように設定している環境でプロプライエタリな (NVIDIA) ドライバを使用していると、最大 10 秒フリーズし、Xorg のログに以下のエラーが出力されると報告されています:
  +
  +
[ 219.796] (EE) NVIDIA(GPU-0): WAIT (2, 8, 0x8000, 0x0002e1c4, 0x0002e1cc)
  +
[ 226.796] (EE) NVIDIA(GPU-0): WAIT (1, 8, 0x8000, 0x0002e1c4, 0x0002e1cc)
  +
  +
これはまだ根本的な原因ではありませんが、内蔵カードと専用カードが Xorg とやり取りする過程で競合が発生することと関連があるようです。
  +
  +
回避策は、切り替え可能なグラフィックスを使うことです。詳細は [[PRIME#PRIME レンダーオフロード]] を参照してください。
  +
  +
=== optimus-manager で "No Devices detected" ===
  +
  +
'lspci' が PCI ドメインを最初の出力列に出力してしまい、''optimus-manager'' が {{ic|BusID}} を複数のノート PC モデルにマッピングしようとして、{{ic|optimus-manager}} によって生成されたファイルが壊れてしまうことがあります。
  +
  +
GUI のロードが終わらない黒画面が発生する場合や、GUI が部分的にロードされたがコンソールにアーティファクトが発生する場合、Xorg が {{ic|(EE) - No Devices detected}} でクラッシュする場合には、[https://github.com/Askannz/optimus-manager/issues/471#issuecomment-1315628537 上流の GitHub ページ]に回避策とバグレポートがあります.
  +
  +
=== Xorg: マウスを動かしたときにだけ外部モニタが更新される ===
  +
  +
この問題に対する回避策は、iGPU の Xorg ドライバをアンインストールすることです (例: {{Pkg|xf86-video-amdgpu}} や {{Pkg|xf86-video-intel}}) [https://bbs.archlinux.org/viewtopic.php?id=284651]。この方法は、外部モニタのポート (HDMI/DP/USB-C) が NVIDIA dGPU に直接接続されている限り、うまく行くはずです。
  +
  +
{{Tip|デスクトップの挙動が奇妙になる場合があります (例: 仮想デスクトップを切り替えたり、Alt-Tab を使用したときに外部モニタの画像がフリーズするなど)。これは、ノート PC のモニタを無効化することで回避できます。}}
  +
  +
=== 消費電力が低いままになる (TDP) ===
  +
  +
ドライバのバージョン 530.41 から、カードの消費電力が低く制限された状態に固定されてしまうというケースが発生し始めました ([https://github.com/NVIDIA/open-gpu-kernel-modules/issues/483 GitHub issue 483] を参照)。NVIDIA ドライバは、{{ic|nvidia-smi}} を使用して電力制限を手動で設定する機能を無効化していますが、多くのノート PC で低消費電力状態に固定されてしまい、パフォーマンスが悪化してしまいます。
  +
  +
(Ampere 世代及びそれ以降で) この問題を回避するには、[https://download.nvidia.com/XFree86/Linux-x86_64/535.54.03/README/dynamicboost.html DynamicBoost] を有効化する {{ic|nvidia-powerd.service}} を[[起動/有効化]]してください。
  +
  +
{{TranslationStatus|NVIDIA Optimus|2023-08-20|785744}}

2024年9月3日 (火) 22:39時点における最新版

関連記事

NVIDIA Optimus は、内蔵 GPU とディスクリート NVIDIA GPU をノート PC に組み込み、さらにノート PC からアクセスできるようにする技術です。

利用可能な方法

複数の方法が利用できます:

  • #内蔵グラフィックスのみを使う - NVIDIA GPU は完全に電源オフになるので、消費電力を削減できます。
  • #NVIDIA グラフィックスのみを使う - 内蔵グラフィックスよりも優れたパフォーマンスを発揮します。ただし、より多くの電力を消費します (これはモバイル端末においては喜ばしいことではありません)。この方法は、optimus-managernvidia-xrun と同じ基本プロセスを利用しており、より自動化されたアプローチを取る前にトラブルシューティングや一般的な機能検証のためにこの方法を利用するべきです。
  • 両方を使う (必要なときに NVIDIA GPU を使用し、それ以外のときは電源を落として電力を節約する):
    • #PRIME レンダーオフロードを使う - NVIDIA が公式にサポートしている方法です。
    • #optimus-manager を使う - 1つのコマンドでグラフィックスを切り替えます (適用させるにはログインし直さなければなりません)。また、PRIME レンダーオフロードとのハイブリッドモードもサポートしています。NVIDIA GPU の性能を最大限に引き出し、使用していない場合はオフにします。1.4 リリース以降では、AMD と NVIDIA の組み合わせもサポートされています。
    • #nvidia-xrun を使う - NVIDIA グラフィックスを使用して別の TTY で別の X セッションを実行します。NVIDIA GPU の性能を最大限に引き出し、使用していない場合はオフにします。
    • #Bumblebee を使う - 指定したアプリケーションに対しては NVIDIA グラフィックスを使用し、その他のアプリケーションに対しては Intel グラフィックスを使えるようにすることで、Windows ライクな機能を提供します。しかし、重大なパフォーマンスの問題を抱えています。
    • #switcheroo-control を使う - Bumblebee と似ていますが、特に GNOME ユーザ向けです。デスクトップエントリ内で専用 GPU を優先するかどうかを指定できるようになり、さらに右クリックメニューから手動で NVIDIA GPU でアプリケーションを実行できるようになります。
    • #nouveau を使う - (プロプライエタリな NVIDIA ドライバと比較して) パフォーマンスが劣っており、スリープやハイバネートの問題が発生することがあります。最新の NVIDIA GPU では動作しません。
    • #EnvyControl を使う - optimus-manager と似ていますが、多くの設定を必要とせず、バックグラウンドでデーモンを実行する必要もありませんし、GNOME を使用している場合でもパッチ適用済みの GDM バージョンをインストールする必要はありません。
    • #NVidia-eXec を使う - Bumblebee と似ていますが、パフォーマンスが低下することはありません。Xorg と Wayland の両方で動作します。このパッケージは実験的であり、現在、GNOME/GDM においてテストされています。
    • #nvidia-switch を使う - nvidia-xrun と似ていますが、TTY を変更する必要はありません。切り替えは、ディスプレイマネージャでログインとログアウトをすることにより、行われます。このパッケージは、Debian ベースのシステムでテストされていますが、nvidia-xrun のように、全ての Linux システムで動作するはずです。
ノート: これらのオプションはすべて相互に排他的です。1つの方法をテストして別の方法を選択する場合は、別の方法を試行する前に、1つの方法に従って行われた構成変更を必ず元に戻す必要があります。そうしないと、ファイルの競合や未定義の動作が発生する可能性があります。

内蔵グラフィックスのみを使う

GPU を切り替えることに興味はなく、特定の GPU のみを使いたい場合は、システムの BIOS で関連するオプションを確認してください。いずれかのカードを無効にするオプションがあるはずです。ラップトップによっては、ディスクリートカードを有効化したり無効化したりしかできないことがあります。とはいえ、どれかのカードだけを使用する予定であるかを確認することは、損ではありません。

BIOS で Nvidia グラフィックスを無効にできない場合は、Linux カーネル自体から無効にできます。ハイブリッドグラフィック#ディスクリート GPU の完全な電源オフ を参照してください。

レンダリングプロバイダを切り替えずに CUDA を使う

CUDA は、NVIDIA グラフィックスにレンダリングを切り替えることなく使用できます。CUDA アプリケーションを起動する前に、NVIDIA カードの電源が入っていることを確認するだけです。詳細については、ハイブリッドグラフィック#ディスクリート GPU の完全な電源オフ を参照してください。

これで、CUDA アプリケーションを起動すると、必要なすべてのカーネルモジュールが自動的にロードされます。CUDA の使用後に NVIDIA カードの電源を切る前に、まず nvidia カーネルモジュールをアンロードする必要があります:

# rmmod nvidia_uvm
# rmmod nvidia

NVIDIA グラフィックスのみを使う

プロプライエタリな NVIDIA ドライバは、プライマリレンダリングプロバイダとして設定することができます。NVIDIA#DRM カーネルモード設定 を有効化することによって prime sync を有効化しない限り、顕著なスクリーンティアリングの問題が発生します (詳細は [1] を参照)。ディスクリート GPU を使用することができ (2017年1月現在)、パフォーマンスにおいて nouveau ドライバよりも顕著な優位性を持っています。

まず、NVIDIA ドライバと xorg-xrandrインストールしてください。そして、/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf を設定してください。この設定ファイルのオプションは、このセットアップとの互換性を提供するために、パッケージによって提供されている /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf と組み合わされます。

ノート: セットアップによっては EDID ファイルによる nvidia ドライバーのディスプレイの値の自動検出がされなくなることがあります。回避策は #解像度や画面スキャンが正しく認識されず Xorg.log に EDID のエラーが表示される を見て下さい。
/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
Section "OutputClass"
    Identifier "intel"
    MatchDriver "i915"
    Driver "modesetting"
EndSection

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "PrimaryGPU" "yes"
    ModulePath "/usr/lib/nvidia/xorg"
    ModulePath "/usr/lib/xorg/modules"
EndSection

次に、~/.xinitrc の先頭に以下の2行を追加してください:

~/.xinitrc
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

そしてドライバをロードするために再起動し、X を起動させます。

ディスプレイの dpi が正しくない場合は以下の行を追加してください:

xrandr --dpi 96

X の起動時に黒画面が表示される場合、~/.xinitrc に記述した 2 つの xrandr コマンドの後にアンパサンド (アンド記号) がないことを確認してください。アンパサンドがある場合、xrandr コマンドが実行し終える前にウィンドウマネージャが起動してしまうことがあり、そうなると黒画面になってしまいます。

ディスプレイマネージャ

ディスプレイマネージャを使用する場合、~/.xinitrc を使うのではなく、使用しているディスプレイマネージャのディスプレイセットアップスクリプトを作成あるいは編集する必要があります。

LightDM

LightDM ディスプレイマネージャの場合:

/etc/lightdm/display_setup.sh
#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

スクリプトに実行可能属性を付与してください。

次に、そのスクリプトを実行するように lightdm を設定します。/etc/lightdm/lightdm.conf 内の [Seat:*] セクションを編集してください:

/etc/lightdm/lightdm.conf
[Seat:*]
display-setup-script=/etc/lightdm/display_setup.sh

そして、再起動し、ディスプレイマネージャを起動させてください。

SDDM

SDDM ディスプレイマネージャの場合 (SDDM は KDE のデフォルトのディスプレイマネージャです):

/usr/share/sddm/scripts/Xsetup
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

GDM

GDM ディスプレイマネージャの場合、2つの .desktop ファイルを新規作成してください:

/usr/share/gdm/greeter/autostart/optimus.desktop
/etc/xdg/autostart/optimus.desktop
[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer

GDM が X をデフォルトバックエンドとして使うように設定してください。

3D を確認する

NVIDIA グラフィックスが使用されているかどうかは、mesa-utils をインストールして次のコマンドを実行することで確認できます:

$ glxinfo | grep NVIDIA

詳細情報

詳細情報は、このトピックに関する NVIDIA の公式ページ [2] を見てください。

切り替え可能なグラフィックスを使う

PRIME レンダーオフロードを使う

これは、切替可能なグラフィックスをサポートする NVIDIA 公式の方法です。

詳細は PRIME#PRIME レンダーオフロード を参照してください。

nouveau を使う

グラフィックスの切り替えについては PRIME を、オープンソースな NVIDIA ドライバについては nouveau を参照してください。

Bumblebee を使う

Bumblebee を参照してください。

switcheroo-control を使う

PRIME#Gnome 統合 を参照してください。

nvidia-xrun を使う

nvidia-xrun を参照してください。

optimus-manager を使う

上流のドキュメント Optimus-manager を参照してください。Arch Linux システムにおけるインストールと設定方法の両方がカバーされています。

EnvyControl を使う

上流のドキュメント EnvyControl を参照してください。インストール方法と使用方法の両方がカバーされています。

NVidia-eXec を使う

上流のドキュメント NVidia-eXec を参照してください。インストール方法と使用方法の両方がカバーされています。

nvidia-switch を使う

上流のドキュメント nvidia-switch を参照してください。インストール方法と使用方法の両方がカバーされています。

トラブルシューティング

ティアリング/垂直同期が機能しない

DRM カーネルモード設定を有効化してください。これにより、PRIME 同期が有効化され、ティアリングが修正されます。

詳細は公式のフォーラムスレッドで確認できます。

Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!)

カーネルパラメータに rcutree.rcu_idle_gp_delay=1 を追加してください。オリジナルのトピックは [3][4] で確認できます。

解像度や画面スキャンが正しく認識されず Xorg.log に EDID のエラーが表示される

NVIDIA ドライバがディスプレイの EDID を検出できていないことが原因です。手動で EDID ファイルへのパスを指定するか、同じような方法で同一の情報を提供する必要があります。

EDID ファイルへのパスを指定するには Xorg.conf の NVIDIA カードの Device セクションを編集して、以下の記述を追加して適当にパスを置き換えてください:

/etc/X11/xorg.conf
Section "Device"
       	Option		"ConnectedMonitor" "CRT-0"
       	Option		"CustomEDID" "CRT-0:/sys/class/drm/card0-LVDS-1/edid"
	Option		"IgnoreEDID" "false"
	Option		"UseEDID" "true"
EndSection

Xorg が起動しない場合は、CRT という文字列を全て DFB に置き換えてみて下さい。 card0 は、LVDS でディスプレイに接続されている Intel カードの識別子です。edid バイナリはこのディレクトリに存在します。ハードウェアの構成が異なっている場合、CustomEDID の値も変わってくるので確認するようにしてください。どのような場合でも、パスは /sys/class/drm で始まります。

または、read-edid などのツールを使って edid を自分で作成して、作成したファイルを使うようにドライバーを設定することもできます。modelines も使えますが、UseEDIDIgnoreEDID は変更するようにしてください。

解像度が間違っているが、EDID エラー無し

nvidia-xconfig を使っていると、不適切な情報 (特に、利用可能な解像度を制限するモニタのリフレッシュレート) が xorg.conf 内に生成されてしまうことがあります。HorizSync/VertRefresh の行をコメントアウトしてみてください。これで解決するならば、この記事で言及していないその他すべての項目も削除できるでしょう。

ロックアップ問題 (lspci がフリーズ)

症状: lspci がハングする。システムのサスペンドが失敗する。シャットダウン時にハングする。optirun がハングする。

対象: GTX 965M やそれと似たようなカードを搭載した新しいノート PC で、bbswitch (例: Bumblebee 経由) や nouveau を使用している時。

dGPU 電源リソースがオンになっている場合、ACPI コードで失敗してフリーズが起こることがあります (カーネルバグ 156341)。

nouveau を使用している際に、ランタイムの電源管理を無効化すると、nouveau が電源状態を変更しなくなるため、この問題を回避できます。 ランタイムの電源管理を無効化するには、カーネルパラメータに nouveau.runpm=0 を追加してください。

モデル固有の既知の解決策については、この issue を見てください。 その他の場合、acpi_osi="!Windows 2015"acpi_osi=! acpi_osi="Windows 2009"カーネルパラメータに追加して起動することで解決することもあります。(あなたのノート PC を先の issue で報告することを検討してください)

ノート PC/NVIDIA Optimus で画面が見つからない

以下のような出力がないか調べてください:

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation Device 0df4 (rev a1)

NVIDIA ドライバ 319.12 Beta [5] と Linux カーネル 3.9 以降では、NVIDIA ドライバは Optimus のサポートを提供します。

他の解決策は、Intel ドライバをインストールして、Intel ドライバにスクリーンを処理させることです。3D ソフトウェアを使用したい場合は、Bumblebee を使ってそのソフトウェアを実行し、NVIDIA カードを使うようにソフトウェアに指示する必要があります。

ランダムなフリーズ "(EE) NVIDIA(GPU-0): WAIT"

内蔵 AMD カードを搭載していて、専用 NVIDIA カードのみを使用するように設定している環境でプロプライエタリな (NVIDIA) ドライバを使用していると、最大 10 秒フリーズし、Xorg のログに以下のエラーが出力されると報告されています:

[   219.796] (EE) NVIDIA(GPU-0): WAIT (2, 8, 0x8000, 0x0002e1c4, 0x0002e1cc)
[   226.796] (EE) NVIDIA(GPU-0): WAIT (1, 8, 0x8000, 0x0002e1c4, 0x0002e1cc)

これはまだ根本的な原因ではありませんが、内蔵カードと専用カードが Xorg とやり取りする過程で競合が発生することと関連があるようです。

回避策は、切り替え可能なグラフィックスを使うことです。詳細は PRIME#PRIME レンダーオフロード を参照してください。

optimus-manager で "No Devices detected"

'lspci' が PCI ドメインを最初の出力列に出力してしまい、optimus-managerBusID を複数のノート PC モデルにマッピングしようとして、optimus-manager によって生成されたファイルが壊れてしまうことがあります。

GUI のロードが終わらない黒画面が発生する場合や、GUI が部分的にロードされたがコンソールにアーティファクトが発生する場合、Xorg が (EE) - No Devices detected でクラッシュする場合には、上流の GitHub ページに回避策とバグレポートがあります.

Xorg: マウスを動かしたときにだけ外部モニタが更新される

この問題に対する回避策は、iGPU の Xorg ドライバをアンインストールすることです (例: xf86-video-amdgpuxf86-video-intel) [6]。この方法は、外部モニタのポート (HDMI/DP/USB-C) が NVIDIA dGPU に直接接続されている限り、うまく行くはずです。

ヒント: デスクトップの挙動が奇妙になる場合があります (例: 仮想デスクトップを切り替えたり、Alt-Tab を使用したときに外部モニタの画像がフリーズするなど)。これは、ノート PC のモニタを無効化することで回避できます。

消費電力が低いままになる (TDP)

ドライバのバージョン 530.41 から、カードの消費電力が低く制限された状態に固定されてしまうというケースが発生し始めました (GitHub issue 483 を参照)。NVIDIA ドライバは、nvidia-smi を使用して電力制限を手動で設定する機能を無効化していますが、多くのノート PC で低消費電力状態に固定されてしまい、パフォーマンスが悪化してしまいます。

(Ampere 世代及びそれ以降で) この問題を回避するには、DynamicBoost を有効化する nvidia-powerd.service起動/有効化してください。

翻訳ステータス: このページは en:NVIDIA Optimus の翻訳バージョンです。最後の翻訳日は 2023-08-20 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。