NVIDIA (日本語) - ArchWiki

# NVIDIA (日本語)

関連記事

- Nouveau
- Bumblebee
- NVIDIA Optimus
- Xorg

この記事は、NVIDIA のプロプライエタリなグラフィックカードドライバのインストールと設定をカバーしています。オープンソースのドライバについての情報に関しては、 Nouveau を見てください。NVIDIA Optimus の技術が利用できるラップトップを使っている場合は NVIDIA Optimus を見て下さい。

## インストール

以下は、標準の linux または linux-lts パッケージを使っている人向けの指示です。カスタムカーネルを使っている場合のセットアップは、次のサブセクションまで読み飛ばしてください。

Tip: NVIDIA ドライバをインストールするときは NVIDIA のサイトで提供されているパッケージよりも pacman を使った方が基本的に有益です。なぜなら、そうすることで、システムをアップデートした際にドライバもアップデートすることができるからです。
Warning: ドライバーのバージョンを混合させると動作しません。最新のブランチと、古いブランチの32ビット libGL パッケージを使用することはできません。

1. あなたの使っているグラフィックカードが何かわからない場合は、次を実行することで確認してください:

      $ lspci -k | grep -A 2 -i "VGA"

2. NVIDIA の ドライバーダウンロードサイト を見てあなたのカードに適切なドライバーのバージョンを確認して下さい。また、NVIDIA の レガシーなカードリスト や nouveau wiki のコードネームのページ も使って下さい。

3. あなたのカードに合わせて適切なドライバーをインストールしてください:

  - GeForce 400 シリーズとそれよりも新しいカード [NVCx 以降] の場合は、公式リポジトリにある nvidia または nvidia-lts パッケージをインストールしてください。
  - 2006年から2010年の GeForce 8000/9000 と 100-300 シリーズのカード [NV5x, NV8x, NV9x, NVAx] の場合は、公式リポジトリにある nvidia-340xx または nvidia-340xx-lts パッケージをインストールしてください。
  - 2004年から2006年の GeForce 6000/7000 シリーズのカード [NV4x と NV6x] の場合は、公式リポジトリにある nvidia-304xx または nvidia-304xx-lts パッケージをインストールしてください。
  - さらに古いカードの場合は、サポートがないドライバーを見て下さい。
  - 一番最新の GPU モデルを使う場合、安定版のドライバーでは新しく導入された機能をサポートしていないために、Arch User Repository から nvidia-beta をインストールする必要があるかもしれません。
  マシンが64ビット環境で32ビットの OpenGL サポートが必要な場合は、multilib リポジトリから相当する lib32 パッケージもインストールしてください (例: lib32-nvidia-libgl, lib32-nvidia-340xx-libgl, lib32-nvidia-304xx-libgl)。

4. 再起動してください。nvidia パッケージには nouveau モジュールをブラックリスト化するファイルが含まれているため、再起動が必須になります。

ドライバーをインストールしたら、続けて設定へと進んでください。

### サポートがないドライバー

GeForce 5 FX シリーズ以前のカードを使っている場合、Nvidia はあなたの使っているカードのドライバーのサポートを既に打ち切っています。それらのドライバーは最新バージョンの Xorg をサポートしません。最新の Xorg を古いカードでもサポートしている、nouveau ドライバーを使うほうが楽だということになります。

しかしながら、Nvidia のドライバーの方が 3D のパフォーマンスや安定性では上だということもあるでしょう。Nvidia のドライバーを使いたい場合は、Arch User Repository からインストールすることできます (古いバージョンの Xorg も一緒に):

- GeForce 5 FX シリーズのカード [NV30-NV36] の場合は、nvidia-173xx パッケージをインストールしてください。最後にサポートされた Xorg のバージョンは 1.15 です。
- GeForce 2/3/4 MX/Ti シリーズのカード [NV11, NV17-NV28] の場合は、nvidia-96xx パッケージをインストールしてください。最後にサポートされた Xorg のバージョンは 1.12 です。

Tip: レガシーな nvidia-96xx と nvidia-173xx ドライバーは非公式の [city] リポジトリ からもインストールできます (ここからインストールする時は依存関係の制限をスキップしないことを強く推奨します)。

### Alternate install: カスタムカーネル

まず最初に、ABS システムがどのような働きをするのかを他の記事をいくつか読んで知ると良いでしょう:

- ABS の本記事
- makepkg についての記事
- パッケージの作成についての記事

Note: AUR にある nvidia-all パッケージによってカスタムカーネルや複数のカーネルと一緒に簡単に使えるようにすることもできます。

以下の内容は、ABS を使用して NVIDIA ドライバのカスタムパッケージを作るための簡単なチュートリアルです:

公式リポジトリから abs をインストールしてツリーを生成します:

    # abs

一般ユーザーで、新しいパッケージを作るための一時ディレクトリを作成します:

    $ mkdir -p ~/abs

`nvidia` パッケージのディレクトリのコピーを作成します:

    $ cp -r /var/abs/extra/nvidia/ ~/abs/

`nvidia` のビルドをする一時ディレクトリの中へ移動します:

    $ cd ~/abs/nvidia

`nvidia.install` と `PKGBUILD` が正しいカーネルバージョン変数を含むように、それらのファイルを編集する必要があります。

カスタムカーネルを実行している間に、適切なカーネルとローカルバージョン名を得ましょう:

    $ uname -r

1. nvidia.install 内の、`EXTRAMODULES='extramodules-3.4-ARCH'` 変数をカスタムカーネルのバージョンで置き換えます。例えば、`EXTRAMODULES='extramodules-3.4.4'` や `EXTRAMODULES='extramodules-3.4.4-custom'` のようにしてください。これの値はカーネルのバージョンやローカルバージョンのテキスト・数字によります。このファイルの中のすべてのバージョン番号に対して置換を行ってください。
2. PKGBUILD にある、`_extramodules=extramodules-3.4-ARCH` 変数を変更して、上記と同じように、適切なバージョンに直して下さい。
3. 複数のカーネルを並列に (デフォルトの -ARCH カーネルとカスタムカーネルが並ぶように) システムにインストールしているのならば、PKGBUILD の `pkgname=nvidia` 変数を一意な識別子、例えば nvidia-2622 や nvidia-custom へと変更します。こうすることで、カスタム nvidia モジュールは異なるパッケージ名となり、オリジナルのパッケージを上書きしないようになるので、両方のカーネルが NVIDIA モジュールを使えるようにできます。また、`package()` 内にある `/usr/lib/modprobe.d/nvidia.conf` の nouveau モジュールをブラックリスト化する行をコメントアウトしてください (二度する必要はありません)。

それから次を実行します:

    $ makepkg -ci

`-c` オプションは、パッケージのビルドが終わった後にファイルを片付けるように makepkg に指示します。`-i` は makepkg が自動で pacman を起動して作成したパッケージをインストールするように指示します。

### カーネルの更新時に NVIDIA モジュールを自動的にリコンパイルする

これは AUR の nvidia-hook によって可能です。モジュールのソースをインストールする必要があります: nvidia-dkms。nvidia-hook で、linux-headers パッケージの更新が終わった後に mkinitcpio の nvidia hook によって'自動リコンパイル'が行われます。`/etc/mkinitcpio.conf` の HOOKS に 'nvidia' を追加してください。

このフックは dkms コマンドを呼び出して新しいカーネルのバージョンにあわせて NVIDIA モジュールを更新します。

Note:

- この機能を使う場合は linux (もしくは他のカーネルの) パッケージのインストールプロセスをよく見ることが重要です。nvidia hook は何か問題が発生したときにメッセージを表示します。
- これを手動でやりたい場合は arch wiki の dkms のセクションを見て下さい。

## 設定

おそらく、ドライバをインストールした後に Xorg サーバーの設定ファイルを作成する必要はありません。テストを実行することで Xorg サーバーが設定ファイルなしで問題なく機能するかどうか調べられます。しかし、様々な設定を調節するために設定ファイル (`/etc/X11/xorg.conf` よりも `/etc/X11/xorg.conf.d/20-nvidia.conf` が好ましい) を作成することが要求されるかもしれません。この設定は NVIDIA の Xorg 設定ツールで生成することが可能で、あるいは、手動でも作成できます。手動で作成する場合、(Xorg サーバーに基本的なオプションだけを与えるという) 最小設定だけを行うこともできますし、逆に、Xorg によって自動検知されたり事前に設定されたオプションを無視する設定を多数含めてもかまいません。

Note: 1.8.x から Xorg は `/etc/X11/xorg.conf.d/` 下の設定ファイルを使うようになっています - 高度な設定のセクションを確認してください。

### 最小設定

`20-nvidia.conf` (もしくは廃止された `xorg.conf`) の基本的な設定ブロックは以下のようになります:

    /etc/X11/xorg.conf.d/20-nvidia.conf

    Section "Device"
            Identifier "Nvidia Card"
            Driver "nvidia"
            VendorName "NVIDIA Corporation"
            Option "NoLogo" "true"
            #Option "UseEDID" "false"
            #Option "ConnectedMonitor" "DFP"
            # ...
    EndSection

Tip: nouveau からアップグレードする場合は `/etc/mkinitcpio.conf` から "`nouveau`" を削除してください。オープン・プロプライエタリのドライバを頻繁に切り替えるのならば、NVIDIA と nouveau ドライバーの切り替えを見て下さい。

### 自動設定

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

    # nvidia-xconfig

このコマンドは現在のハードウェアを自動検知して `/etc/X11/xorg.conf` の設定を作成（既に存在する場合は編集）します。

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

    #    Load        "dri"

デフォルトの depth, horizontal sync, vertical refresh, resolutions が問題ないか `/etc/X11/xorg.conf` を再確認してください。

Warning: Xorg-server 1.8 ではまだ正しく動作しない可能性があります。

### マルチモニター

マルチモニターに関する一般的な情報は Multihead を見て下さい。

#### NVIDIA Settings を使う

nvidia-utils に入っている `nvidia-settings` ツールを使ってマルチモニターのセットアップができます。この方法では、NVIDIA がドライバーと一緒に提供しているプロプライエタリのソフトウェアを使います。root で `nvidia-settings` を実行して、好きなように設定を行なって、それから設定を `/etc/X11/xorg.conf.d/10-monitor.conf` に保存してください。

#### 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

You want only one big screen instead of two. Set the `TwinView` argument to `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"

Example configuration:

    /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 option information.

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 flawlessly.

    /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

##### xrandr による手動の CLI 設定

If the latest solutions don't work for you, you can use your window manager's autostart implementation with xorg-xrandr.

`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

コマンドの意味:

- `--output` is used to indicate the "monitor" to which the options are set.
- `DVI-I-1` is the name of the second monitor.
- `--pos` is the position of the second monitor relative to the first.
- `--mode` is the resolution of the second monitor.
- `--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 `nvidia-xconfig` command line program or edit `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 パッケージには `nvidia-settings` プログラムが含まれており複数の設定の調整を行うことが可能です。

ログイン時に設定をロードするには、ターミナルから次のコマンドを実行してください:

    $ nvidia-settings --load-config-only

デスクトップ環境の auto-startup を使う方法ではおそらく nvidia-settings を正しくロードできません (KDE)。設定を確実にロードするには `~/.xinitrc` ファイル (存在しないときは作成してください) に上のコマンドを記述してください。

Firefox のようなピクセルマップを使うアプリケーションでの 2D グラフィックのパフォーマンスを著しく上げるには、`InitialPixmapPlacement` パラメータを2に設定してください:

    $ nvidia-settings -a InitialPixmapPlacement=2

これは nvidia-settings のソースコード の中に書かれています。この設定を永続させるには、起動毎に上記コマンドを実行する必要があります。`~/.xinitrc` ファイルに追記することで X で自動実行できます。

Tip: 稀に `~/.nvidia-settings-rc` が破損することがあり、この場合、Xorg サーバーがクラッシュします。問題を解決するにはこのファイルを削除しなくてはなりません。

### 高度な設定: 20-nvidia.conf

`/etc/X11/xorg.conf.d/20-nvidia.conf` を編集して、適切なセクションにオプションを追加します。変更を適用するには Xorg サーバーを再起動する必要があります。

詳しい説明やオプションは NVIDIA Accelerated Linux Graphics Driver README and Installation Guide を見て下さい。

#### デスクトップのコンポジットを有効にする

NVIDIA ドライバーのバージョン 180.44 から、Damage and Composite X 拡張で GLX のサポートがデフォルトで有効になっています。詳しい説明は Xorg のページを参照してください。

#### 起動時のロゴを無効にする

`Device` セクションの下に `"NoLogo"` オプションを追加してください:

    Option "NoLogo" "1"

#### ハードウェアアクセラレーションを有効にする

Note: ドライバーバージョン 97.46.xx から RenderAccel はデフォルトで有効になっています。

`Device` セクションの下に `"RenderAccel"` オプションを追加してください:

    Option "RenderAccel" "1"

#### モニターの検出を上書きする

The `"ConnectedMonitor"` option under section `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: `"CRT"` for analog connections, `"DFP"` for digital monitors and `"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.

#### トリプルバッファリングを有効にする

トリプルバッファリングの使用を有効にするには `Device` セクションの下に `"TripleBuffer"` オプションを追加してください:

    Option "TripleBuffer" "1"

このオプションを使うのはグラフィックカードに ram が多く載っているとき (128MB 以上) にしてください。この設定が適用されるのは nvidia-settings にあるオプションの一つである、vblank の同期が有効になっているときだけです。

Note: このオプションはフルスクリーンの時にちらつきを発生させたりパフォーマンスを下げてしまう可能性があります。R300 ドライバーでは、vblank はデフォルトで有効です。

#### 省電力機能を有効にする

`Monitor` セクションの下に追加してください:

    Option "DPMS" "1"

#### 輝度調整を有効にする

`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 ドライバーの README appendix より: このオプションはサポートされている環境で SLI レンダリングの設定をコントロールします。"サポートされている環境"とは SLI 対応のマザーボードを搭載し SLI 対応の GeForce GPU が2枚か3枚刺さっているコンピューターのことです。詳しくは NVIDIA の SLI Zone を見て下さい。

まず `lspci` を使って一番目の GPU の PCI Bus ID を確認してください:

    $ lspci | grep VGA

    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)

`Device` セクションの下に BusID を追加してください (上記の例では3):

    BusID "PCI:3:0:0"

Note: The format is important. The BusID value must be specified as `"PCI:<BusID>:0:0"`

使用したい SLI レンダリングモードの値を `Screen` セクションの下に追加してください:

    Option "SLI" "AA"

以下の表は利用できるレンダリングモードを示しています。

値 | 挙動
--- | ---
0, no, off, false, Single | レンダリングの際には単一の GPU だけを使用。
1, yes, on, true, Auto | SLI を有効にしてドライバーに適切なレンダリングモードを自動で選択させる。
AFR | SLI を有効にして alternate フレームレンダリングモードを使用する。
SFR | SLI を有効にして split フレームレンダリングモードを使用する。
AA | SLI を有効にして SLI アンチエイリアスを使用する。これをフルシーンアンチエイリアスと一緒に使うことで見栄えが良くなります。

もしくは、`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.

Warning: SLI を有効にした後、xorg の起動時にシステムがフリーズしたり反応しなくなることがあります。再起動する前にディスプレイマネージャを無効にすることを推奨します。

#### Powermizer のパフォーマンスレベルを強制する (ラップトップ)

`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 のパフォーマンスレベルを温度によって設定する

`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 やメモリのオーバークロックは `Device` セクションの Coolbits オプションによって制御され、サポートされない機能が使えるようになります:

    Option "Coolbits" "value"

Coolbits の値は2進法でビットを立てた合計になります。それぞれのビットの意味は:

- `1` (ビット 0) - (Fermi 以前の) 古いコアで nvidia-settings の Clock Frequencies ページからオーバークロックできるようになります。
- `2` (ビット 1) - このビットが設定されると、ドライバーは GPU を使う際に様々な量のビデオメモリで SLI を初期化しようとします。
- `4` (ビット 2) - GPU のファンの速度の手動設定が nvidia-settings の Thermal Monitor ページで可能になります。
- `8` (ビット 3) - Fermi 以降の新しいコアで nvidia-settings の PowerMizer ページからオーバークロックできるようになります。バージョン 337.12 から使えるようになりました [1]。
- `16` (ビット 4) - Fermi 以降の新しいコアで nvidia-settings の CLI オプションを使って電圧アップができるようになります。バージョン 346.16 から使えるようになりました [2]。

複数の機能を有効にするには、合計した Coolbits の値を追加します。例えば、オーバークロックと Fermi コアの電圧アップを有効にするには、`Option "Coolbits" "24"` と設定します。

Coolbits のドキュメントは `/usr/share/doc/nvidia/html/xconfigoptions.html` にあります。Coolbits に関するドライバーバージョン 346.16 のドキュメントはオンラインで こちらから 見ることができます。

Note: An alternative is to edit and reflash the GPU BIOS either under DOS (preferred), or within a Win32 environment by way of nvflash[dead link 2013-05-25] and 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. Fermi BIOS modification tutorial

##### 静的な 2D/3D クロックを設定する

以下の文字列を `Device` セクションに設定すると PowerMizer がパフォーマンス最高レベルで有効になります (この行がないと VSync が動作しません):

    Option "RegistryDwords" "PerfLevelSrc=0x2222"

## Tips and tricks

### ターミナルの解像度を修正する

nouveau からドライバーを変えた場合、起動時のターミナルが低解像度で表示されるようになることがあります。

#### GRUB

GRUB を使っている場合、`/etc/default/grub` の `GRUB_GFXMODE` 行を適切なディスプレイ解像度に編集することで修正できます。デフォルトの `auto` を含め、複数の解像度を指定できるので、次のように編集することを推奨します: `GRUB_GFXMODE=<desired resolution>,<fallback such as 1024x768>,auto`。詳しくは、GRUB の gfxmode のドキュメントを参照してください。

### Pure Video HD を有効にする (VDPAU/VAAPI)

必要なハードウェア:

第2世代の PureVideo HD が載っているビデオカード [3]。

必要なソフトウェア:

Nvidia のビデオカードとプロプライエタリのドライバーで PureVideo の世代にあった異なるレベルの VDPAU インターフェイスのビデオデコード機能を提供します。

また、libva-vdpau-driver を使って VA-API インターフェイスをサポートすることもできます。

VA-API のサポートを確認するには:

    $ vainfo

あなたのビデオカードのハードウェアデコード機能を全て使うには、VDPAU や VA-API をサポートするメディアプレーヤーが必要です。

MPlayer でハードウェアアクセラレーションを有効にするには `~/.mplayer/config` を編集してください:

    vo=vdpau
    vc=ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau,

Warning: The `ffodivxvdpau` codec is only supported by the most recent series of NVIDIA hardware. Consider omitting it based on your specific hardware.

VLC でハードウェアアクセラレーションを有効にするには:

`Tools > Preferences > Input & Codecs` から `Hardware-accelerated decoding` で `VDPAU` を選択

smplayer でハードウェアアクセラレーションを有効にするには:

`Options > Preferences > General > Video Tab` から `output driver` で `vdpau` を選択

gnome-mplayer でハードウェアアクセラレーションを有効にするには:

`Edit > Preference` から `video output` を `vdpau` に設定

低メモリのカードで HD 動画を再生:

あまりメモリが多くないグラフィックカードを使っている場合 (512MB 以下)、1080p や 720p の動画を再生した時に動画が飛び飛びになることがあります。これを修正するには TWM や MWM などのシンプルなウィンドウマネージャを使って下さい。

さらに HD 動画を見るときにハードドライブがスピンダウンする場合、`~/.mplayer/config` で MPlayer のキャッシュサイズを増やすと解決するかもしれません。

### KDE (KWin) の画面のちらつきをなくす

    /etc/profile.d/kwin.sh

    export __GL_YIELD="USLEEP"

上記で修正されない場合、以下を試して下さい:

    /etc/profile.d/kwin.sh

    export KWIN_TRIPLE_BUFFER=1

両方同時に有効にしてはいけません。また、トリプルバッファを有効にする場合、ドライバーのトリプルバッファも有効になっているか確認してください。

ソース: https://bugs.kde.org/show_bug.cgi?id=322060

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

GeForce4, GeForce 5 FX, GeForce 6, GeForce 7 シリーズのカードでは XvMC による MPEG-1 と MPEG-2 ビデオのデコードのアクセラレーションがサポートされています。使用するには、以下の内容で、新しいファイル `/etc/X11/XvMCConfig` を作成してください:

    libXvMCNVIDIA_dynamic.so.1

設定方法はサポートしているソフトウェアを参照。

### TV 出力を使う

TV 出力については こちら に良い記事があります。

### 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 `DFP` section (again, `DFP-0` or similar), click on the `Acquire Edid` Button and store it somewhere, for example, `/etc/X11/dfp0.edid`.

Edit `xorg.conf` by adding to the `Device` section:

    Option "ConnectedMonitor" "DFP"
    Option "CustomEDID" "DFP-0:/etc/X11/dfp0.edid"

The `ConnectedMonitor` option forces the driver to recognize the DFP as if it were connected. The `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 - バッテリー):

    $ nvidia-settings -q GPUPowerSource -t

    1

以下のようなエラーメッセージが表示される場合は、acpid をインストールするか `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 の温度をシェルに表示するには、以下のように `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 になります。

`rrdtool` や `conky` などのユーティリティで使うために温度だけを表示したいときは:

    $ nvidia-settings -q gpucoretemp -t

    41

#### 方法2 - nvidia-smi

X を全く使わず GPU から直接温度を読み込むことができる nvidia-smi を使います。サーバーなど、マシンで X を動かしていないユーザーにはこちらが重要でしょう。GPU の温度をシェルに表示するには、以下のように nvidia-smi を使って下さい:

    $ nvidia-smi

このコマンドを使うと以下のように出力されます:

    $ nvidia-smi

    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                                          |
    +-----------------------------------------------------------------------------+

温度だけ見るには:

    $ nvidia-smi -q -d TEMPERATURE

    ==============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

`rrdtool` や `conky` などのユーティリティで使うために温度だけを取得したいときは:

    $ nvidia-smi -q -d TEMPERATURE | grep Gpu | cut -c35-36

    62

参照: http://www.question-defense.com/2010/03/22/gpu-linux-shell-temp-get-nvidia-gpu-temperatures-via-linux-cli

#### 方法3 - nvclock

AUR から利用できる nvclock を使います。

Note: `nvclock` は Geforce 200 シリーズなどの新しい NVIDIA カードの温度センサーにはアクセスできません。

たまに nvclock と nvidia-settings/nv-control が報告する温度が食い違うことがあります。nvclock の作者 (thunderbird) による この投稿 によると、nvclock の値のほうが正確なようです。

### ログイン時にファンの速度を設定する

nvidia-settings' コンソールインターフェイスを使ってグラフィックカードのファンの速度を調整することができます。まずは Xorg 設定の `Device` セクションで Coolbits オプションを `4` か `5`、または `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` ファイルに記述します。`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 などのログインマネージャを使用している場合、デスクトップエントリファイルを作成して設定をさせることもできます。`~/.config/autostart/nvidia-fan-speed.desktop` を作成してその中に以下のテキストを入力してください。`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 `-Rdds` switch is used as the installation otherwise fails due to unstatisfied dependencies.

ドライバーを切り替える必要があるときは、以下のスクリプトを使うことができます。root で実行してください (確認を求められたら全て yes と答えて下さい):

     #!/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

64ビット環境を使っていて32ビットのライブラリが必要な場合は lib32 パッケージをアンコメントしてください (例: 32ビットのゲームや Steam)。

### GeForce 600/700 シリーズのカードでティアリングをなくす

X11 設定ファイル (例: `/etc/X11/xorg.conf.d/20-nvidia.conf`) の `"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

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

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

Another method that may either work alone or in conjunction with those mentioned above is starting games in a separate X server.

### TwinView を使って垂直同期

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 `/etc/profile`:

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

You can change `DFP-0` with your preferred screen (`DFP-0` is the DVI port and `CRT-0` is the VGA port). You can find the identifier for your display from nvidia-settings in the "X Server XVideoSettings" section.

### 古い Xorg 設定

古い環境からアップグレードする場合、インストール中に問題が発生することがあるので昔の `/usr/X11R6/` パスを削除してください。

### Corrupted screen: "Six screens" Problem

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.

To solve this problem, enable the Validation Mode `NoTotalSizeCheck` in section `Device`:

    Section "Device"
     ...
     Option "ModeValidation" "NoTotalSizeCheck"
     ...
    EndSection

### '/dev/nvidia0' input/output error

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.

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 `lspci -v`) and pass allocation parameters to the kernel, e.g.:

    vmalloc=64M
    or
    vmalloc=256M

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. [4]User:Clickthem#nvidia module

Another thing to try is to change your BIOS IRQ routing from `Operating system controlled` to `BIOS controlled` or the other way around. The first one can be passed as a kernel parameter:

    PCI=biosirq

The `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.

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.

### '/dev/nvidiactl' エラー

opengl アプリケーションを起動しようとすると以下のようなエラーが発生する場合:

    Error: Could not open /dev/nvidiactl because the permissions are too
    restrictive. Please see the FREQUENTLY ASKED QUESTIONS
    section of /usr/share/doc/NVIDIA_GLX-1.0/README
    for steps to correct.

`video` グループに適切なユーザーを追加して再ログインすれば解決します:

    # gpasswd -a username video

### 32ビットのアプリケーションが起動しない

64ビット環境では、インストールした64ビットのドライバーと同じバージョンと対応する `lib32-nvidia-libgl` をインストールすることで、この問題は解決します。

### カーネルを更新した後にエラーが発生する

extra リポジトリのパッケージではなく NVIDIA モジュールのカスタムビルドを使用する場合、カーネルを更新するたびにリコンパイルする必要があります。カーネルやグラフィックドライバーを更新した後は再起動することを推奨します。

### クラッシュ一般

- `xorg.conf` で `RenderAccel` を無効にしてみる。
- Xorg が "conflicting memory type" や "failed to allocate primary buffer: out of memory" というエラーを出力する場合、`/boot/grub/menu.lst` の `kernel` 行の一番最後に `nopat` を追加してください。
- NVIDIA のコンパイラがカーネルをコンパイルしたのに使用した GCC と、現在使っている GCC のバージョンが異なるというエラーを出力する場合、`/etc/profile` に以下を追加してください:

    export IGNORE_CC_MISMATCH=1

- nvidia-96xx ドライバーを使っていて Xorg が "Signal 11" でクラッシュする場合、PAT を無効にしてみる。カーネルパラメータに `nopat` を追加してください。

ドライバーのトラブルシューティングに関する詳細は NVIDIA フォーラム にあります。

### 新しいバージョンのドライバーをインストールした後にパフォーマンスが悪くなる

古いドライバーと比べて FPS が落ちている場合、まずダイレクトレンダリングがオンになっているか確認してください (glxinfo は mesa-demos に含まれています):

    $ glxinfo | grep direct

上のコマンドで以下のように表示されるなら:

    direct rendering: No

これは FPS が下がっていることの兆候かもしれません。

前にインストールしたバージョンのドライバーに戻して再起動すれば解決することがあります。

### 400 シリーズのカードで CPU の使用率が高くなる

400 シリーズのカードで時々 CPU の使用率が急上昇するような場合、PowerMizer が GPU のクロック周波数を断続的に変更しているのが原因です。以下を Xorg 設定の `Device` セクションに追加して、PowerMizer の設定を Adaptive から Performance にしてください:

     Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"

### ノートパソコン: ログイン/ログアウト時に X がフリーズするが、Ctrl+Alt+Backspace で回避できる

もし、レガシーな NVIDIA ドライバーを使っていて、ログインやログアウト時に Xorg がフリーズし (特に画面が黒と白/灰の部分に別れる)、`Ctrl+Alt+Backspace` によるログインはできる場合 (X を終了するキーバインドを実行した時)、`/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

`NVreg_Mobile` は使用しているノートパソコンにあわせて変更する必要があります:

- Dell のノートパソコンの場合 1。
- コンパル製でない東芝のノートパソコンの場合 2。
- その他のノートパソコンの場合 3。
- コンパル製の東芝のノートパソコンの場合 4。
- Gateway のノートパソコンの場合 5。

詳しくは 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 `$ lspci | grep VGA` 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 をサポートするようになっています [5]。

もしくは、Intel ドライバーをインストールして画面を管理させ、3D ソフトウェアが必要になったときは 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:

1. Enter BIOS.
2. Find Graphics Settings (should be in tab Config > Display).
3. Change 'Graphics Device' to 'Discrete Graphics' (Disables Intel integrated graphics).
4. Change OS Detection for Nvidia Optimus to "Disabled".
5. 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 `"ConnectedMonitor" Option` to `Section "Device"` to force Xorg throws error and shows you how correct it. Here more about ConnectedMonitor setting.

After re-run X see Xorg.0.log to get valid CRT-x,DFP-x,TV-x values.

`nvidia-xconfig --query-gpu-info` could be helpful.

### 新しいドライバーで X 起動時に黒画面

Nvidia のアップデートをインストールして Xorg を起動しても画面が真っ黒のままの場合、`rcutree.rcu_idle_gp_delay=1` カーネルパラメータを使用する必要があります。

mkinitcpio の設定ファイルに直接 `nvidia` モジュールを追加することもできます。

### ノートパソコンで輝度がコントロールできない

以下の行を `20-nvidia.conf` に追加してみてください:

    Option "RegistryDwords" "EnableBrightnessControl=1"

それでも輝度が変更できない場合は、nvidia-bl または nvidiabl をインストールしてみてください。

### バックライトがオフにならない

デフォルトでは、タイムアウトを設定したり xset を実行すると DPMS はバックライトをオフにします。しかしながら、プロプライエタリの Nvidia ドライバーのバグによって、黒画面になるだけで節電ができないことがあります。バグが修正されるまで、対応策として root で `vbetool` を使う方法があります。

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 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:

1. 最新の libvdpau をインストール。
2. この makepkg で `vdpau_trace.so` にパッチをあてる。
3. 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.
4. flashplugin パッケージを少なくともバージョン 11.1.102.63-1 にまでダウングレード。
5. 新しい Pepper API の chromium-pepper-flash で google-chrome を使用。
6. Try one of the few Flash alternatives.

The merits of each are discussed in this thread.

### Bleeding overlay with Flash

This bug is due to the incorrect colour key being used by the 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 libvdpau or export `VDPAU_NVIDIA_NO_OVERLAY=1` within either your shell profile (E.g. `~/.bash_profile` or `~/.zprofile`) or `~/.xinitrc`

### Flash の使用時にシステムが完全にフリーズする

フラッシュプラグインを使っていて (マウスを動かしただけで) 時々システムが完全にフリーズして以下のエラーが出る場合:

    /var/log/errors.log

    NVRM: Xid (0000:01:00): 31, Ch 00000007, engmask 00000120, intr 10000000

Flash のハードウェアアクセラレーションを無効にすれば解決するかもしれません、以下を設定:

    /etc/adobe/mms.cfg

    EnableLinuxHWVideoDecode=0

もしくは、ハードウェアアクセラレーションを有効にしておきたい場合、ブラウザを開始する前に次を実行:

    export VDPAU_NVIDIA_NO_OVERLAY=1

これを設定するとティアリングが発生するので注意してください。

### Xorg がロードに失敗する、またはレッドスクリーンになる

GRUB を使っていてレッドスクリーンになる場合は、`/etc/default/grub` を編集して `GRUB_TERMINAL_OUTPUT` をアンコメントして GRUB のフレームバッファを無効にしてください。詳しくは GRUB を参照。

### Intel 内蔵 GPU が載っている環境で黒画面

内蔵 GPU が搭載された Intel の CPU を使っていて nvidia パッケージをインストールした場合、仮想ターミナルを変更したり、X セッションを終了したとき、または起動時に黒画面になることがあります。これはグラフィックモジュールの衝突が原因です。Intel の GPU モジュールをブラックリストに入れることで解決されます。`/etc/modprobe.d/blacklist.conf` ファイルを作成して起動時に i915 と intel_agp モジュールがロードされないようにしてください:

    /etc/modprobe.d/blacklist.conf

    install i915 /usr/bin/false
    install intel_agp /usr/bin/false

### VIA 内蔵 GPU が載っている環境で黒画面

上記と同じように、viafb モジュールをブラックリストに入れることで NVIDIA ドライバーとの衝突を解決できます:

    /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:

    # lspci | grep VGA

    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:

    /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 `01:00.0` is written as `1:0:0`.

### Xorg が起動時に失敗するが、問題なく起動する

起動時間がとても短いシステムの場合、NVIDIA ドライバーが完全に初期化される前に systemd がディスプレイマネージャを起動してしまうことがあります。起動時に Xorg が実行された時にだけログに以下のようなメッセージが表示されます。

    /var/log/Xorg.0.log

    [     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 デバイスのデバイスユニットを作成してください。

    /etc/udev/rules.d/99-systemd-dri-devices.rules

    ACTION=="add", KERNEL=="card*", SUBSYSTEM=="drm", TAG+="systemd"

次にディスプレイマネージャからデバイスまでの依存関係を作成します。

    /etc/systemd/system/display-manager.service.d/10-wait-for-dri-devices.conf

    [Unit]
    Wants=dev-dri-card0.device
    After=dev-dri-card0.device

デスクトップに必要なカードを追加する場合は、Wants と After にスペースで区切って記述してください。

### Flash ビデオプレイヤーがクラッシュする

頻繁に Flash ビデオプレイヤーがクラッシュする場合、ハードウェアアクセラレーションをオフにしてみてください:

    /etc/adobe/mms.cfg

    EnableLinuxHWVideoDecode=0

(This problem appeared after installing the proprietary nvidia driver, and was fixed by changing this setting.)

## 参照

- NVIDIA フォーラム
- NVIDIA ドライバーの公式 readme

Categories:

- Graphics (日本語)
- X Server (日本語)