「NVIDIA」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(1版 をインポートしました)
(同期)
 
(5人の利用者による、間の92版が非表示)
1行目: 1行目:
[[Category:グラフィック]]
+
[[Category:グラフィック]]
 
[[Category:X サーバー]]
 
[[Category:X サーバー]]
[[cs:NVIDIA]]
 
 
[[de:Nvidia]]
 
[[de:Nvidia]]
 
[[en:NVIDIA]]
 
[[en:NVIDIA]]
 
[[es:NVIDIA]]
 
[[es:NVIDIA]]
  +
[[pt:NVIDIA]]
[[fa:اِن‌ویدیا]]
 
[[fr:Nvidia]]
 
[[it:NVIDIA]]
 
[[nl:NVIDIA]]
 
 
[[ru:NVIDIA]]
 
[[ru:NVIDIA]]
[[tr:Nvidia]]
+
[[zh-hans:NVIDIA]]
[[zh-CN:NVIDIA]]
 
 
{{Related articles start}}
 
{{Related articles start}}
  +
{{Related|NVIDIA/ヒントとテクニック}}
{{Related2|Nouveau|Nouveau}}
 
  +
{{Related|NVIDIA/トラブルシューティング}}
{{Related2|Bumblebee|Bumblebee}}
 
  +
{{Related|Nouveau}}
 
{{Related|NVIDIA Optimus}}
 
{{Related|NVIDIA Optimus}}
{{Related2|Xorg|Xorg}}
+
{{Related|PRIME}}
  +
{{Related|Bumblebee}}
  +
{{Related|nvidia-xrun}}
  +
{{Related|Xorg}}
  +
{{Related|Vulkan}}
 
{{Related articles end}}
 
{{Related articles end}}
   
この記事は[http://www.nvidia.com NVIDIA] の''プロプライエタリ''なグラフィックカードドライバのインストールと設定をカバーしています。オープンソースのドライバについての情報に関しては、 [[Nouveau|Nouveau]] を見てください。NVIDIA Optimus技術が利用できるラッップを使っている場合は [[NVIDIA Optimus]] を見て下さい。
+
この記事は公式の [https://www.nvidia.com NVIDIA] グラフィックカードドライバをカバーしています。コミュニティによるオープンソースのドライバに関しては、[[Nouveau]] を見てください。Intel/NVIDIA のハイブリッドグクスを搭載しているノーパソコンを使っている場合は、代わりに [[NVIDIA Optimus]] を見て下さい。
   
 
== インストール ==
 
== インストール ==
   
  +
{{Warning|NVIDIA のウェブサイトで提供されているパッケージを通して NVIDIA ドライバをインストールすることは避けてください。[[pacman]] 経由でインストールすれば、システムをアップデートした際にドライバもアップデートすることができます。}}
以下は、標準の {{Pkg|linux}} または {{Pkg|linux-lts}} パッケージを使っている人向けの指示です。カスタムカーネルを使っている場合のセットアップは、[[#Alternate install: カスタムカーネル|次のサブセクション]]まで読み飛ばしてください。
 
   
  +
{{Note|[[ハイブリッドグラフィックス]]のあるシステム上でデュアルブートする場合は、Windows またはサードパーティのアプリで ([https://www.asus.com/support/faq/1043747/#a14 ASUS Eco mode] のような) ''Eco mode'' を有効化すると NVIDIA のディスクリート GPU が完全に無効化され、検出されなくなります。}}
{{Tip|NVIDIA ドライバをインストールするときは NVIDIA のサイトで提供されているパッケージよりも [[pacman|pacman]] を使った方が基本的に有益です。なぜなら、そうすることで、システムをアップデートした際にドライバもアップデートすることができるからです。}}
 
{{Warning|ドライバーのバージョンを混合させると動作しません。最新のブランチと、古いブランチの32ビット libGL パッケージを使用することはできません。}}
 
   
  +
まず、[https://nouveau.freedesktop.org/wiki/CodeNames/ nouveau wiki のコードネームに関するページ]で、以下のコマンドで入手した GPU カードのモデル名/公式名に対応するファミリ名を探してください:
1. あなたの使っているグラフィックカードが何かわからない場合は、次を実行することで確認してください:
 
:{{bc|<nowiki>$ lspci -k | grep -A 2 -i "VGA"</nowiki>}}
 
   
  +
$ lspci -k | grep -A 2 -E "(VGA|3D)"
2. NVIDIA の [http://www.nvidia.com/Download/index.aspx ドライバーダウンロードサイト] を見てあなたのカードに適切なドライバーのバージョンを確認して下さい。また、NVIDIA の [http://www.nvidia.com/object/IO_32667.html レガシーなカードリスト] や [http://nouveau.freedesktop.org/wiki/CodeNames nouveau wiki のコードネームのページ] も使って下さい。
 
   
3. あなたのカードに合わせて切なドライバをインストールしてください:
+
次に、使用しているカードに適したドライバをインストールしてください:
:* GeForce 400 シリーズとそれよりも新しいカード [NVCx 以降] の場合は、[[Official Repositories|公式リポジトリ]]にある {{Pkg|nvidia}} または {{Pkg|nvidia-lts}} パッケージをインストールしてください。
 
:* 2006年から2010年の GeForce 8000/9000 と 100-300 シリーズのカード [NV5x, NV8x, NV9x, NVAx] の場合は、[[Official Repositories|公式リポジトリ]]にある {{Pkg|nvidia-340xx}} または {{Pkg|nvidia-340xx-lts}} パッケージをインストールしてください。
 
:* 2004年から2006年の GeForce 6000/7000 シリーズのカード [NV4x と NV6x] の場合は、[[Official Repositories|公式リポジトリ]]にある {{Pkg|nvidia-304xx}} または {{Pkg|nvidia-304xx-lts}} パッケージをインストールしてください。
 
:* さらに古いカードの場合は、[[#サポートがないドライバー|サポートがないドライバー]]を見て下さい。
 
:* 一番最新の GPU モデルを使う場合、安定版のドライバーでは新しく導入された機能をサポートしていないために、[[Arch User Repository|Arch User Repository]] から {{AUR|nvidia-beta}} をインストールする必要があるかもしれません。
 
:マシンが64ビット環境で32ビットの OpenGL サポートが必要な場合は、[[multilib|multilib]] リポジトリから相当する ''lib32'' パッケージもインストールしてください (例: {{Pkg|lib32-nvidia-libgl}}, {{Pkg|lib32-nvidia-340xx-libgl}}, {{Pkg|lib32-nvidia-304xx-libgl}})。
 
   
  +
{{Note|{{Pkg|dkms}} をインストールするつもりであるならば、[[Dynamic Kernel Module Support#インストール]] を読んでください。}}
4. 再起動してください。{{Pkg|nvidia}} パッケージには ''nouveau'' モジュールをブラックリスト化するファイルが含まれているため、再起動が必須になります。
 
   
  +
{| class="wikitable"
ドライバーをインストールしたら、続けて[[#設定|設定]]へと進んでください。
 
  +
|-
  +
! GPU ファミリ
  +
! ドライバ
  +
! 状態
  +
|-
  +
| [https://nouveau.freedesktop.org/CodeNames.html#NV160 Turing (NV160/TUXXX)] 及びそれ以降
  +
| {{Pkg|linux}} には {{Pkg|nvidia-open}} <br/> その他のカーネルには {{Pkg|nvidia-open-dkms}}
  +
| [https://developer.nvidia.com/blog/nvidia-transitions-fully-towards-open-source-gpu-kernel-modules/ 上流で推奨されています]。<br/> 現行。サポートあり。<sup>1</sup>
  +
|-
  +
| [https://nouveau.freedesktop.org/CodeNames.html#NV110 Maxwell (NV110/GMXXX)] から <br/>[https://nouveau.freedesktop.org/CodeNames.html#NV190 Ada Lovelace (NV190/ADXXX)]
  +
| {{Pkg|linux}} には {{Pkg|nvidia}} <br/> {{Pkg|linux-lts}} には {{Pkg|nvidia-lts}} <br/> その他のカーネルには {{Pkg|nvidia-dkms}}
  +
| 現行。サポートあり。<sup>1</sup>
  +
|-
  +
| [https://nouveau.freedesktop.org/CodeNames.html#NVE0 Kepler (NVE0/GKXXX)]
  +
| {{AUR|nvidia-470xx-dkms}}
  +
| rowspan="4" | レガシー。サポートなし。<sup>2,3</sup>
  +
|-
  +
| [https://nouveau.freedesktop.org/CodeNames.html#NVC0 Fermi (NVC0/GF1XX)]
  +
| {{AUR|nvidia-390xx-dkms}}
  +
|-
  +
| [https://nouveau.freedesktop.org/CodeNames.html#NV50 Tesla (NV50/G80-90-GT2XX)]
  +
| {{AUR|nvidia-340xx-dkms}}
  +
|-
  +
| [https://nouveau.freedesktop.org/CodeNames.html#NV40 Curie (NV40/G70)] 及びそれ以前
  +
| パッケージはもはや存在しません。
  +
|}
   
  +
# これらのパッケージが動作しない場合 (たいていはハードウェアが新しいことが原因です)、{{AUR|nvidia-open-beta}} が、新しいハードウェアをサポートしている新しいドライバのバージョンを提供しているかもしれません。
=== サポートがないドライバー ===
 
  +
# [https://edc.intel.com/content/www/us/en/design/ipla/software-development-platforms/client/platforms/alder-lake-desktop/12th-generation-intel-core-processors-datasheet-volume-1-of-2/007/indirect-branch-tracking/ Indirect Branch Tracking] との互換性が無いため、[https://www.intel.com/content/www/us/en/newsroom/opinion/intel-cet-answers-call-protect-common-malware-threats.html 第11世代及びそれ以降]の Intel CPU を搭載しているシステムで Linux 5.18 (及びそれ以降) においてこれらのドライバは動作しない場合があります。Indirect Branch Tracking は、[[ブートローダー]]から {{ic|1=ibt=off}} [[カーネルパラメータ]]を設定することにより、無効化することができます。ただし、このセキュリティ機能は[https://lwn.net/Articles/889475/ エクスプロイト手法の一種を緩和する]役割があるので注意してください。
  +
# NVIDIA はもはやこれらのカードをアクティブにサポートしておらず、これらのドライバは[https://nvidia.custhelp.com/app/answers/detail/a_id/3142/ 現在の Xorg バージョンを公式にはサポートしていない場合があります]。[[nouveau]] ドライバを使うほうが簡単かもしれません。しかし、NVIDIA のレガシーなドライバは依然として利用可能であり、3D パフォーマンスまたは安定性に関して優れているかもしれません。
   
  +
32ビットアプリケーションのサポートに関しては、対応する ''lib32'' パッケージも [[multilib]] リポジトリからインストールしてください (例: {{Pkg|lib32-nvidia-utils}})。
GeForce 5 FX シリーズ以前のカードを使っている場合、Nvidia はあなたの使っているカードのドライバーのサポートを既に打ち切っています。それらのドライバーは[http://nvidia.custhelp.com/app/answers/detail/a_id/3142/ 最新バージョンの Xorg をサポートしません]。最新の Xorg を古いカードでもサポートしている、[[nouveau|nouveau]] ドライバーを使うほうが楽だということになります。
 
   
  +
{{ic|/etc/mkinitcpio.conf}} 内の {{ic|HOOKS}} 配列から {{ic|kms}} を削除し、その後 [[Initramfs を再生成する|initramfs を再生成]]してください。こうすることで、initramfs に {{ic|nouveau}} モジュールが含まれないようにして、カーネルがこのモジュールを初期ブート中に読み込めないようにします。{{Pkg|nvidia-utils}} パッケージには、再起動後に {{ic|nouveau}} モジュールをブラックリスト化するファイルが含まれています。
しかしながら、Nvidia のドライバーの方が 3D のパフォーマンスや安定性では上だということもあるでしょう。Nvidia のドライバーを使いたい場合は、[[Arch User Repository|Arch User Repository]] からインストールすることできます (古いバージョンの Xorg も一緒に):
 
   
  +
{{Note|[[#Wayland 設定|Wayland]] を使用している場合は、[[#DRM カーネルモード設定]] に書かれてあることをするまで再起動するべきではありません。さもないと、再起動後に黒画面になってしまうかもしれません。}}
* GeForce 5 FX シリーズのカード [NV30-NV36] の場合は、{{AUR|nvidia-173xx}} パッケージをインストールしてください。最後にサポートされた Xorg のバージョンは 1.15 です。
 
* GeForce 2/3/4 MX/Ti シリーズのカード [NV11, NV17-NV28] の場合は、{{AUR|nvidia-96xx}} パッケージをインストールしてください。最後にサポートされた Xorg のバージョンは 1.12 です。
 
   
  +
ドライバーをインストールしたら、[[#Xorg 設定]] または [[#Wayland 設定]] へと進んでください。
{{Tip|レガシーな nvidia-96xx と nvidia-173xx ドライバーは非公式の [http://pkgbuild.com/~bgyorgy/city.html <nowiki>[city] リポジトリ</nowiki>] からもインストールできます (ここからインストールする時は依存関係の制限をスキップしないことを強く推奨します)。}}
 
   
=== Alternate install: カスタムカーネル ===
+
=== カスタムカーネル ===
   
  +
使用中のカーネルで {{ic|1=CONFIG_DRM_SIMPLEDRM=y}} となっていることを確認してください。そして、{{ic|CONFIG_DEBUG_INFO_BTF}} を使用している場合、[[PKGBUILD]] で以下が必要です (カーネル 5.16 以降):
まず最初に、ABS システムがどのような働きをするのかを他の記事をいくつか読んで知ると良いでしょう:
 
   
  +
install -Dt "$builddir/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids
* [[Arch Build System|ABS]] の本記事
 
* [[makepkg|makepkg]] についての記事
 
* [[Creating Packages|パッケージの作成]]についての記事
 
   
  +
=== DRM カーネルモード設定 ===
{{Note|[[Arch User Repository|AUR]] にある {{AUR|nvidia-all}} パッケージによってカスタムカーネルや複数のカーネルと一緒に簡単に使えるようにすることもできます。}}
 
   
  +
NVIDIA は [[カーネルモード設定#KMS の遅延開始|KMS の自動遅延読み込み]]をサポートしていないため、Wayland コンポジタを正しく動作させたり、[[Xorg#Rootless Xorg|Rootless Xorg]] を利用できるようにするには DRM ([[Wikipedia:Direct Rendering Manager|Direct Rendering Manager]]) [[カーネルモード設定]]を有効化する必要があります。
以下の内容は、[[Arch Build System|ABS]] を使用して NVIDIA ドライバのカスタムパッケージを作るための簡単なチュートリアルです:
 
   
  +
{{Pkg|nvidia-utils}} 560.35.03-5 から DRM はデフォルトで有効化されています。[https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/1b02daa2ccca6a69fa4355fb5a369c2115ec3e22] それより古いドライバにおいては、{{ic|nvidia_drm}} モジュールに対して {{ic|1=modeset=1}} [[カーネルモジュールパラメータ]]を設定してください。
[[Official Repositories|公式リポジトリ]]から {{Pkg|abs}} を[[Pacman|インストール]]してツリーを生成します:
 
# abs
 
一般ユーザーで、新しいパッケージを作るための一時ディレクトリを作成します:
 
$ mkdir -p ~/abs
 
{{ic|nvidia}} パッケージのディレクトリのコピーを作成します:
 
$ cp -r /var/abs/extra/nvidia/ ~/abs/
 
{{ic|nvidia}} のビルドをする一時ディレクトリの中へ移動します:
 
$ cd ~/abs/nvidia
 
{{ic|nvidia.install}} と {{ic|PKGBUILD}} が正しいカーネルバージョン変数を含むように、それらのファイルを編集する必要があります。
 
   
  +
DRM が本当に有効化されているか調べるには、以下のコマンドを実行してください:
カスタムカーネルを実行している間に、適切なカーネルとローカルバージョン名を得ましょう:
 
$ uname -r
 
# nvidia.install 内の、{{ic|EXTRAMODULES<nowiki>=</nowiki>'extramodules-3.4-ARCH'}} 変数をカスタムカーネルのバージョンで置き換えます。例えば、{{ic|EXTRAMODULES<nowiki>=</nowiki>'extramodules-3.4.4'}} や {{ic|EXTRAMODULES<nowiki>=</nowiki>'extramodules-3.4.4-custom'}} のようにしてください。これの値はカーネルのバージョンやローカルバージョンのテキスト・数字によります。このファイルの中のすべてのバージョン番号に対して置換を行ってください。
 
# PKGBUILD にある、{{ic|_extramodules<nowiki>=</nowiki>extramodules-3.4-ARCH}} 変数を変更して、上記と同じように、適切なバージョンに直して下さい。
 
# 複数のカーネルを並列に (デフォルトの -ARCH カーネルとカスタムカーネルが並ぶように) システムにインストールしているのならば、PKGBUILD の {{ic|pkgname<nowiki>=</nowiki>nvidia}} 変数を一意な識別子、例えば nvidia-2622 や nvidia-custom へと変更します。こうすることで、カスタム nvidia モジュールは異なるパッケージ名となり、オリジナルのパッケージを上書きしないようになるので、両方のカーネルが NVIDIA モジュールを使えるようにできます。また、{{ic|package()}} 内にある {{ic|/usr/lib/modprobe.d/nvidia.conf}} の nouveau モジュールをブラックリスト化する行をコメントアウトしてください (二度する必要はありません)。
 
   
  +
# cat /sys/module/nvidia_drm/parameters/modeset
それから次を実行します:
 
$ makepkg -ci
 
{{ic|-c}} オプションは、パッケージのビルドが終わった後にファイルを片付けるように makepkg に指示します。{{ic|-i}} は makepkg が自動で pacman を起動して作成したパッケージをインストールするように指示します。
 
   
  +
正しく設定されていれば、このコマンドは {{ic|N}} ではなく {{ic|Y}} と出力するはずです。
=== カーネルの更新時に NVIDIA モジュールを自動的にリコンパイルする ===
 
   
  +
{{Note|[[カーネル#公式サポートカーネル|Arch で公式にサポートされているカーネル]]は {{ic|simpledrm}} を有効化します。しかし、NVIDIA ドライバは、{{ic|1=nvidia_drm.fbdev}} が無効化されている/利用できない場合 (バージョン 545 より前)、{{ic|efifb}} または {{ic|vesafb}} を必要とします。}}
これは [[Arch User Repository|AUR]] の {{AUR|nvidia-hook}} によって可能です。モジュールのソースをインストールする必要があります: {{AUR|nvidia-dkms}}。'''nvidia-hook''' で、'''linux-headers''' パッケージの更新が終わった後に [[mkinitcpio|mkinitcpio]] の '''nvidia hook''' によって'自動リコンパイル'が行われます。{{ic|/etc/mkinitcpio.conf}} の HOOKS に 'nvidia' を追加してください。
 
   
  +
==== 早期ロード ====
このフックは '''dkms''' コマンドを呼び出して新しいカーネルのバージョンにあわせて NVIDIA モジュールを更新します。
 
   
  +
基本的な機能については先のカーネルパラメータを追加するだけで十分でしょう。可能な限り早い時にロードさせたい場合や、スタートアップ時に問題 ({{ic|nvidia}} カーネルモジュールが[[ディスプレイマネージャ]]のあとにロードされてしまうなど) が発生する場合には、{{ic|nvidia}}、{{ic|nvidia_modeset}}、{{ic|nvidia_uvm}} そして {{ic|nvidia_drm}} を initramfs に追加することができます。
{{Note|
 
  +
* この機能を使う場合は linux (もしくは他のカーネルの) パッケージのインストールプロセスをよく見ることが重要です。nvidia hook は何か問題が発生したときにメッセージを表示します。
 
  +
===== mkinitcpio =====
* これを手動でやりたい場合は [[Dynamic Kernel Module Support#使用方法|arch wiki の dkms]] のセクションを見て下さい。
 
  +
  +
[[mkinitcpio]] initramfs を使う場合、[[mkinitcpio#MODULES]] に従ってモジュールを追加してください。
  +
  +
モジュールを initramfs に追加した場合、{{Pkg|nvidia}} ドライバーがアップデートされるたびに [[mkinitcpio]] を実行することを忘れないようにしてください。この手順を自動化する方法については [[#Pacman フック]]をご覧ください。
  +
  +
===== Booster =====
  +
  +
[[Booster]] を使う場合、[[Booster#モジュールの早期ロード]]をご覧ください。
  +
  +
===== dracut =====
  +
  +
[[dracut]] を使用する場合は、[[dracut#カーネルモジュールの早期ロード]] に従ってください。
  +
  +
===== Pacman フック =====
  +
  +
{{Note|カスタムの pacman フックが必要になるのは、ビルド済みのカーネルモジュールが同梱されているパッケージに対してのみです。{{ic|*-dkms}} パッケージは、更新時に ''mkinitcpio'' が自動的に実行されるので、このようなカスタムの pacman フックは必要ありません。}}
  +
  +
NVIDIA ドライバをアップグレードした後に [[initramfs]] をアップデートすることを忘れないように、以下のような [[pacman フック]]を利用することができます:
  +
  +
{{hc|/etc/pacman.d/hooks/nvidia.hook|2=
  +
[Trigger]
  +
Operation=Install
  +
Operation=Upgrade
  +
Operation=Remove
  +
Type=Package
  +
# インストールした NVIDIA のパッケージをアンコメントしてください
  +
Target=nvidia
  +
#Target=nvidia-open
  +
#Target=nvidia-lts
  +
# 他のカーネルを使う場合は以下を適宜変更してください
  +
Target=linux
  +
  +
[Action]
  +
Description=Updating NVIDIA module in initcpio
  +
Depends=mkinitcpio
  +
When=PostTransaction
  +
NeedsTargets
  +
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux*) exit 0; esac; done; /usr/bin/mkinitcpio -P'
 
}}
 
}}
   
  +
{{Note|上記の {{ic|Exec}} の行が複雑なのは {{ic|nvidia}} と {{ic|linux}} の両方がアップデートされた場合に ''mkinitcpio'' が何度も実行されるのを防ぐためです。このことが気にならないのであれば、{{ic|1=Target=linux}} と {{ic|NeedsTargets}} の行を削除して、{{ic|Exec}} の行は {{ic|1=Exec=/usr/bin/mkinitcpio -P}} のように単純化させることができます。}}
== 設定 ==
 
  +
  +
=== ビデオデコードのハードウェアアクセラレーション ===
  +
  +
VDPAU によるビデオデコードのアクセラレーションは GeForce 8 シリーズ及びそれ以降のカードでサポートされています。NVDEC によるビデオデコードのアクセラレーションは Fermi (~400 シリーズ) 及びそれ以降のカードでサポートされています。詳しくは [[ハードウェアビデオアクセラレーション]] をご覧ください。
  +
  +
=== NVENC によるビデオエンコードのハードウェアアクセラレーション ===
  +
  +
NVENC は {{ic|nvidia_uvm}} モジュールと、関連するデバイスノードが {{ic|/dev}} 下に作成されることを要求します。
   
  +
最新のドライバーパッケージは、自動的にデバイスノードを作成する [[udev ルール]]を提供するので、追加の操作は必要ありません。
おそらく、ドライバをインストールした後に Xorg サーバーの設定ファイルを作成する必要はありません。[[Xorg#起動|テスト]]を実行することで Xorg サーバーが設定ファイルなしで問題なく機能するかどうか調べられます。しかし、様々な設定を調節するために設定ファイル ({{ic|/etc/X11/xorg.conf}} よりも {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}} が好ましい) を作成することが要求されるかもしれません。この設定は NVIDIA の Xorg 設定ツールで生成することが可能で、あるいは、手動でも作成できます。手動で作成する場合、([[Xorg|Xorg]] サーバーに基本的なオプションだけを与えるという) 最小設定だけを行うこともできますし、逆に、Xorg によって自動検知されたり事前に設定されたオプションを無視する設定を多数含めてもかまいません。
 
{{Note|1.8.x から Xorg は {{ic|/etc/X11/xorg.conf.d/}} 下の設定ファイルを使うようになっています - [[#高度な設定: 20-nvidia.conf|高度な設定]]のセクションを確認してください。}}
 
   
  +
古いドライバ (例えば、{{AUR|nvidia-340xx-dkms}}) を使用している場合、デバイスノードを作成する必要があります。{{ic|nvidia-modprobe}} ユーティリティを実行するとデバイスノードが自動的に作成されます。{{ic|/etc/udev/rules.d/70-nvidia.rules}} を作成して {{ic|nvidia-modprobe}} を自動的に実行させることができます:
=== 最小設定 ===
 
   
  +
{{hc|/etc/udev/rules.d/70-nvidia.rules|2=
{{ic|20-nvidia.conf}} (もしくは廃止された {{ic|xorg.conf}}) の基本的な設定ブロックは以下のようになります:
 
  +
ACTION=="add", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/usr/bin/nvidia-modprobe -c 0 -u"}}
  +
  +
== Wayland 設定 ==
  +
  +
Xwayland に関しては [[Wayland#Xwayland]] を見てください。
  +
  +
その他の設定オプションについては、それぞれの[[Wayland#コンポジタ|コンポジタ]]の wiki ページやドキュメントを見てください。
  +
  +
{{Note|バージョン 555.xx より前のドライバを使用している場合や、{{ic|linux-drm-syncobj-v1}} プロトコルによって Explicit Sync をサポートしていない Wayland コンポジタを使用している場合、ネイティブの Wayland アプリと Xwayland アプリの両方でちらつき、フレーム順序の狂いなどの問題が発生する可能性があります。}}
  +
  +
=== 基本的なサポート ===
  +
  +
{{ic|nvidia_drm}} モジュールの重要なカーネルパラメータは2つあります。
  +
  +
==== modeset ====
  +
  +
全ての Wayland 構成において {{ic|modeset}} を有効化することは必須です。
  +
  +
サポートされているドライバを使用している場合はデフォルトで有効化されています。将来的には、上流においてもこれがデフォルトとなる予定です。
  +
  +
サポートの無いドライバについては、{{ic|modeset}} を手動で有効化する必要があります。詳細は [[#DRM カーネルモード設定]] と [[Wayland#要件]] を見てください。
  +
  +
==== fbdev ====
  +
  +
一部の Wayland 構成においては {{ic|fbdev}} を有効化する必要があります。
  +
  +
サポートされているドライバを使用している場合はデフォルトで有効化されています。将来的には、上流においてもこれがデフォルトとなる予定です。
  +
  +
Linux 6.11 以降においてこれは厳しい要件ですが、これが仕様なのかバグなのかは現在明らかになっていません。詳細は [https://forums.developer.nvidia.com/t/drm-fbdev-wayland-presentation-support-with-linux-kernel-6-11-and-above/307920] を参照してください。
  +
  +
これは [[#DRM カーネルモード設定|modesetting パラメータ]]と同じようにして設定することができます。ただし、以下のコマンドの出力は modesetting と異なります:
  +
  +
# cat /sys/module/nvidia_drm/parameters/fbdev
  +
  +
{{ic|fbdev}} が設定されていない場合は、このコマンドは {{ic|N}} を出力するのではなく、ファイルが存在しないことを示すエラーが発生します。
  +
  +
=== サスペンドのサポート ===
  +
  +
Wayland でのサスペンドは X よりもデフォルトの設定の問題が発生しやすいです。詳細は [[NVIDIA/ヒントとテクニック#サスペンド後にビデオメモリを保持する]] を参照してください。
  +
  +
GDM を使用している場合は、[[GDM#Wayland とプロプライエタリな NVIDIA ドライバ]] も参照してください。
  +
  +
== Xorg 設定 ==
  +
  +
プロプライエタリな NVIDIA グラフィックドライバは Xorg サーバの設定ファイルを必要としません。[[Xorg#起動|X を起動]]してみて、Xorg サーバが設定ファイル無しで正しく機能するかを確認することができます。しか、様々な設定を調整するために設定ファイル ({{ic|/etc/X11/xorg.conf}} よりも {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}} を優先して使用してください) を作成する必要があるかもしれません。この設定は、NVIDIA Xorg 設定ツールによって生成することができますし、手動で作成することもできます。手動で作成した場合、([[Xorg]] サーバに基本的なオプションのみを与えると言う意味で) 最小の設定にすることができますし、あるいは、Xorg の自動検出されたオプションや事前設定されたオプションをバイパスできる設定を含めることもできます。
  +
  +
{{Tip|その他の設定オプションは、[[NVIDIA/トラブルシューティング]] を見てください。}}
  +
  +
=== 自動設定 ===
  +
  +
NVIDIA のパッケージには、Xorg サーバの設定ファイル ({{ic|xorg.conf}}) を作成するための自動設定ツールが含まれています。次のコマンドで実行できます:
  +
  +
# nvidia-xconfig
  +
  +
このコマンドは {{ic|/etc/X11/xorg.conf}} を自動検出し、現在のハードウェアに応じてそのファイルを作成 (すでに存在する場合は編集) します。
  +
  +
DRI のインスタンスがある場合は、コメントアウトされているか確認してください:
  +
  +
# Load "dri"
  +
  +
デフォルトの深度、水平同期、垂直リフレッシュ、そして解像度が問題ないか {{ic|/etc/X11/xorg.conf}} を二重にチェックしてください。
  +
  +
=== nvidia-settings ===
  +
  +
{{Pkg|nvidia-settings}} は CLI または GUI を使って様々なオプションを設定することができるツールです。何もオプションをつけずに {{ic|nvidia-settings}} を実行すると GUI が起動します。CLI のオプションについては {{man|1|nvidia-settings}} を見てください。
  +
  +
{{Pkg|nvidia-settings}} の CLI/GUI は非 root なユーザとして実行でき、''nvidia-settings Configuration'' タブにある ''Save Current Configuration'' オプションで設定を {{ic|~/.nvidia-settings-rc}} に保存できます。
  +
  +
現在のユーザで {{ic|~/.nvidia-settings-rc}} をロードするには:
  +
  +
$ nvidia-settings --load-config-only
  +
  +
起動時に毎回このコマンドを実行させるには[[自動起動]]を見てください。
  +
  +
{{Note|
  +
* {{ic|nvidia-settings}} から変更を加えると [[Xorg]] が起動しなくなったりクラッシュするようになったりすることがあります。生成された {{ic|~/.nvidia-settings-rc}} と [[Xorg]] のファイルの両方/片方を調整するか削除することで普通に起動できるようになるはずです。
  +
* [[Cinnamon]] デスクトップは {{ic|nvidia-settings}} を通して作成された設定を上書きしてしまうことがあります。[[Cinnamon#Cinnamon が xorg.conf 内の設定を上書きしてしまう|Cinnamon の起動時の挙動を変更して、設定を上書きしないようにする]]ことができます。}}
  +
  +
=== 手動設定 ===
  +
  +
設定ファイルを編集することで、([[#自動設定|自動的に]]、または [[#NVIDIA settings|nvidia-settings]]によって有効化できない) いくつかの微調整をすることができます。変更を適用する前に Xorg サーバーを再起動する必要があります。
  +
  +
その他の詳細やオプションについては [https://download.nvidia.com/XFree86/Linux-x86_64/560.35.03/README/ NVIDIA Accelerated Linux Graphics Driver README and Installation Guide] をご覧ください。
  +
  +
==== 最小設定 ====
  +
  +
{{ic|20-nvidia.conf}} (もしくは非推奨の {{ic|xorg.conf}}) の基本的な設定ブロックは以下のようになります:
   
 
{{hc|/etc/X11/xorg.conf.d/20-nvidia.conf|
 
{{hc|/etc/X11/xorg.conf.d/20-nvidia.conf|
 
Section "Device"
 
Section "Device"
Identifier "Nvidia Card"
+
Identifier "NVIDIA Card"
 
Driver "nvidia"
 
Driver "nvidia"
 
VendorName "NVIDIA Corporation"
 
VendorName "NVIDIA Corporation"
Option "NoLogo" "true"
+
BoardName "GeForce GTX 1050 Ti"
#Option "UseEDID" "false"
 
#Option "ConnectedMonitor" "DFP"
 
# ...
 
 
EndSection
 
EndSection
 
}}
 
}}
   
  +
==== 起動時のロゴを無効化 ====
{{Tip|nouveau からアップグレードする場合は {{ic|/etc/mkinitcpio.conf}} から "{{ic|nouveau}}" を削除してください。オープン・プロプライエタリのドライバを頻繁に切り替えるのならば、[[#NVIDIA と nouveau ドライバーを切り替える|NVIDIA と nouveau ドライバーの切り替え]]を見て下さい。}}
 
   
  +
古いドライバ ({{AUR|nvidia-340xx-dkms}}) を使用している場合、X の起動時に表示される NVIDIA ロゴスプラッシュスクリーンを無効化しておいたほうがいいかもしれません。{{ic|Device}} セクション内に {{ic|"NoLogo"}} オプションを追加してください:
=== 自動設定 ===
 
   
  +
Option "NoLogo" "1"
NVIDIA のパッケージには Xorg サーバーの設定ファイル ({{ic|xorg.conf}}) を作成するための自動設定ツールが含まれています。次のコマンドで実行できます:
 
# nvidia-xconfig
 
   
  +
==== モニター検出をオーバーライド ====
このコマンドは現在のハードウェアを自動検知して {{ic|/etc/X11/xorg.conf}} の設定を作成(既に存在する場合は編集)します。
 
   
  +
{{ic|Device}} セクション内の {{ic|"ConnectedMonitor"}} オプションにより、 X サーバーが起動した時にモニター検出をオーバーライドできます。これにより、起動時間を大幅に減らせるかもしれません。利用可能なオプション: アナログ接続用の {{ic|"CRT"}}、デジタルモニター用の {{ic|"DFP"}}、テレビ用の {{ic|"TV"}}。
DRI のインスタンスがある場合は、コメントアウトされているか確認してください:
 
# Load "dri"
 
デフォルトの depth, horizontal sync, vertical refresh, resolutions が問題ないか {{ic|/etc/X11/xorg.conf}} を再確認してください。
 
   
  +
以下の行は起動時のチェックをバイパスし、モニターを DFP として認識することを NVIDIA ドライバーに強制します:
{{Warning|Xorg-server 1.8 ではまだ正しく動作しない可能性があります。}}
 
  +
  +
Option "ConnectedMonitor" "DFP"
  +
  +
{{Note|たとえディスプレイが薄型パネルであろうと、アナログ15ピン VGA 接続に対しては "CRT" を使用してください。"DFP" は DVI や HDMI、DisplayPort のデジタル接続のみを意図しています。}}
  +
  +
==== 輝度調整を有効化 ====
  +
  +
{{Out of date|時代遅れの可能性あり[https://lists.archlinux.org/archives/list/aur-requests@lists.archlinux.org/thread/GXJG7D3ALUQKOE2DT4XCL4UXQUFDDSEC/]。上流のパッケージも古いようです。}}
  +
  +
以下をカーネルパラメータに追加してください:
  +
  +
nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1
  +
  +
あるいは、以下を {{ic|Device}} セクション内に追加してください:
  +
  +
Option "RegistryDwords" "EnableBrightnessControl=1"
  +
  +
もし、この設定で輝度調整がまだ機能しない場合は、{{AUR|nvidia-bl-dkms}} をインストールしてみてください。
  +
  +
{{Note|{{AUR|nvidia-bl-dkms}} をインストールすることにより、バックライト輝度調整用の {{ic|/sys/class/backlight/nvidia_backlight/}} インターフェイスが提供されます。しかし、システムが {{ic|/sys/class/backlight/acpi_video0/}} に対してバックライト制御の変更を発行し続けるかもしれません。この場合の1つの解決策は、例えば、''inotifywait'' を使用して {{ic|acpi_video0/brightness}} の変更を監視し、それを変換して {{ic|nvidia_backlight/brightness}} に対して書き込むことです。[[バックライト#sysfs を変更しても明るさが変更されない]] をご覧ください。}}
  +
  +
==== SLI を有効化 ====
  +
  +
{{Warning|GTX 10xx シリーズ (1080、1070、1060 など) 以降は 2-way SLI のみがサポートされます。3-way や 4-way SLI は CUDA/OpenCL アプリケーションに対しては機能するかもしれませんが、すべての OpenGL アプリケーションに対してはたいてい機能しないでしょう。}}
  +
  +
NVIDIA ドライバーの [https://download.nvidia.com/XFree86/Linux-x86_64/560.35.03/README/xconfigoptions.html README] 付録 B によると: ''このオプションは、サポートされている構成で SLI レンダリングの設定を制御します。'' "サポートされている構成"とは SLI 認定マザーボードと、2基または3基の SLI 認定 GeForce GPU を搭載しているコンピュータのことです。
  +
  +
{{ic|lspci}} を使って1つ目の GPU の PCI Bus ID を調べてください:
  +
  +
{{hc|# lspci {{!}} grep -E "VGA{{!}}3D controller"|
  +
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09)
  +
03:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
  +
04:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
  +
08:00.0 3D controller: NVIDIA Corporation GM108GLM [Quadro K620M / Quadro M500M] (rev a2)
  +
}}
  +
  +
調べた BusID (前述の例では 3) を {{ic|Device}} セクション内に追加してください:
  +
  +
BusID "PCI:3:0:0"
  +
  +
{{Note|フォーマットが重要です。BusID の値は {{ic|"PCI:<BusID>:0:0"}} のように指定されなければなりません。}}
  +
  +
希望する SLI レンダリングモードの値を {{ic|Screen}} セクション内に追加してください:
  +
  +
Option "SLI" "AA"
  +
  +
以下の表は利用可能なレンダリングモードです。
  +
  +
{| class="wikitable"
  +
! 値 !! 挙動
  +
|-
  +
| 0, no, off, false, Single || レンダリング時にただ1つの GPU を使う。
  +
|-
  +
| 1, yes, on, true, Auto || SLI を有効化し、ドライバーが自動的に適切なレンダリングモードを選択することを許可する。
  +
|-
  +
| AFR || SLI を有効化し、Alternate Frame Rendering モードを使う。
  +
|-
  +
| SFR || SLI を有効化し、Split Frame Rendering モードを使う。
  +
|-
  +
| AA || SLI を有効化し、SLI アンチエイリアシングを使う。この値を Full-Scene アンチエイリアシングと一緒に使うと視覚品質が向上します。
  +
|}
  +
  +
あるいは、''nvidia-xconfig'' ユーティリティを使って、これらの変更を {{ic|xorg.conf}} に追加できます:
  +
  +
# nvidia-xconfig --busid=PCI:3:0:0 --sli=AA
  +
  +
SLI モードが有効化されていることをシェルから確認するには:
  +
  +
{{hc|$ nvidia-settings -q all {{!}} grep SLIMode|
  +
Attribute 'SLIMode' (arch:0.0): AA
  +
'SLIMode' is a string attribute.
  +
'SLIMode' is a read-only attribute.
  +
'SLIMode' can use the following target types: X Screen.
  +
}}
  +
  +
{{Warning|SLI を有効化した後に xorg を起動するとシステムがフリーズしたり、応答しなくなったりするかもしれません。再起動する前にディスプレイマネージャーを無効化することをおすすめします。}}
  +
  +
以上の設定で機能しない場合は、{{ic|nvidia-settings}} で得られる PCI Bus ID を使用する必要があるかもしれません。
  +
  +
{{hc|$ nvidia-settings -q all {{!}} grep -i pcibus|
  +
Attribute 'PCIBus' (host:0[gpu:0]): 101.
  +
'PCIBus' is an integer attribute.
  +
'PCIBus' is a read-only attribute.
  +
'PCIBus' can use the following target types: GPU, SDI Input Device.
  +
Attribute 'PCIBus' (host:0[gpu:1]): 23.
  +
'PCIBus' is an integer attribute.
  +
'PCIBus' is a read-only attribute.
  +
'PCIBus' can use the following target types: GPU, SDI Input Device.
  +
}}
  +
  +
そして、xorg.d 内の PrimaryGPU オプションをコメントアウトしてください:
  +
  +
{{hc|/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf|
  +
...
  +
  +
Section "OutputClass"
  +
...
  +
# Option "PrimaryGPU" "yes"
  +
...
  +
}}
  +
  +
この設定でグラフィカルブートの問題も解決できるかもしれません。
   
 
=== マルチモニター ===
 
=== マルチモニター ===
   
マルチモニターに関する一般的な情報は [[Multihead]] を見て下さい。
+
一般的な情報は [[マルチディスプレイ]] を見て下さい。
   
 
==== NVIDIA Settings を使う ====
 
==== NVIDIA Settings を使う ====
   
  +
[[#nvidia-settings|nvidia-settings]] ツールを使ってマルチモニターを設定できます。
{{Pkg|nvidia-utils}} に入っている {{ic|nvidia-settings}} ツールを使ってマルチモニターのセットアップができます。この方法では、NVIDIA がドライバーと一緒に提供しているプロプライエタリのソフトウェアを使います。root で {{ic|nvidia-settings}} を実行して、好きなように設定を行なって、それから設定を {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}} に保存してください。
 
  +
  +
CLI で設定する場合、まずは以下を実行して {{ic|CurrentMetaMode}} を確認してください:
  +
  +
{{hc|$ nvidia-settings -q CurrentMetaMode|2=
  +
Attribute 'CurrentMetaMode' (hostnmae:0.0): id=50, switchable=no, source=nv-control :: DPY-1: 2880x1620 @2880x1620 +0+0 {ViewPortIn=2880x1620, ViewPortOut=2880x1620+0+0}
  +
}}
  +
  +
{{ic|::}} 以降の全て (上記の場合: {{ic|1=DPY-1: 2880x1620 @2880x1620 +0+0 {ViewPortIn=2880x1620, ViewPortOut=2880x1620+0+0&#125;}}) を使って {{ic|1=nvidia-settings --assign "CurrentMetaMode=''your_meta_mode''"}} でディスプレイを再設定できます。
  +
  +
{{Tip|使用するモニターや解像度の設定ごとにシェルのエイリアスを作成すると便利です。}}
   
 
==== ConnectedMonitor ====
 
==== ConnectedMonitor ====
197行目: 438行目:
 
==== TwinView ====
 
==== TwinView ====
   
  +
画面を2つ表示するのではなく1つの大きな画面を表示したい場合、{{ic|TwinView}} 引数を {{ic|1}} に設定してください。コンポジットを使いたい場合、このオプションを使用する必要があります。TwinView は全てのモニターが同一のカードに接続されている場合にのみ機能します。
You want only one big screen instead of two. Set the {{ic|TwinView}} argument to {{ic|1}}. This option should be used if you desire compositing. TwinView only works on a per card basis, when all participating monitors are connected to the same card.
 
  +
 
Option "TwinView" "1"
 
Option "TwinView" "1"
   
  +
設定例:
Example configuration:
 
  +
 
{{hc|/etc/X11/xorg.conf.d/10-monitor.conf|
 
{{hc|/etc/X11/xorg.conf.d/10-monitor.conf|
 
Section "ServerLayout"
 
Section "ServerLayout"
242行目: 485行目:
 
}}
 
}}
   
[http://us.download.nvidia.com/XFree86/Linux-x86/304.51/README/configtwinview.html Device option information].
+
[https://download.nvidia.com/XFree86/Linux-x86_64/560.35.03/README/configtwinview.html Device オプション情報]
  +
  +
SLI に対応しているカードが複数枚存在する場合、別々のカードに接続された複数のモニターを使うことができます (例: 2枚のカードが SLI で、各々のカードにモニターが1台ずつ接続)。SLI モザイクモードと "MetaModes" オプションで有効になります。以下は上記と同じように設定する例で、[[GNOME]] が完璧に動作します:
   
If you have multiple cards that are SLI capable, it is possible to run more than one monitor attached to separate cards (for example: two cards in SLI with one monitor attached to each). The "MetaModes" option in conjunction with SLI Mosaic mode enables this. Below is a configuration which works for the aforementioned example and runs [[GNOME|GNOME]] flawlessly.
 
 
{{hc|/etc/X11/xorg.conf.d/10-monitor.conf|
 
{{hc|/etc/X11/xorg.conf.d/10-monitor.conf|
 
Section "Device"
 
Section "Device"
298行目: 542行目:
 
Screen 0 "Right Screen" 0 0
 
Screen 0 "Right Screen" 0 0
 
Option "Xinerama" "0"
 
Option "Xinerama" "0"
EndSection}}
+
EndSection
 
===== xrandr による手動の CLI 設定 =====
 
 
If the latest solutions don't work for you, you can use your window manager's ''autostart'' implementation with {{Pkg|xorg-xrandr}}.
 
 
{{ic|xrandr}} の例:
 
 
xrandr --output DVI-I-0 --auto --primary --left-of DVI-I-1
 
 
もしくは:
 
 
xrandr --output DVI-I-1 --pos 1440x0 --mode 1440x900 --rate 75.0
 
 
コマンドの意味:
 
 
* {{ic|--output}} is used to indicate the "monitor" to which the options are set.
 
* {{ic|DVI-I-1}} is the name of the second monitor.
 
* {{ic|--pos}} is the position of the second monitor relative to the first.
 
* {{ic|--mode}} is the resolution of the second monitor.
 
* {{ic|--rate}} is the refresh rate (in Hz).
 
 
==== Mosaic モード ====
 
 
Mosaic mode is the only way to use more than 2 monitors across multiple graphics cards with compositing. Your window manager may or may not recognize the distinction between each monitor.
 
 
===== ベースモザイク =====
 
 
Base Mosaic mode works on any set of Geforce 8000 series or higher GPUs. It cannot be enabled from within the nvidia-setting GUI. You must either use the {{ic|nvidia-xconfig}} command line program or edit {{ic|xorg.conf}} by hand. Metamodes must be specified. The following is an example for four DFPs in a 2x2 configuration, each running at 1920x1024, with two DFPs connected to two cards:
 
$ nvidia-xconfig --base-mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"
 
 
{{Note|While the documentation lists a 2x2 configuration of monitors, Nvidia has reduced that ability to just 3 monitors in Base Mosaic mode as of driver version 304. More monitors are available with a Quadro card, but with standard consumer cards, it is limited to three. The explanation given for this reduction is "Feature parity with the Windows driver". As of September 2014, Windows has no restriction on the number of monitors, even on the same driver version. This is not a bug, this is entirely by design.}}
 
 
===== SLI モザイク =====
 
 
If you have an SLI configuration and each GPU is a Quadro FX 5800, Quadro Fermi or newer then you can use SLI Mosaic mode. It can be enabled from within the nvidia-settings GUI or from the command line with:
 
$ nvidia-xconfig --sli=Mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"
 
 
== 調整 ==
 
 
=== GUI: nvidia-settings ===
 
 
NVIDIA パッケージには {{ic|nvidia-settings}} プログラムが含まれており複数の設定の調整を行うことが可能です。
 
 
ログイン時に設定をロードするには、ターミナルから次のコマンドを実行してください:
 
$ nvidia-settings --load-config-only
 
 
デスクトップ環境の auto-startup を使う方法ではおそらく nvidia-settings を正しくロードできません (KDE)。設定を確実にロードするには {{ic|~/.xinitrc}} ファイル (存在しないときは作成してください) に上のコマンドを記述してください。
 
 
Firefox のようなピクセルマップを使うアプリケーションでの 2D グラフィックのパフォーマンスを著しく上げるには、{{ic|InitialPixmapPlacement}} パラメータを2に設定してください:
 
 
$ nvidia-settings -a InitialPixmapPlacement=2
 
 
これは [http://cgit.freedesktop.org/~aplattner/nvidia-settings/tree/src/libXNVCtrl/NVCtrl.h?id=b27db3d10d58b821e87fbe3f46166e02dc589855#n2797 nvidia-settings のソースコード] の中に書かれています。この設定を永続させるには、起動毎に上記コマンドを実行する必要があります。{{ic|~/.xinitrc}} ファイルに追記することで X で自動実行できます。
 
 
{{Tip|稀に {{ic|~/.nvidia-settings-rc}} が破損することがあり、この場合、Xorg サーバーがクラッシュします。問題を解決するにはこのファイルを削除しなくてはなりません。}}
 
 
=== 高度な設定: 20-nvidia.conf ===
 
 
{{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}} を編集して、適切なセクションにオプションを追加します。変更を適用するには Xorg サーバーを再起動する必要があります。
 
 
詳しい説明やオプションは [http://http.download.nvidia.com/XFree86/Linux-x86/304.51/README/ NVIDIA Accelerated Linux Graphics Driver README and Installation Guide] を見て下さい。
 
 
==== デスクトップのコンポジットを有効にする ====
 
 
NVIDIA ドライバーのバージョン 180.44 から、Damage and Composite X 拡張で GLX のサポートがデフォルトで有効になっています。詳しい説明は [[Xorg#コンポジット|Xorg のページ]]を参照してください。
 
 
==== 起動時のロゴを無効にする ====
 
 
{{ic|Device}} セクションの下に {{ic|"NoLogo"}} オプションを追加してください:
 
Option "NoLogo" "1"
 
 
==== ハードウェアアクセラレーションを有効にする ====
 
 
{{Note|ドライバーバージョン 97.46.xx から RenderAccel はデフォルトで有効になっています。}}
 
{{ic|Device}} セクションの下に {{ic|"RenderAccel"}} オプションを追加してください:
 
Option "RenderAccel" "1"
 
 
==== モニターの検出を上書きする ====
 
 
The {{ic|"ConnectedMonitor"}} option under section {{ic|Device}} allows to override monitor detection when X server starts, which may save a significant amount of time at start up. The available options are: {{ic|"CRT"}} for analog connections, {{ic|"DFP"}} for digital monitors and {{ic|"TV"}} for televisions.
 
 
The following statement forces the NVIDIA driver to bypass startup checks and recognize the monitor as DFP:
 
Option "ConnectedMonitor" "DFP"
 
{{Note| Use "CRT" for all analog 15 pin VGA connections, even if the display is a flat panel. "DFP" is intended for DVI digital connections only.}}
 
 
==== トリプルバッファリングを有効にする ====
 
 
トリプルバッファリングの使用を有効にするには {{ic|Device}} セクションの下に {{ic|"TripleBuffer"}} オプションを追加してください:
 
Option "TripleBuffer" "1"
 
 
このオプションを使うのはグラフィックカードに ram が多く載っているとき (128MB 以上) にしてください。この設定が適用されるのは nvidia-settings にあるオプションの一つである、vblank の同期が有効になっているときだけです。
 
 
{{Note|このオプションはフルスクリーンの時にちらつきを発生させたりパフォーマンスを下げてしまう可能性があります。R300 ドライバーでは、vblank はデフォルトで有効です。}}
 
 
==== 省電力機能を有効にする ====
 
 
{{ic|Monitor}} セクションの下に追加してください:
 
Option "DPMS" "1"
 
 
==== 輝度調整を有効にする ====
 
 
{{ic|Device}} セクションの下に追加してください:
 
Option "RegistryDwords" "EnableBrightnessControl=1"
 
 
{{Note|If you already have this enabled and your brightness control doesn't work try to comment it out.}}
 
 
==== SLI を有効にする ====
 
 
{{Warning|2011年5月7日現在、SLI を有効にすると GNOME 3 で動画パフォーマンスが落ちます。}}
 
 
NVIDIA ドライバーの [http://http.download.nvidia.com/XFree86/Linux-x86/304.51/README/xconfigoptions.html README] appendix より: ''このオプションはサポートされている環境で SLI レンダリングの設定をコントロールします。''"サポートされている環境"とは SLI 対応のマザーボードを搭載し SLI 対応の GeForce GPU が2枚か3枚刺さっているコンピューターのことです。詳しくは NVIDIA の [http://www.slizone.com/page/home.html SLI Zone] を見て下さい。
 
 
まず {{ic|lspci}} を使って一番目の GPU の PCI Bus ID を確認してください:
 
{{hc|<nowiki>$ lspci | grep VGA</nowiki>|
 
03:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 8800 GTS 512] (rev a2)
 
05:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 8800 GTS 512] (rev a2)
 
 
}}
 
}}
   
  +
===== TwinView を使って垂直同期 =====
{{ic|Device}} セクションの下に BusID を追加してください (上記の例では3):
 
BusID "PCI:3:0:0"
 
   
  +
TwinView と垂直同期 ('''nvidia-settings''' の "Sync to VBlank" オプション) を使っている場合、モニターの大きさが異なっていると片方の画面だけが同期されます。'''nvidia-settings''' にはどちらの画面を同期させるか設定するオプション ("Sync to this display device" オプション) が存在しますが、必ずしも機能するとはいいがたいです。起動時に以下の環境変数を追加することで解決します (例: {{ic|/etc/profile}} に追加):
{{Note|The format is important. The BusID value must be specified as {{ic|"PCI:<BusID>:0:0"}}}}
 
   
  +
export __GL_SYNC_TO_VBLANK=1
使用したい SLI レンダリングモードの値を {{ic|Screen}} セクションの下に追加してください:
 
  +
export __GL_SYNC_DISPLAY_DEVICE=DFP-0
Option "SLI" "AA"
 
  +
export VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE=DFP-0
   
  +
{{ic|DFP-0}} は適切な画面に置き換えてください ({{ic|DFP-0}} は DVI 端子で {{ic|CRT-0}} は VGA 端子です)。ディスプレイの識別名は '''nvidia-settings''' の "X Server XVideoSettings" セクションで確認できます。
以下の表は利用できるレンダリングモードを示しています。
 
   
  +
===== Twinview を使ってゲームを遊ぶ =====
{| class="wikitable"
 
! 値 !! 挙動
 
|-
 
| 0, no, off, false, Single || レンダリングの際には単一の GPU だけを使用。
 
|-
 
| 1, yes, on, true, Auto || SLI を有効にしてドライバーに適切なレンダリングモードを自動で選択させる。
 
|-
 
| AFR || SLI を有効にして alternate フレームレンダリングモードを使用する。
 
|-
 
| SFR || SLI を有効にして split フレームレンダリングモードを使用する。
 
|-
 
| AA || SLI を有効にして SLI アンチエイリアスを使用する。これをフルシーンアンチエイリアスと一緒に使うことで見栄えが良くなります。
 
|}
 
   
  +
TwinView を使ってフルスクリーンのゲームを遊ぶ場合、2つの画面が1つの大きな画面としてゲームから認識されることがあります。技術的にこれは正しいのですが (仮想的な X スクリーンの横幅は両方の画面を合わせたサイズになります)、ゲームを遊ぶときは両方の画面を使わないようにしたいときもあるでしょう。
もしくは、{{ic|nvidia-xconfig}} ユーティリティを使って、コマンドによって {{ic|xorg.conf}} に変更を挿入することもできます:
 
# nvidia-xconfig --busid=PCI:3:0:0 --sli=AA
 
   
  +
SDL のこの挙動を修正するには、次を試して下さい:
シェルから SLI モードが有効になっているか確認するには:
 
{{hc|<nowiki>$ nvidia-settings -q all | grep SLIMode</nowiki>|
 
Attribute 'SLIMode' (arch:0.0): AA
 
'SLIMode' is a string attribute.
 
'SLIMode' is a read-only attribute.
 
'SLIMode' can use the following target types: X Screen.
 
}}
 
   
{{Warning|SLI を有効にした後、xorg の起動時にシステムがフリーズしたり反応しなくなることがあります。再起動する前にディスプレイマネージャを無効にすることを推奨します。}}
 
 
==== Powermizer のパフォーマンスレベルを強制する (ラップトップ) ====
 
 
{{ic|Device}} セクションの下に追加してください:
 
# Force Powermizer to a certain level at all times
 
# level 0x0=adaptiv (Driver Default)
 
# level 0x1=highest
 
# level 0x2=med
 
# level 0x3=lowest
 
 
# AC settings:
 
Option "RegistryDwords" "PowerMizerLevelAC=0x3"
 
# Battery settings:
 
Option "RegistryDwords" "PowerMizerLevel=0x3"
 
 
# (Optional) AC Power adaptiv Mode and Battery Power forced to lowest Mode:
 
Option "RegistryDwords" "PowerMizerLevelAC=0x0; PowerMizerLevel=0x3"
 
 
===== GPU のパフォーマンスレベルを温度によって設定する =====
 
 
{{ic|Device}} セクションの下に追加してください:
 
Option "RegistryDwords" "PerfLevelSrc=0x3333"
 
 
==== オーバークロックを有効にする ====
 
 
{{Warning|Please note that overclocking may damage hardware and that no responsibility may be placed on the authors of this page due to any damage to any information technology equipment from operating products out of specifications set by the manufacturer.}}
 
 
GPU やメモリのオーバークロックは {{ic|Device}} セクションの ''Coolbits'' オプションによって制御され、サポートされない機能が使えるようになります:
 
Option "Coolbits" "''value''"
 
 
''Coolbits'' の値は2進法でビットを立てた合計になります。それぞれのビットの意味は:
 
 
* {{ic|1}} (ビット 0) - (Fermi 以前の) 古いコアで ''nvidia-settings'' の ''Clock Frequencies'' ページからオーバークロックできるようになります。
 
* {{ic|2}} (ビット 1) - このビットが設定されると、ドライバーは GPU を使う際に様々な量のビデオメモリで SLI を初期化しようとします。
 
* {{ic|4}} (ビット 2) - GPU のファンの速度の手動設定が ''nvidia-settings'' の ''Thermal Monitor'' ページで可能になります。
 
* {{ic|8}} (ビット 3) - Fermi 以降の新しいコアで ''nvidia-settings'' の ''PowerMizer'' ページからオーバークロックできるようになります。バージョン 337.12 から使えるようになりました [http://www.phoronix.com/scan.php?px=MTY1OTM&page=news_item]。
 
* {{ic|16}} (ビット 4) - Fermi 以降の新しいコアで ''nvidia-settings'' の CLI オプションを使って電圧アップができるようになります。バージョン 346.16 から使えるようになりました [http://www.phoronix.com/scan.php?page=news_item&px=MTg0MDI]。
 
 
複数の機能を有効にするには、合計した ''Coolbits'' の値を追加します。例えば、オーバークロックと Fermi コアの電圧アップを有効にするには、{{ic|Option "Coolbits" "24"}} と設定します。
 
 
''Coolbits'' のドキュメントは {{ic|/usr/share/doc/nvidia/html/xconfigoptions.html}} にあります。''Coolbits'' に関するドライバーバージョン 346.16 のドキュメントはオンラインで [http://us.download.nvidia.com/XFree86/Linux-x86/346.16/README/xconfigoptions.html こちらから] 見ることができます。
 
 
{{Note|An alternative is to edit and reflash the GPU BIOS either under DOS (preferred), or within a Win32 environment by way of [http://www.mvktech.net/component/option,com_remository/Itemid,26/func,select/id,127/orderby,2/page,1/ nvflash]{{Dead link|2013|05|25}} and [http://www.mvktech.net/component/option,com_remository/Itemid,26/func,select/id,135/orderby,2/page,1/ NiBiTor 6.0]{{Dead link|2013|05|25}}. The advantage of BIOS flashing is that not only can voltage limits be raised, but stability is generally improved over software overclocking methods such as Coolbits. [http://ivanvojtko.blogspot.sk/2014/03/how-to-overclock-geforce-460gtx-fermi.html Fermi BIOS modification tutorial]}}
 
 
===== 静的な 2D/3D クロックを設定する =====
 
 
以下の文字列を {{ic|Device}} セクションに設定すると PowerMizer がパフォーマンス最高レベルで有効になります (この行がないと VSync が動作しません):
 
Option "RegistryDwords" "PerfLevelSrc=0x2222"
 
 
== Tips and tricks ==
 
 
=== ターミナルの解像度を修正する ===
 
 
nouveau からドライバーを変えた場合、起動時のターミナルが低解像度で表示されるようになることがあります。
 
 
==== GRUB ====
 
 
GRUB を使っている場合、{{ic|/etc/default/grub}} の {{ic|GRUB_GFXMODE}} 行を適切なディスプレイ解像度に編集することで修正できます。デフォルトの {{ic|auto}} を含め、複数の解像度を指定できるので、次のように編集することを推奨します: {{ic|1=GRUB_GFXMODE=<desired resolution>,<fallback such as 1024x768>,auto}}。詳しくは、[https://www.gnu.org/software/grub/manual/html_node/gfxmode.html#gfxmode GRUB の gfxmode のドキュメント]を参照してください。
 
 
=== Pure Video HD を有効にする (VDPAU/VAAPI) ===
 
 
'''必要なハードウェア:'''
 
 
第2世代の PureVideo HD が載っているビデオカード [http://en.wikipedia.org/wiki/Nvidia_PureVideo#Table_of_PureVideo_.28HD.29_GPUs]。
 
 
'''必要なソフトウェア:'''
 
 
Nvidia のビデオカードとプロプライエタリのドライバーで PureVideo の世代にあった異なるレベルの VDPAU インターフェイスのビデオデコード機能を提供します。
 
 
また、{{Pkg|libva-vdpau-driver}} を使って VA-API インターフェイスをサポートすることもできます。
 
 
VA-API のサポートを確認するには:
 
$ vainfo
 
 
あなたのビデオカードのハードウェアデコード機能を全て使うには、VDPAU や VA-API をサポートするメディアプレーヤーが必要です。
 
 
[[MPlayer|MPlayer]] でハードウェアアクセラレーションを有効にするには {{ic|~/.mplayer/config}} を編集してください:
 
 
vo=vdpau
 
vc=ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau,
 
 
{{Warning|The {{ic|ffodivxvdpau}} codec is only supported by the most recent series of NVIDIA hardware. Consider omitting it based on your specific hardware.}}
 
 
[[VLC media player|VLC]] でハードウェアアクセラレーションを有効にするには:
 
 
{{ic|Tools > Preferences > Input & Codecs}} から {{ic|'''Hardware-accelerated decoding'''}} で {{ic|VDPAU}} を選択
 
 
'''smplayer''' でハードウェアアクセラレーションを有効にするには:
 
 
{{ic|Options > Preferences > General > Video Tab}} から {{ic|'''output driver'''}} で {{ic|vdpau}} を選択
 
 
'''gnome-mplayer''' でハードウェアアクセラレーションを有効にするには:
 
 
{{ic|Edit > Preference}} から {{ic|'''video output'''}} を {{ic|vdpau}} に設定
 
 
'''低メモリのカードで HD 動画を再生:'''
 
 
あまりメモリが多くないグラフィックカードを使っている場合 (512MB 以下)、1080p や 720p の動画を再生した時に動画が飛び飛びになることがあります。これを修正するには [[Twm|TWM]] や MWM などのシンプルなウィンドウマネージャを使って下さい。
 
 
さらに HD 動画を見るときにハードドライブがスピンダウンする場合、{{ic|~/.mplayer/config}} で MPlayer のキャッシュサイズを増やすと解決するかもしれません。
 
 
=== KDE (KWin) の画面のちらつきをなくす ===
 
 
{{hc|/etc/profile.d/kwin.sh|<nowiki>
 
export __GL_YIELD="USLEEP"
 
</nowiki>}}
 
 
上記で修正されない場合、以下を試して下さい:
 
{{hc|/etc/profile.d/kwin.sh|<nowiki>
 
export KWIN_TRIPLE_BUFFER=1
 
</nowiki>}}
 
 
両方同時に有効にしてはいけません。また、トリプルバッファを有効にする場合、ドライバーのトリプルバッファも有効になっているか確認してください。
 
 
ソース: https://bugs.kde.org/show_bug.cgi?id=322060
 
 
=== XvMC によるビデオデコードのハードウェアアクセラレーション ===
 
 
GeForce4, GeForce 5 FX, GeForce 6, GeForce 7 シリーズのカードでは [[XvMC|XvMC]] による MPEG-1 と MPEG-2 ビデオのデコードのアクセラレーションがサポートされています。使用するには、以下の内容で、新しいファイル {{ic|/etc/X11/XvMCConfig}} を作成してください:
 
libXvMCNVIDIA_dynamic.so.1
 
 
設定方法は[[XvMC#サポートしているソフトウェア|サポートしているソフトウェア]]を参照。
 
 
=== TV 出力を使う ===
 
 
TV 出力については [http://en.wikibooks.org/wiki/NVidia/TV-OUT こちら] に良い記事があります。
 
 
=== X で TV (DFP) を唯一のディスプレイとして使う ===
 
 
モニタが検出されないと X サーバーは自動的に CRT-0 にフォールバックします。これは DVI で接続した TV をメインディスプレイとして使っている際、TV の電源がオフになっていたり切断されているのに X を起動したときに問題になります。
 
 
To force NVIDIA to use DFP, store a copy of the EDID somewhere in the filesystem so that X can parse the file instead of reading EDID from the TV/DFP.
 
 
To acquire the EDID, start nvidia-settings. It will show some information in tree format, ignore the rest of the settings for now and select the GPU (the corresponding entry should be titled "GPU-0" or similar), click the {{ic|DFP}} section (again, {{ic|DFP-0}} or similar), click on the {{ic|Acquire Edid}} Button and store it somewhere, for example, {{ic|/etc/X11/dfp0.edid}}.
 
 
Edit {{ic|xorg.conf}} by adding to the {{ic|Device}} section:
 
Option "ConnectedMonitor" "DFP"
 
Option "CustomEDID" "DFP-0:/etc/X11/dfp0.edid"
 
The {{ic|ConnectedMonitor}} option forces the driver to recognize the DFP as if it were connected. The {{ic|CustomEDID}} provides EDID data for the device, meaning that it will start up just as if the TV/DFP was connected during X the process.
 
 
This way, one can automatically start a display manager at boot time and still have a working and properly configured X screen by the time the TV gets powered on.
 
 
=== 電源を確認 ===
 
 
NVIDIA の X.org ドライバーを使って GPU の現在の電源を検出することもできます。現在の電源を表示するには、読み取り専用パラメータの 'GPUPowerSource' をチェックしてください (0 - AC, 1 - バッテリー):
 
 
{{hc|$ nvidia-settings -q GPUPowerSource -t|1}}
 
 
以下のようなエラーメッセージが表示される場合は、[[acpid|acpid]] をインストールするか {{ic|systemctl start acpid.service}} で systemd のサービスを起動する必要があります:
 
ACPI: failed to connect to the ACPI event daemon; the daemon
 
may not be running or the "AcpidSocketPath" X
 
configuration option may not be set correctly. When the
 
ACPI event daemon is available, the NVIDIA X driver will
 
try to use it to receive ACPI event notifications. For
 
details, please see the "ConnectToAcpid" and
 
"AcpidSocketPath" X configuration options in Appendix B: X
 
Config Options in the README.
 
(If you are not seeing this error, it is not necessary to install/run acpid soley for this purpose. My current power source is correctly reported without acpid even installed.)
 
 
=== GPU の温度をシェルに表示する ===
 
 
==== 方法1 - nvidia-settings ====
 
 
{{Note|この方法では X を使用する必要があります。X を使っていない場合は方法2か方法3を使って下さい。また、GeForce 200 シリーズのカードや Zotac IONITX の 8800GS などの内蔵 GPU など新しい NVIDIA カードでは方法3は動作しません。}}
 
 
GPU の温度をシェルに表示するには、以下のように {{ic|nvidia-settings}} を使って下さい:
 
$ nvidia-settings -q gpucoretemp
 
 
このコマンドを使うと以下のように出力されます:
 
Attribute 'GPUCoreTemp' (hostname:0.0): 41.
 
'GPUCoreTemp' is an integer attribute.
 
'GPUCoreTemp' is a read-only attribute.
 
'GPUCoreTemp' can use the following target types: X Screen, GPU.
 
 
このボードの GPU 温度は 41 C になります。
 
 
{{ic|rrdtool}} や {{ic|conky}} などのユーティリティで使うために温度だけを表示したいときは:
 
{{hc|$ nvidia-settings -q gpucoretemp -t|41}}
 
 
==== 方法2 - nvidia-smi ====
 
 
X を全く使わず GPU から直接温度を読み込むことができる nvidia-smi を使います。サーバーなど、マシンで X を動かしていないユーザーにはこちらが重要でしょう。GPU の温度をシェルに表示するには、以下のように nvidia-smi を使って下さい:
 
 
$ nvidia-smi
 
 
このコマンドを使うと以下のように出力されます:
 
{{hc|$ nvidia-smi|<nowiki>
 
Fri Jan 6 18:53:54 2012
 
+------------------------------------------------------+
 
| NVIDIA-SMI 2.290.10 Driver Version: 290.10 |
 
|-------------------------------+----------------------+----------------------+
 
| Nb. Name | Bus Id Disp. | Volatile ECC SB / DB |
 
| Fan Temp Power Usage /Cap | Memory Usage | GPU Util. Compute M. |
 
|===============================+======================+======================|
 
| 0. GeForce 8500 GT | 0000:01:00.0 N/A | N/A N/A |
 
| 30% 62 C N/A N/A / N/A | 17% 42MB / 255MB | N/A Default |
 
|-------------------------------+----------------------+----------------------|
 
| Compute processes: GPU Memory |
 
| GPU PID Process name Usage |
 
|=============================================================================|
 
| 0. ERROR: Not Supported |
 
+-----------------------------------------------------------------------------+
 
</nowiki>
 
}}
 
 
温度だけ見るには:
 
{{hc|$ nvidia-smi -q -d TEMPERATURE|<nowiki>
 
 
==============NVSMI LOG==============
 
 
Timestamp : Fri Jan 6 18:50:57 2012
 
 
Driver Version : 290.10
 
 
Attached GPUs : 1
 
 
GPU 0000:01:00.0
 
Temperature
 
Gpu : 62 C
 
 
</nowiki>
 
}}
 
 
{{ic|rrdtool}} や {{ic|conky}} などのユーティリティで使うために温度だけを取得したいときは:
 
 
{{hc|<nowiki>$ nvidia-smi -q -d TEMPERATURE | grep Gpu | cut -c35-36</nowiki>|62}}
 
 
参照: http://www.question-defense.com/2010/03/22/gpu-linux-shell-temp-get-nvidia-gpu-temperatures-via-linux-cli
 
 
==== 方法3 - nvclock ====
 
 
[[Arch User Repository|AUR]] から利用できる {{AUR|nvclock}} を使います。
 
{{Note|{{ic|nvclock}} は Geforce 200 シリーズなどの新しい NVIDIA カードの温度センサーにはアクセスできません。}}
 
 
たまに nvclock と nvidia-settings/nv-control が報告する温度が食い違うことがあります。nvclock の作者 (thunderbird) による [http://sourceforge.net/projects/nvclock/forums/forum/67426/topic/1906899 この投稿] によると、nvclock の値のほうが正確なようです。
 
 
=== ログイン時にファンの速度を設定する ===
 
 
''nvidia-settings''' コンソールインターフェイスを使ってグラフィックカードのファンの速度を調整することができます。まずは Xorg 設定の {{ic|Device}} セクションで Coolbits オプションを {{ic|4}} か {{ic|5}}、または {{ic|12}} (fermi 以上) に設定してファンコントロールを有効にしてください。
 
 
Option "Coolbits" "4"
 
 
{{Note|GeForce 400/500 series cards cannot currently set fan speeds at login using this method. This method only allows for the setting of fan speeds within the current X session by way of nvidia-settings.}}
 
 
Xorg が起動した時にファンを調整するには以下の行を [[xinitrc|{{ic|~/.xinitrc}}]] ファイルに記述します。{{ic|''n''}} は設定したいファンの速度のパーセンテージに置き換えて下さい。
 
 
nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUCurrentFanSpeed=''n''"
 
 
GPU とファンの番号を増やすことで二番目の GPU を設定することもできます。
 
 
nvidia-settings -a "[gpu:0]/GPUFanControlState=1" \
 
-a "[gpu:1]/GPUFanControlState=1" \
 
-a "[fan:0]/GPUCurrentFanSpeed=''n''" \
 
-a [fan:1]/GPUCurrentFanSpeed=''n''" &
 
 
GDM や KDM などのログインマネージャを使用している場合、デスクトップエントリファイルを作成して設定をさせることもできます。{{ic|~/.config/autostart/nvidia-fan-speed.desktop}} を作成してその中に以下のテキストを入力してください。{{ic|''n''}} は速度のパーセンテージに置き換えて下さい。
 
 
[Desktop Entry]
 
Type=Application
 
Exec=nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUCurrentFanSpeed=''n''"
 
X-GNOME-Autostart-enabled=true
 
Name=nvidia-fan-speed
 
 
=== ドライバーを変更するためのインストールとアンインストールの順番 ===
 
 
古いドライバーが nvidiaO で新しいドライバーが nvidiaN として以下の順番で変更します:
 
remove nvidiaO
 
install nvidia-libglN
 
install nvidiaN
 
install lib32-nvidia-libgl-N (if required)
 
 
=== NVIDIA と nouveau ドライバーを切り替える ===
 
 
{{Warning|The {{ic|-Rdds}} switch is used as the installation otherwise fails due to unstatisfied dependencies.}}
 
 
ドライバーを切り替える必要があるときは、以下のスクリプトを使うことができます。root で実行してください (確認を求められたら全て yes と答えて下さい):
 
 
{{bc|1=<nowiki>
 
#!/bin/bash
 
BRANCH=340xx
 
#BRANCH=304xx
 
 
NVIDIA="nvidia-$BRANCH"
 
_NVIDIA="$(pacman -Qqs ^${NVIDIA}$)"
 
NOUVEAU="xf86-video-nouveau mesa-libgl"
 
_NOUVEAU="$(pacman -Qqs ^mesa-libgl$)"
 
 
if [[ ! $_NVIDIA ]]; then
 
pacman -Rdds "$NOUVEAU"
 
pacman -S "$NVIDIA" #lib32-$NVIDIA-libgl #$NVIDIA-lts
 
elif [[ ! $_NOUVEAU ]]; then
 
pacman -Rdds "$_NVIDIA"
 
pacman -S "$NOUVEAU" #lib32-mesa-libgl
 
fi
 
</nowiki>}}
 
 
64ビット環境を使っていて32ビットのライブラリが必要な場合は lib32 パッケージをアンコメントしてください (例: 32ビットのゲームや [[Steam|Steam]])。
 
 
=== GeForce 600/700 シリーズのカードでティアリングをなくす ===
 
 
X11 設定ファイル (例: {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}}) の {{ic|"Screen"}} セクションに以下の行を追加することで、コンポジタを使っているかどうかに関係なく、ティアリングを完全になくすことができます。ただし、複数の OpenGL アプリケーションでパフォーマンスの劣化が報告されています。
 
 
Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
 
 
== トラブルシューティング ==
 
 
=== Twinview を使ってゲームを遊ぶ ===
 
 
In case you want to play fullscreen games when using Twinview, you will notice that games recognize the two screens as being one big screen. While this is technically correct (the virtual X screen really is the size of your screens combined), you probably do not want to play on both screens at the same time.
 
 
SDL のこの挙動を修正するには、次を試して下さい:
 
 
export SDL_VIDEO_FULLSCREEN_HEAD=1
 
export SDL_VIDEO_FULLSCREEN_HEAD=1
   
 
OpenGL の場合、{{ic|xorg.conf}} の {{ic|Device}} セクションに適切な Metamodes を追加して X を再起動してください:
 
OpenGL の場合、{{ic|xorg.conf}} の {{ic|Device}} セクションに適切な Metamodes を追加して X を再起動してください:
  +
 
Option "Metamodes" "1680x1050,1680x1050; 1280x1024,1280x1024; 1680x1050,NULL; 1280x1024,NULL;"
 
Option "Metamodes" "1680x1050,1680x1050; 1280x1024,1280x1024; 1680x1050,NULL; 1280x1024,NULL;"
   
  +
[[ゲーム#別の X サーバーでゲームを起動する|別の X サーバーでゲームを起動する]]方法もあります。上記の方法と一緒に使うことも可能です。
Another method that may either work alone or in conjunction with those mentioned above is [[Gaming#別の X サーバーでゲームを起動する|starting games in a separate X server]].
 
   
  +
==== モザイクモード ====
=== TwinView を使って垂直同期 ===
 
   
  +
モザイクモードは、複数のグラフィクカードでコンポジット有りで3つ以上のモニタを使用する唯一の方法です。ウィンドウマネージャは各モニタの違いを認識するかもしれませんし、しないかもしれません。モザイクモードには、有効な SLI 設定が必要です。SLI を使わずにベースモードを使用する場合でも、GPU は依然として SLI 対応/互換でなければなりません。
If you're using TwinView and vertical sync (the "Sync to VBlank" option in '''nvidia-settings'''), you will notice that only one screen is being properly synced, unless you have two identical monitors. Although '''nvidia-settings''' does offer an option to change which screen is being synced (the "Sync to this display device" option), this does not always work. A solution is to add the following environment variables at startup, for example append in {{ic|/etc/profile}}:
 
   
  +
===== ベースモザイク =====
export __GL_SYNC_TO_VBLANK=1
 
export __GL_SYNC_DISPLAY_DEVICE=DFP-0
 
export __VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE=DFP-0
 
   
  +
ベースモザイクモードは Geforce 8000 シリーズ以上の GPU で動作します。nvidia-setting の GUI から有効にすることはできません。''nvidia-xconfig'' コマンドラインプログラムを使用するか {{ic|xorg.conf}} を手動で編集する必要があります。Metamodes を指定してください。以下は4台の DFP を 2x2 の構成で使用する例です。各々の解像度は 1920x1024 で、2枚のカードにそれぞれ2台の DFP が接続されている場合:
You can change {{ic|DFP-0}} with your preferred screen ({{ic|DFP-0}} is the DVI port and {{ic|CRT-0}} is the VGA port). You can find the identifier for your display from '''nvidia-settings''' in the "X Server XVideoSettings" section.
 
   
  +
$ nvidia-xconfig --base-mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"
=== 古い Xorg 設定 ===
 
   
  +
{{Note|ドキュメントには 2x2 のモニター構成が記述されていますが、Base Mosaic モードで[https://forums.developer.nvidia.com/t/basemosaic-v295-vs-v310-vs-v325-only-up-to-three-screens/30583#3954733 GeForce カードは人為的にモニタ3台に制限されています]。Quadro カードは4台以上のモニタをサポートしています。2014年9月現在、Windows ドライバはこの人為的な制限を落としましたが、Linux ドライバでは未だに残っています。}}
古い環境からアップグレードする場合、インストール中に問題が発生することがあるので昔の {{ic|/usr/X11R6/}} パスを削除してください。
 
   
  +
===== SLI モザイク =====
=== Corrupted screen: "Six screens" Problem ===
 
   
  +
SLI 構成を使っていて、使用する GPU が Quadro FX 5800 や Quadro Fermi 以降の場合、SLI モザイクモードが利用できます。nvidia-settings の GUI の中から有効化するか、コマンドラインで設定してください:
For some users using Geforce GT 100M's, the screen turns out corrupted after X starts; divided into 6 sections with a resolution limited to 640x480.
 
The same problem has been recently reported with Quadro 2000 and hi-res displays.
 
   
  +
$ nvidia-xconfig --sli=Mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"
To solve this problem, enable the Validation Mode {{ic|NoTotalSizeCheck}} in section {{ic|Device}}:
 
Section "Device"
 
...
 
Option "ModeValidation" "NoTotalSizeCheck"
 
...
 
EndSection
 
   
  +
== NVswitch ==
=== '/dev/nvidia0' input/output error ===
 
   
  +
NVswitch のあるシステム (AWS の H100x8 など) では、以下が必要です。
This error can occur for several different reasons, and the most common solution given for this error is to check for group/file permissions, which in almost every case is ''not'' the problem. The NVIDIA documentation does not talk in detail on what you should
 
do to correct this problem but there are a few things that have worked for some people. The problem can be a IRQ conflict with another device or bad routing by either the kernel or your BIOS.
 
   
  +
* nvidia-fabricmanager をインストールする。
First thing to try is to remove other video devices such as video capture cards and see if the problem goes away. If there are too many video processors on the same system it can lead into the kernel being unable to start them because of memory allocation problems with the video controller. In particular on systems with low video memory this can occur even if there is only one video processor. In such case you should find out the amount of your system's video memory (e.g. with {{ic|lspci -v}}) and pass allocation parameters to the kernel, e.g.:
 
  +
* Fabric manager が必要とする、対応するカーネルモジュールをインストールする。
vmalloc=64M
 
or
 
vmalloc=256M
 
   
  +
Fabric manager を使うと、pytorch が GPU が見つからないと報告してきます。
If running a 64bit kernel, a driver defect can cause the NVIDIA module to fail initializing when IOMMU is on. Turning it off in the BIOS has been confirmed to work for some users. [http://www.nvnews.net/vbulletin/showthread.php?s=68bb2fabadcb53b10b286aa42d13c5bc&t=159335][[User:Clickthem#nvidia module]]
 
   
  +
Fabric マネージャをインストールするには:
Another thing to try is to change your BIOS IRQ routing from {{ic|Operating system controlled}} to {{ic|BIOS controlled}} or the other way around. The first one can be passed as a kernel parameter:
 
PCI=biosirq
 
   
  +
# Nvidia から tarball をダウンロードする。[https://developer.download.nvidia.com/compute/cuda/redist/fabricmanager/linux-x86_64/ こちら]
The {{ic|noacpi}} kernel parameter has also been suggested as a solution but since it disables ACPI completely it should be used with caution. Some hardware are easily damaged by overheating.
 
  +
# バージョン 555.42.02 は正しく動作します。
  +
# インストールスクリプト sbin/fm_run_package_installer.sh を変更してしてインストール先のパスを修正してください。
   
  +
対応するカーネルドライバを入手するには:
{{Note|The kernel parameters can be passed either through the kernel command line or the bootloader configuration file. See your bootloader Wiki page for more information.}}
 
   
  +
# nvidia-beta-dkms と nvidia-utils-beta の AUR リポジトリを git clone してください。
=== '/dev/nvidiactl' エラー ===
 
  +
# PKGBUILD を変更してバージョン 555.42.02 を使用するようにしてください。
  +
# ビルドし、インストールしてください。
  +
# 再起動してください。
   
  +
最後に、{{ic|systemctl enable nvidia-fabricmanager}} と {{ic|systemctl start nvidia-fabricmanager}} を実行すれば、pytorch が動くはずです。
opengl アプリケーションを起動しようとすると以下のようなエラーが発生する場合:
 
Error: Could not open /dev/nvidiactl because the permissions are too
 
restrictive. Please see the {{ic|FREQUENTLY ASKED QUESTIONS}}
 
section of {{ic|/usr/share/doc/NVIDIA_GLX-1.0/README}}
 
for steps to correct.
 
   
  +
== ヒントとテクニック ==
{{ic|video}} グループに適切なユーザーを追加して再ログインすれば解決します:
 
# gpasswd -a username video
 
   
  +
[[NVIDIA/ヒントとテクニック]] を参照。
=== 32ビットのアプリケーションが起動しない ===
 
   
  +
== トラブルシューティング ==
64ビット環境では、インストールした64ビットのドライバーと同じバージョンと対応する {{ic|lib32-nvidia-libgl}} をインストールすることで、この問題は解決します。
 
   
  +
[[NVIDIA/トラブルシューティング]] を参照。
=== カーネルを更新した後にエラーが発生する ===
 
   
  +
== 参照 ==
''extra'' リポジトリのパッケージではなく NVIDIA モジュールのカスタムビルドを使用する場合、カーネルを更新するたびにリコンパイルする必要があります。カーネルやグラフィックドライバーを更新した後は再起動することを推奨します。
 
   
  +
* [https://forums.developer.nvidia.com/t/current-graphics-driver-releases/28500 Current graphics driver releases in official NVIDIA Forum]
=== クラッシュ一般 ===
 
  +
* [https://forums.developer.nvidia.com/c/gpu-graphics/linux/148 NVIDIA Developers Forum - Linux Subforum]
 
* {{ic|xorg.conf}} で {{ic|RenderAccel}} を無効にしてみる。
 
* Xorg が "conflicting memory type" や "failed to allocate primary buffer: out of memory" というエラーを出力する場合、{{ic|/boot/grub/menu.lst}} の {{ic|kernel}} 行の一番最後に {{ic|nopat}} を追加してください。
 
* NVIDIA のコンパイラがカーネルをコンパイルしたのに使用した GCC と、現在使っている GCC のバージョンが異なるというエラーを出力する場合、{{ic|/etc/profile}} に以下を追加してください:
 
export IGNORE_CC_MISMATCH=1
 
* nvidia-96xx ドライバーを使っていて Xorg が "Signal 11" でクラッシュする場合、PAT を無効にしてみる。[[カーネルパラメータ]]に {{ic|nopat}} を追加してください。
 
ドライバーのトラブルシューティングに関する詳細は [http://www.nvnews.net/vbulletin/forumdisplay.php?s=&forumid=14 NVIDIA フォーラム] にあります。
 
 
=== 新しいバージョンのドライバーをインストールした後にパフォーマンスが悪くなる ===
 
 
古いドライバーと比べて FPS が落ちている場合、まずダイレクトレンダリングがオンになっているか確認してください (glxinfo は {{Pkg|mesa-demos}} に含まれています):
 
$ glxinfo | grep direct
 
上のコマンドで以下のように表示されるなら:
 
direct rendering: No
 
これは FPS が下がっていることの兆候かもしれません。
 
 
前にインストールしたバージョンのドライバーに戻して再起動すれば解決することがあります。
 
 
=== 400 シリーズのカードで CPU の使用率が高くなる ===
 
 
400 シリーズのカードで時々 CPU の使用率が急上昇するような場合、PowerMizer が GPU のクロック周波数を断続的に変更しているのが原因です。以下を Xorg 設定の {{ic|Device}} セクションに追加して、PowerMizer の設定を Adaptive から Performance にしてください:
 
 
Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"
 
 
=== ノートパソコン: ログイン/ログアウト時に X がフリーズするが、Ctrl+Alt+Backspace で回避できる ===
 
 
もし、レガシーな NVIDIA ドライバーを使っていて、ログインやログアウト時に Xorg がフリーズし (特に画面が黒と白/灰の部分に別れる)、{{ic|Ctrl+Alt+Backspace}} によるログインはできる場合 (X を終了するキーバインドを実行した時)、{{ic|/etc/modprobe.d/modprobe.conf}} に以下を追加してみてください:
 
options nvidia NVreg_Mobile=1
 
 
以下の設定は人によっては問題が解決しますが、逆にパフォーマンスが著しく悪化することもあります:
 
options nvidia NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=33 NVreg_DeviceFileMode=0660 NVreg_SoftEDIDs=0 NVreg_Mobile=1
 
 
{{ic|NVreg_Mobile}} は使用しているノートパソコンにあわせて変更する必要があります:
 
* Dell のノートパソコンの場合 1。
 
* コンパル製でない東芝のノートパソコンの場合 2。
 
* その他のノートパソコンの場合 3。
 
* コンパル製の東芝のノートパソコンの場合 4。
 
* Gateway のノートパソコンの場合 5。
 
 
詳しくは [http://http.download.nvidia.com/XFree86/Linux-x86/1.0-7182/README/readme.txt NVIDIA ドライバーの README: Appendix K] を見て下さい。
 
 
=== ノートパソコン/NVIDIA Optimus で画面が表示されない ===
 
 
On a laptop, if the NVIDIA driver cannot find any screens, you may have an NVIDIA Optimus setup : an Intel chipset connected to the screen and the video outputs, and a NVIDIA card that does all the hard work and writes to the chipset's video memory.
 
 
Check if {{ic|<nowiki>$ lspci | grep VGA</nowiki>}}
 
outputs something similar to:
 
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 からカーネル 3.9 以上で Optimus をサポートするようになっています [http://www.nvidia.com/object/linux-display-amd64-319.12-driver.html]。
 
 
もしくは、[[Intel Graphics|Intel]] ドライバーをインストールして画面を管理させ、3D ソフトウェアが必要になったときは [[Bumblebee|Bumblebee]] を通して NVIDIA のカードを使わさせるという方法もあります。
 
 
==== Possible Workaround ====
 
 
Enter the BIOS and changed the default graphics setting from 'Optimus' to 'Discrete' and the install NVIDIA drivers (295.20-1 at time of writing) recognized the screens.
 
 
Steps:
 
# Enter BIOS.
 
# Find Graphics Settings (should be in tab ''Config > Display'').
 
# Change 'Graphics Device' to 'Discrete Graphics' (Disables Intel integrated graphics).
 
# Change OS Detection for Nvidia Optimus to "Disabled".
 
# Save and exit.
 
 
Tested on a Lenovo W520 with a Quadro 1000M and Nvidia Optimus
 
 
=== Screen(s) found, but none have a usable configuration ===
 
 
On a laptop, sometimes NVIDIA driver cannot find the active screen.
 
It may be caused because you own a graphic card with vga/tv outs.
 
You should examine Xorg.0.log to see what is wrong.
 
 
Another thing to try is adding invalid {{ic|"ConnectedMonitor" Option}} to {{ic|Section "Device"}}
 
to force Xorg throws error and shows you how correct it.
 
[http://http.download.nvidia.com/XFree86/Linux-x86/304.51/README/xconfigoptions.html Here]
 
more about ConnectedMonitor setting.
 
 
After re-run X see Xorg.0.log to get valid CRT-x,DFP-x,TV-x values.
 
 
{{ic|nvidia-xconfig --query-gpu-info}} could be helpful.
 
 
=== 新しいドライバーで X 起動時に黒画面 ===
 
 
Nvidia のアップデートをインストールして Xorg を起動しても画面が真っ黒のままの場合、{{ic|<nowiki>rcutree.rcu_idle_gp_delay=1</nowiki>}} [[カーネルパラメータ]]を使用する必要があります。
 
 
[[mkinitcpio|mkinitcpio]] の設定ファイルに直接 {{ic|nvidia}} モジュールを追加することもできます。
 
 
=== ノートパソコンで輝度がコントロールできない ===
 
 
以下の行を {{ic|20-nvidia.conf}} に追加してみてください:
 
Option "RegistryDwords" "EnableBrightnessControl=1"
 
それでも輝度が変更できない場合は、{{AUR|nvidia-bl}} または {{AUR|nvidiabl}} をインストールしてみてください。
 
 
=== バックライトがオフにならない ===
 
 
デフォルトでは、タイムアウトを設定したり xset を実行すると DPMS はバックライトをオフにします。しかしながら、プロプライエタリの Nvidia ドライバーのバグによって、黒画面になるだけで節電ができないことがあります。バグが修正されるまで、対応策として root で {{ic|vbetool}} を使う方法があります。
 
 
{{Pkg|vbetool}} パッケージをインストールしてください。
 
 
Turn off your screen on demand and then by pressing a random key backlight turns on again:
 
 
vbetool dpms off && read -n1; vbetool dpms on
 
 
Alternatively, xrandr is able to disable and re-enable monitor outputs without requiring root.
 
 
xrandr --output DP-1 --off; read -n1; xrandr --output DP-1 --auto
 
 
=== Flash で動画に青みがかかる ===
 
 
A problem with {{Pkg|flashplugin}} versions 11.2.202.228-1 and 11.2.202.233-1 causes it to send the U/V panes in the incorrect order resulting in a blue tint on certain videos. There are a few potential fixes for this bug:
 
 
# 最新の {{Pkg|libvdpau}} をインストール。
 
# [https://bbs.archlinux.org/viewtopic.php?pid=1078368#p1078368 この makepkg] で {{ic|vdpau_trace.so}} にパッチをあてる。
 
# Right click on a video, select "Settings..." and uncheck "Enable hardware acceleration". Reload the page for it to take affect. Note that this disables GPU acceleration.
 
# {{Pkg|flashplugin}} パッケージを少なくともバージョン 11.1.102.63-1 にまで[[ダウングレード]]。
 
# 新しい Pepper API の {{AUR|chromium-pepper-flash}} で {{AUR|google-chrome}} を使用。
 
# Try one of the few Flash alternatives.
 
 
The merits of each are discussed in [https://bbs.archlinux.org/viewtopic.php?id=137877 this thread].
 
 
=== Bleeding overlay with Flash ===
 
 
This bug is due to the incorrect colour key being used by the {{Pkg|flashplugin}} version 11.2.202.228-1 and causes the flash content to "leak" into other pages or solid black backgrounds. To avoid this problem simply install the latest {{Pkg|libvdpau}} or export {{ic|1=VDPAU_NVIDIA_NO_OVERLAY=1}} within either your shell profile (E.g. {{ic|~/.bash_profile}} or {{ic|~/.zprofile}}) or {{ic|~/.xinitrc}}
 
 
=== Flash の使用時にシステムが完全にフリーズする ===
 
 
フラッシュプラグインを使っていて (マウスを動かしただけで) 時々システムが完全にフリーズして以下のエラーが出る場合:
 
 
{{hc|/var/log/errors.log|
 
NVRM: Xid (0000:01:00): 31, Ch 00000007, engmask 00000120, intr 10000000
 
}}
 
 
Flash のハードウェアアクセラレーションを無効にすれば解決するかもしれません、以下を設定:
 
 
{{hc|/etc/adobe/mms.cfg|2=
 
EnableLinuxHWVideoDecode=0
 
}}
 
 
もしくは、ハードウェアアクセラレーションを有効にしておきたい場合、ブラウザを開始する前に次を実行:
 
export VDPAU_NVIDIA_NO_OVERLAY=1
 
 
これを設定するとティアリングが発生するので注意してください。
 
 
=== Xorg がロードに失敗する、またはレッドスクリーンになる ===
 
 
GRUB を使っていてレッドスクリーンになる場合は、{{ic|/etc/default/grub}} を編集して {{ic|GRUB_TERMINAL_OUTPUT}} をアンコメントして GRUB のフレームバッファを無効にしてください。詳しくは [[GRUB#フレームバッファの無効化|GRUB]] を参照。
 
 
=== Intel 内蔵 GPU が載っている環境で黒画面 ===
 
 
内蔵 GPU が搭載された Intel の CPU を使っていて {{Pkg|nvidia}} パッケージをインストールした場合、仮想ターミナルを変更したり、X セッションを終了したとき、または起動時に黒画面になることがあります。これはグラフィックモジュールの衝突が原因です。Intel の GPU モジュールをブラックリストに入れることで解決されます。{{ic|/etc/modprobe.d/blacklist.conf}} ファイルを作成して起動時に ''i915'' と ''intel_agp'' モジュールがロードされないようにしてください:
 
 
{{hc|/etc/modprobe.d/blacklist.conf|
 
install i915 /usr/bin/false
 
install intel_agp /usr/bin/false
 
}}
 
 
=== VIA 内蔵 GPU が載っている環境で黒画面 ===
 
 
上記と同じように、''viafb'' モジュールをブラックリストに入れることで NVIDIA ドライバーとの衝突を解決できます:
 
 
{{hc|/etc/modprobe.d/blacklist.conf|
 
install viafb /usr/bin/false
 
}}
 
 
=== Intel iGPU で "no screens found" によって X が起動しない ===
 
 
Like above, if you have an Intel CPU with an integrated GPU and X fails to start with
 
 
[ 76.633] (EE) No devices detected.
 
[ 76.633] Fatal server error:
 
[ 76.633] no screens found
 
 
then you need to add your discrete card's BusID to your X configuration. Find it:
 
 
{{hc|<nowiki># lspci | grep VGA</nowiki>|
 
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09)
 
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
 
}}
 
 
then you fix it by adding it to the card's Device section in your X configuration. In my case:
 
 
{{hc|/etc/X11/xorg.conf.d/10-nvidia.conf|
 
Section "Device"
 
Identifier "Device0"
 
Driver "nvidia"
 
VendorName "NVIDIA Corporation"
 
BusID "PCI:1:0:0"
 
EndSection
 
}}
 
 
Note how {{ic|01:00.0}} is written as {{ic|1:0:0}}.
 
 
=== Xorg が起動時に失敗するが、問題なく起動する ===
 
 
起動時間がとても短いシステムの場合、NVIDIA ドライバーが完全に初期化される前に systemd がディスプレイマネージャを起動してしまうことがあります。起動時に Xorg が実行された時にだけログに以下のようなメッセージが表示されます。
 
{{hc|/var/log/Xorg.0.log|output=
 
[ 1.807] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the
 
[ 1.807] (EE) NVIDIA(0): system's kernel log for additional error messages and
 
[ 1.808] (EE) NVIDIA(0): consult the NVIDIA README for details.
 
[ 1.808] (EE) NVIDIA(0): *** Aborting ***
 
}}
 
このような場合、ディスプレイマネージャから DRI デバイスまでの順番付けをする必要があります。まず、新しい udev ルールファイルを作成して DRI デバイスのデバイスユニットを作成してください。
 
{{hc|/etc/udev/rules.d/99-systemd-dri-devices.rules|output=
 
ACTION=="add", KERNEL=="card*", SUBSYSTEM=="drm", TAG+="systemd"
 
}}
 
次にディスプレイマネージャからデバイスまでの依存関係を作成します。
 
{{hc|/etc/systemd/system/display-manager.service.d/10-wait-for-dri-devices.conf|output=
 
[Unit]
 
Wants=dev-dri-card0.device
 
After=dev-dri-card0.device
 
}}
 
デスクトップに必要なカードを追加する場合は、Wants と After にスペースで区切って記述してください。
 
 
=== Flash ビデオプレイヤーがクラッシュする ===
 
 
頻繁に Flash ビデオプレイヤーがクラッシュする場合、ハードウェアアクセラレーションをオフにしてみてください:
 
 
{{hc|/etc/adobe/mms.cfg|2=
 
EnableLinuxHWVideoDecode=0
 
}}
 
 
(This problem appeared after installing the proprietary nvidia driver, and was fixed by changing this setting.)
 
 
== 参照 ==
 
   
  +
{{TranslationStatus|NVIDIA|2024-10-14|818972}}
* [http://www.nvnews.net/vbulletin/forumdisplay.php?s=&forumid=14 NVIDIA フォーラム]
 
* [http://http.download.nvidia.com/XFree86/Linux-x86/1.0-7182/README/readme.txt NVIDIA ドライバーの公式 readme]
 

2024年10月14日 (月) 19:41時点における最新版

関連記事

この記事は公式の NVIDIA グラフィックカードドライバをカバーしています。コミュニティによるオープンソースのドライバに関しては、Nouveau を見てください。Intel/NVIDIA のハイブリッドグラフックスを搭載しているノートパソコンを使っている場合は、代わりに NVIDIA Optimus を見て下さい。

インストール

警告: NVIDIA のウェブサイトで提供されているパッケージを通して NVIDIA ドライバをインストールすることは避けてください。pacman 経由でインストールすれば、システムをアップデートした際にドライバもアップデートすることができます。
ノート: ハイブリッドグラフィックスのあるシステム上でデュアルブートする場合は、Windows またはサードパーティのアプリで (ASUS Eco mode のような) Eco mode を有効化すると NVIDIA のディスクリート GPU が完全に無効化され、検出されなくなります。

まず、nouveau wiki のコードネームに関するページで、以下のコマンドで入手した GPU カードのモデル名/公式名に対応するファミリ名を探してください:

$ lspci -k | grep -A 2 -E "(VGA|3D)"

次に、使用しているカードに適したドライバをインストールしてください:

ノート: dkms をインストールするつもりであるならば、Dynamic Kernel Module Support#インストール を読んでください。
GPU ファミリ ドライバ 状態
Turing (NV160/TUXXX) 及びそれ以降 linux には nvidia-open
その他のカーネルには nvidia-open-dkms
上流で推奨されています
現行。サポートあり。1
Maxwell (NV110/GMXXX) から
Ada Lovelace (NV190/ADXXX)
linux には nvidia
linux-lts には nvidia-lts
その他のカーネルには nvidia-dkms
現行。サポートあり。1
Kepler (NVE0/GKXXX) nvidia-470xx-dkmsAUR レガシー。サポートなし。2,3
Fermi (NVC0/GF1XX) nvidia-390xx-dkmsAUR
Tesla (NV50/G80-90-GT2XX) nvidia-340xx-dkmsAUR
Curie (NV40/G70) 及びそれ以前 パッケージはもはや存在しません。
  1. これらのパッケージが動作しない場合 (たいていはハードウェアが新しいことが原因です)、nvidia-open-betaAUR が、新しいハードウェアをサポートしている新しいドライバのバージョンを提供しているかもしれません。
  2. Indirect Branch Tracking との互換性が無いため、第11世代及びそれ以降の Intel CPU を搭載しているシステムで Linux 5.18 (及びそれ以降) においてこれらのドライバは動作しない場合があります。Indirect Branch Tracking は、ブートローダーから ibt=off カーネルパラメータを設定することにより、無効化することができます。ただし、このセキュリティ機能はエクスプロイト手法の一種を緩和する役割があるので注意してください。
  3. NVIDIA はもはやこれらのカードをアクティブにサポートしておらず、これらのドライバは現在の Xorg バージョンを公式にはサポートしていない場合がありますnouveau ドライバを使うほうが簡単かもしれません。しかし、NVIDIA のレガシーなドライバは依然として利用可能であり、3D パフォーマンスまたは安定性に関して優れているかもしれません。

32ビットアプリケーションのサポートに関しては、対応する lib32 パッケージも multilib リポジトリからインストールしてください (例: lib32-nvidia-utils)。

/etc/mkinitcpio.conf 内の HOOKS 配列から kms を削除し、その後 initramfs を再生成してください。こうすることで、initramfs に nouveau モジュールが含まれないようにして、カーネルがこのモジュールを初期ブート中に読み込めないようにします。nvidia-utils パッケージには、再起動後に nouveau モジュールをブラックリスト化するファイルが含まれています。

ノート: Wayland を使用している場合は、#DRM カーネルモード設定 に書かれてあることをするまで再起動するべきではありません。さもないと、再起動後に黒画面になってしまうかもしれません。

ドライバーをインストールしたら、#Xorg 設定 または #Wayland 設定 へと進んでください。

カスタムカーネル

使用中のカーネルで CONFIG_DRM_SIMPLEDRM=y となっていることを確認してください。そして、CONFIG_DEBUG_INFO_BTF を使用している場合、PKGBUILD で以下が必要です (カーネル 5.16 以降):

install -Dt "$builddir/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids

DRM カーネルモード設定

NVIDIA は KMS の自動遅延読み込みをサポートしていないため、Wayland コンポジタを正しく動作させたり、Rootless Xorg を利用できるようにするには DRM (Direct Rendering Manager) カーネルモード設定を有効化する必要があります。

nvidia-utils 560.35.03-5 から DRM はデフォルトで有効化されています。[1] それより古いドライバにおいては、nvidia_drm モジュールに対して modeset=1 カーネルモジュールパラメータを設定してください。

DRM が本当に有効化されているか調べるには、以下のコマンドを実行してください:

# cat /sys/module/nvidia_drm/parameters/modeset

正しく設定されていれば、このコマンドは N ではなく Y と出力するはずです。

ノート: Arch で公式にサポートされているカーネルsimpledrm を有効化します。しかし、NVIDIA ドライバは、nvidia_drm.fbdev が無効化されている/利用できない場合 (バージョン 545 より前)、efifb または vesafb を必要とします。

早期ロード

基本的な機能については先のカーネルパラメータを追加するだけで十分でしょう。可能な限り早い時にロードさせたい場合や、スタートアップ時に問題 (nvidia カーネルモジュールがディスプレイマネージャのあとにロードされてしまうなど) が発生する場合には、nvidianvidia_modesetnvidia_uvm そして nvidia_drm を initramfs に追加することができます。

mkinitcpio

mkinitcpio initramfs を使う場合、mkinitcpio#MODULES に従ってモジュールを追加してください。

モジュールを initramfs に追加した場合、nvidia ドライバーがアップデートされるたびに mkinitcpio を実行することを忘れないようにしてください。この手順を自動化する方法については #Pacman フックをご覧ください。

Booster

Booster を使う場合、Booster#モジュールの早期ロードをご覧ください。

dracut

dracut を使用する場合は、dracut#カーネルモジュールの早期ロード に従ってください。

Pacman フック
ノート: カスタムの pacman フックが必要になるのは、ビルド済みのカーネルモジュールが同梱されているパッケージに対してのみです。*-dkms パッケージは、更新時に mkinitcpio が自動的に実行されるので、このようなカスタムの pacman フックは必要ありません。

NVIDIA ドライバをアップグレードした後に initramfs をアップデートすることを忘れないように、以下のような pacman フックを利用することができます:

/etc/pacman.d/hooks/nvidia.hook
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
# インストールした NVIDIA のパッケージをアンコメントしてください
Target=nvidia
#Target=nvidia-open
#Target=nvidia-lts
# 他のカーネルを使う場合は以下を適宜変更してください
Target=linux

[Action]
Description=Updating NVIDIA module in initcpio
Depends=mkinitcpio
When=PostTransaction
NeedsTargets
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux*) exit 0; esac; done; /usr/bin/mkinitcpio -P'
ノート: 上記の Exec の行が複雑なのは nvidialinux の両方がアップデートされた場合に mkinitcpio が何度も実行されるのを防ぐためです。このことが気にならないのであれば、Target=linuxNeedsTargets の行を削除して、Exec の行は Exec=/usr/bin/mkinitcpio -P のように単純化させることができます。

ビデオデコードのハードウェアアクセラレーション

VDPAU によるビデオデコードのアクセラレーションは GeForce 8 シリーズ及びそれ以降のカードでサポートされています。NVDEC によるビデオデコードのアクセラレーションは Fermi (~400 シリーズ) 及びそれ以降のカードでサポートされています。詳しくは ハードウェアビデオアクセラレーション をご覧ください。

NVENC によるビデオエンコードのハードウェアアクセラレーション

NVENC は nvidia_uvm モジュールと、関連するデバイスノードが /dev 下に作成されることを要求します。

最新のドライバーパッケージは、自動的にデバイスノードを作成する udev ルールを提供するので、追加の操作は必要ありません。

古いドライバ (例えば、nvidia-340xx-dkmsAUR) を使用している場合、デバイスノードを作成する必要があります。nvidia-modprobe ユーティリティを実行するとデバイスノードが自動的に作成されます。/etc/udev/rules.d/70-nvidia.rules を作成して nvidia-modprobe を自動的に実行させることができます:

/etc/udev/rules.d/70-nvidia.rules
ACTION=="add", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/usr/bin/nvidia-modprobe -c 0 -u"

Wayland 設定

Xwayland に関しては Wayland#Xwayland を見てください。

その他の設定オプションについては、それぞれのコンポジタの wiki ページやドキュメントを見てください。

ノート: バージョン 555.xx より前のドライバを使用している場合や、linux-drm-syncobj-v1 プロトコルによって Explicit Sync をサポートしていない Wayland コンポジタを使用している場合、ネイティブの Wayland アプリと Xwayland アプリの両方でちらつき、フレーム順序の狂いなどの問題が発生する可能性があります。

基本的なサポート

nvidia_drm モジュールの重要なカーネルパラメータは2つあります。

modeset

全ての Wayland 構成において modeset を有効化することは必須です。

サポートされているドライバを使用している場合はデフォルトで有効化されています。将来的には、上流においてもこれがデフォルトとなる予定です。

サポートの無いドライバについては、modeset を手動で有効化する必要があります。詳細は #DRM カーネルモード設定Wayland#要件 を見てください。

fbdev

一部の Wayland 構成においては fbdev を有効化する必要があります。

サポートされているドライバを使用している場合はデフォルトで有効化されています。将来的には、上流においてもこれがデフォルトとなる予定です。

Linux 6.11 以降においてこれは厳しい要件ですが、これが仕様なのかバグなのかは現在明らかになっていません。詳細は [2] を参照してください。

これは modesetting パラメータと同じようにして設定することができます。ただし、以下のコマンドの出力は modesetting と異なります:

# cat /sys/module/nvidia_drm/parameters/fbdev

fbdev が設定されていない場合は、このコマンドは N を出力するのではなく、ファイルが存在しないことを示すエラーが発生します。

サスペンドのサポート

Wayland でのサスペンドは X よりもデフォルトの設定の問題が発生しやすいです。詳細は NVIDIA/ヒントとテクニック#サスペンド後にビデオメモリを保持する を参照してください。

GDM を使用している場合は、GDM#Wayland とプロプライエタリな NVIDIA ドライバ も参照してください。

Xorg 設定

プロプライエタリな NVIDIA グラフィックドライバは Xorg サーバの設定ファイルを必要としません。X を起動してみて、Xorg サーバが設定ファイル無しで正しく機能するかを確認することができます。しか、様々な設定を調整するために設定ファイル (/etc/X11/xorg.conf よりも /etc/X11/xorg.conf.d/20-nvidia.conf を優先して使用してください) を作成する必要があるかもしれません。この設定は、NVIDIA Xorg 設定ツールによって生成することができますし、手動で作成することもできます。手動で作成した場合、(Xorg サーバに基本的なオプションのみを与えると言う意味で) 最小の設定にすることができますし、あるいは、Xorg の自動検出されたオプションや事前設定されたオプションをバイパスできる設定を含めることもできます。

ヒント: その他の設定オプションは、NVIDIA/トラブルシューティング を見てください。

自動設定

NVIDIA のパッケージには、Xorg サーバの設定ファイル (xorg.conf) を作成するための自動設定ツールが含まれています。次のコマンドで実行できます:

# nvidia-xconfig

このコマンドは /etc/X11/xorg.conf を自動検出し、現在のハードウェアに応じてそのファイルを作成 (すでに存在する場合は編集) します。

DRI のインスタンスがある場合は、コメントアウトされているか確認してください:

#    Load        "dri"

デフォルトの深度、水平同期、垂直リフレッシュ、そして解像度が問題ないか /etc/X11/xorg.conf を二重にチェックしてください。

nvidia-settings

nvidia-settings は CLI または GUI を使って様々なオプションを設定することができるツールです。何もオプションをつけずに nvidia-settings を実行すると GUI が起動します。CLI のオプションについては nvidia-settings(1) を見てください。

nvidia-settings の CLI/GUI は非 root なユーザとして実行でき、nvidia-settings Configuration タブにある Save Current Configuration オプションで設定を ~/.nvidia-settings-rc に保存できます。

現在のユーザで ~/.nvidia-settings-rc をロードするには:

$ nvidia-settings --load-config-only

起動時に毎回このコマンドを実行させるには自動起動を見てください。

ノート:
  • nvidia-settings から変更を加えると Xorg が起動しなくなったりクラッシュするようになったりすることがあります。生成された ~/.nvidia-settings-rcXorg のファイルの両方/片方を調整するか削除することで普通に起動できるようになるはずです。
  • Cinnamon デスクトップは nvidia-settings を通して作成された設定を上書きしてしまうことがあります。Cinnamon の起動時の挙動を変更して、設定を上書きしないようにすることができます。

手動設定

設定ファイルを編集することで、(自動的に、または nvidia-settingsによって有効化できない) いくつかの微調整をすることができます。変更を適用する前に Xorg サーバーを再起動する必要があります。

その他の詳細やオプションについては NVIDIA Accelerated Linux Graphics Driver README and Installation Guide をご覧ください。

最小設定

20-nvidia.conf (もしくは非推奨の xorg.conf) の基本的な設定ブロックは以下のようになります:

/etc/X11/xorg.conf.d/20-nvidia.conf
Section "Device"
        Identifier "NVIDIA Card"
        Driver "nvidia"
        VendorName "NVIDIA Corporation"
        BoardName "GeForce GTX 1050 Ti"
EndSection

起動時のロゴを無効化

古いドライバ (nvidia-340xx-dkmsAUR) を使用している場合、X の起動時に表示される NVIDIA ロゴスプラッシュスクリーンを無効化しておいたほうがいいかもしれません。Device セクション内に "NoLogo" オプションを追加してください:

Option "NoLogo" "1"

モニター検出をオーバーライド

Device セクション内の "ConnectedMonitor" オプションにより、 X サーバーが起動した時にモニター検出をオーバーライドできます。これにより、起動時間を大幅に減らせるかもしれません。利用可能なオプション: アナログ接続用の "CRT"、デジタルモニター用の "DFP"、テレビ用の "TV"

以下の行は起動時のチェックをバイパスし、モニターを DFP として認識することを NVIDIA ドライバーに強制します:

Option "ConnectedMonitor" "DFP"
ノート: たとえディスプレイが薄型パネルであろうと、アナログ15ピン VGA 接続に対しては "CRT" を使用してください。"DFP" は DVI や HDMI、DisplayPort のデジタル接続のみを意図しています。

輝度調整を有効化

この記事またはセクションは情報が古くなっています。
理由: 時代遅れの可能性あり[3]。上流のパッケージも古いようです。 (Discuss)

以下をカーネルパラメータに追加してください:

nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1

あるいは、以下を Device セクション内に追加してください:

Option "RegistryDwords" "EnableBrightnessControl=1"

もし、この設定で輝度調整がまだ機能しない場合は、nvidia-bl-dkmsAUR をインストールしてみてください。

ノート: nvidia-bl-dkmsAUR をインストールすることにより、バックライト輝度調整用の /sys/class/backlight/nvidia_backlight/ インターフェイスが提供されます。しかし、システムが /sys/class/backlight/acpi_video0/ に対してバックライト制御の変更を発行し続けるかもしれません。この場合の1つの解決策は、例えば、inotifywait を使用して acpi_video0/brightness の変更を監視し、それを変換して nvidia_backlight/brightness に対して書き込むことです。バックライト#sysfs を変更しても明るさが変更されない をご覧ください。

SLI を有効化

警告: GTX 10xx シリーズ (1080、1070、1060 など) 以降は 2-way SLI のみがサポートされます。3-way や 4-way SLI は CUDA/OpenCL アプリケーションに対しては機能するかもしれませんが、すべての OpenGL アプリケーションに対してはたいてい機能しないでしょう。

NVIDIA ドライバーの README 付録 B によると: このオプションは、サポートされている構成で SLI レンダリングの設定を制御します。 "サポートされている構成"とは SLI 認定マザーボードと、2基または3基の SLI 認定 GeForce GPU を搭載しているコンピュータのことです。

lspci を使って1つ目の GPU の PCI Bus ID を調べてください:

# lspci | grep -E "VGA|3D controller"
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09)
03:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
04:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
08:00.0 3D controller: NVIDIA Corporation GM108GLM [Quadro K620M / Quadro M500M] (rev a2)

調べた BusID (前述の例では 3) を Device セクション内に追加してください:

BusID "PCI:3:0:0"
ノート: フォーマットが重要です。BusID の値は "PCI:<BusID>:0:0" のように指定されなければなりません。

希望する SLI レンダリングモードの値を Screen セクション内に追加してください:

Option "SLI" "AA"

以下の表は利用可能なレンダリングモードです。

挙動
0, no, off, false, Single レンダリング時にただ1つの GPU を使う。
1, yes, on, true, Auto SLI を有効化し、ドライバーが自動的に適切なレンダリングモードを選択することを許可する。
AFR SLI を有効化し、Alternate Frame Rendering モードを使う。
SFR SLI を有効化し、Split Frame Rendering モードを使う。
AA SLI を有効化し、SLI アンチエイリアシングを使う。この値を Full-Scene アンチエイリアシングと一緒に使うと視覚品質が向上します。

あるいは、nvidia-xconfig ユーティリティを使って、これらの変更を xorg.conf に追加できます:

# nvidia-xconfig --busid=PCI:3:0:0 --sli=AA

SLI モードが有効化されていることをシェルから確認するには:

$ nvidia-settings -q all | grep SLIMode
  Attribute 'SLIMode' (arch:0.0): AA
    'SLIMode' is a string attribute.
    'SLIMode' is a read-only attribute.
    'SLIMode' can use the following target types: X Screen.
警告: SLI を有効化した後に xorg を起動するとシステムがフリーズしたり、応答しなくなったりするかもしれません。再起動する前にディスプレイマネージャーを無効化することをおすすめします。

以上の設定で機能しない場合は、nvidia-settings で得られる PCI Bus ID を使用する必要があるかもしれません。

$ nvidia-settings -q all | grep -i pcibus
Attribute 'PCIBus' (host:0[gpu:0]): 101.
  'PCIBus' is an integer attribute.
  'PCIBus' is a read-only attribute.
  'PCIBus' can use the following target types: GPU, SDI Input Device.
Attribute 'PCIBus' (host:0[gpu:1]): 23.
  'PCIBus' is an integer attribute.
  'PCIBus' is a read-only attribute.
  'PCIBus' can use the following target types: GPU, SDI Input Device.

そして、xorg.d 内の PrimaryGPU オプションをコメントアウトしてください:

/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
...

Section "OutputClass"
...
    # Option "PrimaryGPU" "yes"
...

この設定でグラフィカルブートの問題も解決できるかもしれません。

マルチモニター

一般的な情報は マルチディスプレイ を見て下さい。

NVIDIA Settings を使う

nvidia-settings ツールを使ってマルチモニターを設定できます。

CLI で設定する場合、まずは以下を実行して CurrentMetaMode を確認してください:

$ nvidia-settings -q CurrentMetaMode
Attribute 'CurrentMetaMode' (hostnmae:0.0): id=50, switchable=no, source=nv-control :: DPY-1: 2880x1620 @2880x1620 +0+0 {ViewPortIn=2880x1620, ViewPortOut=2880x1620+0+0}

:: 以降の全て (上記の場合: DPY-1: 2880x1620 @2880x1620 +0+0 {ViewPortIn=2880x1620, ViewPortOut=2880x1620+0+0}) を使って nvidia-settings --assign "CurrentMetaMode=your_meta_mode" でディスプレイを再設定できます。

ヒント: 使用するモニターや解像度の設定ごとにシェルのエイリアスを作成すると便利です。

ConnectedMonitor

ドライバーがセカンドモニタを正しく認識しない場合は、ConnectedMonitor を使って認識するように強制できます。

/etc/X11/xorg.conf

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Panasonic"
    ModelName      "Panasonic MICRON 2100Ex"
    HorizSync       30.0 - 121.0 # this monitor has incorrect EDID, hence Option "UseEDIDFreqs" "false"
    VertRefresh     50.0 - 160.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor2"
    VendorName     "Gateway"
    ModelName      "GatewayVX1120"
    HorizSync       30.0 - 121.0
    VertRefresh     50.0 - 160.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    Option         "NoLogo"
    Option         "UseEDIDFreqs" "false"
    Option         "ConnectedMonitor" "CRT,CRT"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 6200 LE"
    BusID          "PCI:3:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device2"
    Driver         "nvidia"
    Option         "NoLogo"
    Option         "UseEDIDFreqs" "false"
    Option         "ConnectedMonitor" "CRT,CRT"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 6200 LE"
    BusID          "PCI:3:0:0"
    Screen          1
EndSection

TwinView を使わずに1つのカードで2つのモニターを X で使うために Screen でデバイスを複製しています。nvidia-settings は追加した ConnectedMonitor オプションを全て消してしまうので注意してください。

TwinView

画面を2つ表示するのではなく1つの大きな画面を表示したい場合、TwinView 引数を 1 に設定してください。コンポジットを使いたい場合、このオプションを使用する必要があります。TwinView は全てのモニターが同一のカードに接続されている場合にのみ機能します。

Option "TwinView" "1"

設定例:

/etc/X11/xorg.conf.d/10-monitor.conf
Section "ServerLayout"
    Identifier     "TwinLayout"
    Screen         0 "metaScreen" 0 0
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    Option         "Enable" "true"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    Option         "Enable" "true"
EndSection

Section "Device"
    Identifier     "Card0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"

    #refer to the link below for more information on each of the following options.
    Option         "HorizSync"          "DFP-0: 28-33; DFP-1 28-33"
    Option         "VertRefresh"        "DFP-0: 43-73; DFP-1 43-73"
    Option         "MetaModes"          "1920x1080, 1920x1080"
    Option         "ConnectedMonitor"   "DFP-0, DFP-1"
    Option         "MetaModeOrientation" "DFP-1 LeftOf DFP-0"
EndSection

Section "Screen"
    Identifier     "metaScreen"
    Device         "Card0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "True"
    SubSection "Display"
        Modes          "1920x1080"
    EndSubSection
EndSection

Device オプション情報

SLI に対応しているカードが複数枚存在する場合、別々のカードに接続された複数のモニターを使うことができます (例: 2枚のカードが SLI で、各々のカードにモニターが1台ずつ接続)。SLI モザイクモードと "MetaModes" オプションで有効になります。以下は上記と同じように設定する例で、GNOME が完璧に動作します:

/etc/X11/xorg.conf.d/10-monitor.conf
Section "Device"
        Identifier      "Card A"
        Driver          "nvidia"
        BusID           "PCI:1:00:0"
EndSection

Section "Device"
        Identifier      "Card B"
        Driver          "nvidia"
        BusID           "PCI:2:00:0"
EndSection

Section "Monitor"
        Identifier      "Right Monitor"
EndSection

Section "Monitor"
        Identifier      "Left Monitor"
EndSection

Section "Screen"
        Identifier      "Right Screen"
        Device          "Card A"
        Monitor         "Right Monitor"
        DefaultDepth    24
        Option          "SLI" "Mosaic"
        Option          "Stereo" "0"
        Option          "BaseMosaic" "True"
        Option          "MetaModes" "GPU-0.DFP-0: 1920x1200+4480+0, GPU-1.DFP-0:1920x1200+0+0"
        SubSection      "Display"
                        Depth           24
        EndSubSection
EndSection

Section "Screen"
        Identifier      "Left Screen"
        Device          "Card B"
        Monitor         "Left Monitor"
        DefaultDepth    24
        Option          "SLI" "Mosaic"
        Option          "Stereo" "0"
        Option          "BaseMosaic" "True"
        Option          "MetaModes" "GPU-0.DFP-0: 1920x1200+4480+0, GPU-1.DFP-0:1920x1200+0+0"
        SubSection      "Display"
                        Depth           24
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "Default"
        Screen 0        "Right Screen" 0 0
        Option          "Xinerama" "0"
EndSection
TwinView を使って垂直同期

TwinView と垂直同期 (nvidia-settings の "Sync to VBlank" オプション) を使っている場合、モニターの大きさが異なっていると片方の画面だけが同期されます。nvidia-settings にはどちらの画面を同期させるか設定するオプション ("Sync to this display device" オプション) が存在しますが、必ずしも機能するとはいいがたいです。起動時に以下の環境変数を追加することで解決します (例: /etc/profile に追加):

export __GL_SYNC_TO_VBLANK=1
export __GL_SYNC_DISPLAY_DEVICE=DFP-0
export VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE=DFP-0

DFP-0 は適切な画面に置き換えてください (DFP-0 は DVI 端子で CRT-0 は VGA 端子です)。ディスプレイの識別名は nvidia-settings の "X Server XVideoSettings" セクションで確認できます。

Twinview を使ってゲームを遊ぶ

TwinView を使ってフルスクリーンのゲームを遊ぶ場合、2つの画面が1つの大きな画面としてゲームから認識されることがあります。技術的にこれは正しいのですが (仮想的な X スクリーンの横幅は両方の画面を合わせたサイズになります)、ゲームを遊ぶときは両方の画面を使わないようにしたいときもあるでしょう。

SDL のこの挙動を修正するには、次を試して下さい:

export SDL_VIDEO_FULLSCREEN_HEAD=1

OpenGL の場合、xorg.confDevice セクションに適切な Metamodes を追加して X を再起動してください:

Option "Metamodes" "1680x1050,1680x1050; 1280x1024,1280x1024; 1680x1050,NULL; 1280x1024,NULL;"

別の X サーバーでゲームを起動する方法もあります。上記の方法と一緒に使うことも可能です。

モザイクモード

モザイクモードは、複数のグラフィクカードでコンポジット有りで3つ以上のモニタを使用する唯一の方法です。ウィンドウマネージャは各モニタの違いを認識するかもしれませんし、しないかもしれません。モザイクモードには、有効な SLI 設定が必要です。SLI を使わずにベースモードを使用する場合でも、GPU は依然として SLI 対応/互換でなければなりません。

ベースモザイク

ベースモザイクモードは Geforce 8000 シリーズ以上の GPU で動作します。nvidia-setting の GUI から有効にすることはできません。nvidia-xconfig コマンドラインプログラムを使用するか xorg.conf を手動で編集する必要があります。Metamodes を指定してください。以下は4台の DFP を 2x2 の構成で使用する例です。各々の解像度は 1920x1024 で、2枚のカードにそれぞれ2台の DFP が接続されている場合:

$ nvidia-xconfig --base-mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"
ノート: ドキュメントには 2x2 のモニター構成が記述されていますが、Base Mosaic モードでGeForce カードは人為的にモニタ3台に制限されています。Quadro カードは4台以上のモニタをサポートしています。2014年9月現在、Windows ドライバはこの人為的な制限を落としましたが、Linux ドライバでは未だに残っています。
SLI モザイク

SLI 構成を使っていて、使用する GPU が Quadro FX 5800 や Quadro Fermi 以降の場合、SLI モザイクモードが利用できます。nvidia-settings の GUI の中から有効化するか、コマンドラインで設定してください:

$ nvidia-xconfig --sli=Mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"

NVswitch

NVswitch のあるシステム (AWS の H100x8 など) では、以下が必要です。

  • nvidia-fabricmanager をインストールする。
  • Fabric manager が必要とする、対応するカーネルモジュールをインストールする。

Fabric manager を使うと、pytorch が GPU が見つからないと報告してきます。

Fabric マネージャをインストールするには:

  1. Nvidia から tarball をダウンロードする。こちら
  2. バージョン 555.42.02 は正しく動作します。
  3. インストールスクリプト sbin/fm_run_package_installer.sh を変更してしてインストール先のパスを修正してください。

対応するカーネルドライバを入手するには:

  1. nvidia-beta-dkms と nvidia-utils-beta の AUR リポジトリを git clone してください。
  2. PKGBUILD を変更してバージョン 555.42.02 を使用するようにしてください。
  3. ビルドし、インストールしてください。
  4. 再起動してください。

最後に、systemctl enable nvidia-fabricmanagersystemctl start nvidia-fabricmanager を実行すれば、pytorch が動くはずです。

ヒントとテクニック

NVIDIA/ヒントとテクニック を参照。

トラブルシューティング

NVIDIA/トラブルシューティング を参照。

参照

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