NVIDIA

提供: ArchWiki
移動先: 案内検索

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

目次

インストール

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

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

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

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

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

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

マシンが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-dkmsAUR パッケージをインストールしてください。最後にサポートされた Xorg のバージョンは 1.15 です。
  • GeForce 2/3/4 MX/Ti シリーズのカード [NV11, NV17-NV28] の場合は、nvidia-96xx-dkmsAUR パッケージをインストールしてください。最後にサポートされた Xorg のバージョンは 1.12 です。
ヒント: レガシーな nvidia-96xx-dkms と nvidia-173xx-dkms ドライバーは非公式の [city] リポジトリ からもインストールできます (ここからインストールする時は依存関係の制限をスキップしないことを強く推奨します)。

Alternate install: カスタムカーネル

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

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

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

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

# abs

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

$ mkdir -p ~/abs

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

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

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

$ cd ~/abs/nvidia

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

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

$ 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 モジュールを自動的にリコンパイルする

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

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

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

設定

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

ノート: 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
ヒント: 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 を再確認してください。

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

マルチモニター

マルチモニターに関する一般的な情報はマルチディスプレイを見て下さい。

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"
ノート: 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"

Driver Persistence

バージョン 319 から、NVIDIA は Driver Persistence の動作を変更しており、ブート時に起動するデーモンが存在します。詳しくは NVIDIA のドキュメントの Driver Persistence セクションを見て下さい。

ブート時に persistence デーモンを起動するには、nvidia-persistenced.service有効化してください。使用方法は 上流のドキュメント を参照。

調整

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 で自動実行できます。

ヒント: 稀に ~/.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"

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

ノート: ドライバーバージョン 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"
ノート: Use "CRT" for all analog 15 pin VGA connections, even if the display is a flat panel. "DFP" is intended for DVI, HDMI, or DisplayPort digital connections only.

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

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

Option "TripleBuffer" "1"

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

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

省電力機能を有効にする

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

Option "DPMS" "1"

輝度調整を有効にする

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

Option "RegistryDwords" "EnableBrightnessControl=1"
ノート: If you already have this enabled and your brightness control doesn't work try to comment it out.

SLI を有効にする

警告: 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"
ノート: 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.
警告: 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"

オーバークロックを有効にする

警告: 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 オプションは Xorg の設定ファイルを変更する nvidia-xconfig で簡単に変えることができます: # nvidia-xconfig --cool-bits=value

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

  • 1 (ビット 0) - (Fermi 以前の) 古いコアで nvidia-settingsClock Frequencies ページからオーバークロックできるようになります。
  • 2 (ビット 1) - このビットが設定されると、ドライバーは GPU を使う際に様々な量のビデオメモリで SLI を初期化しようとします。
  • 4 (ビット 2) - GPU のファンの速度の手動設定が nvidia-settingsThermal Monitor ページで可能になります。
  • 8 (ビット 3) - Fermi 以降の新しいコアで nvidia-settingsPowerMizer ページからオーバークロックできるようになります。バージョン 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 のドキュメントはオンラインで こちらから 見ることができます。

ノート: An alternative is to edit and reflash the GPU BIOS either under DOS (preferred), or within a Win32 environment by way of nvflash[リンク切れ 2013-05-25] and NiBiTor 6.0[リンク切れ 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/grubGRUB_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,
警告: 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 decodingVDPAU を選択

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

Options > Preferences > General > Video Tab から output drivervdpau を選択

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

Edit > Preference から video outputvdpau に設定

低メモリのカードで 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.

If in the front-end mouse and keyboard aren't attached, the EDID can be acquired using only the command line. Run an X server with enough verbosity to print out the EDID block:

$ startx -- -logverbose 6

After the X Server has finished initializing, close it and your log file will probably be in /var/log/Xorg.0.log. Extract the EDID block using nvidia-xconfig:

$ nvidia-xconfig --extract-edids-from-file=/var/log/Xorg.0.log --extract-edids-output-file=/etc/X11/dfp0.bin

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.

If the above changes didn't work, in the xorg.conf under Device section you can try to remove the Option "ConnectedMonitor" "DFP" and add the following lines:

Option "ModeValidation" "NoDFPNativeResolutionCheck"
Option "ConnectedMonitor" "DFP-0"

The NoDFPNativeResolutionCheck prevents NVIDIA driver from disabling all the modes that do not fit in the native resolution.

電源を確認

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

ノート: この方法では 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 になります。

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

$ 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                           : Sun Apr 12 08:49:10 2015
Driver Version                      : 346.59

Attached GPUs                       : 1
GPU 0000:01:00.0
    Temperature
        GPU Current Temp            : 52 C
        GPU Shutdown Temp           : N/A
        GPU Slowdown Temp           : N/A

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

$ nvidia-smi -q -d TEMPERATURE | awk '/GPU Current Temp/ {print $5}'
52

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

方法3 - nvclock

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

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

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

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

nvidia-settings' コンソールインターフェイスを使ってグラフィックカードのファンの速度を調整することができます。まずは Xorg 設定の Device セクションで Coolbits オプションを 45、または 12 (fermi 以上) に設定してファンコントロールを有効にしてください。

Option "Coolbits" "4"
ノート: 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 "[fan:0]/GPUCurrentFanSpeed=n" \
                -a "[gpu:1]/GPUFanControlState=1" -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
ノート: ドライバーのバージョン 349.16 から、GPUCurrentFanSpeedGPUTargetFanSpeed に置き換わっています [4]

ドライバーを変更するためのインストールとアンインストールの順番

古いドライバーが nvidiaO で新しいドライバーが nvidiaN として以下の順番で変更します:

remove nvidiaO
install nvidia-libglN
install nvidiaN
install lib32-nvidia-libgl-N (if required)

NVIDIA と nouveau ドライバーを切り替える

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

#!/bin/bash
BRANCH= # Enter a branch if needed, i.e. -340xx or -304xx
NVIDIA=nvidia${BRANCH} # If no branch entered above this would be "nvidia"
NOUVEAU=xf86-video-nouveau

# Replace -R with -Rs to if you want to remove the unneeded dependencies
if [ $(pacman -Qqs ^mesa-libgl$) ]; then
    pacman -S $NVIDIA ${NVIDIA}-libgl # Add lib32-${NVIDIA}-libgl and ${NVIDIA}-lts if needed
    # pacman -R $NOUVEAU
elif [ $(pacman -Qqs ^${NVIDIA}$) ]; then
    pacman -S --needed $NOUVEAU mesa-libgl # Add lib32-mesa-libgl if needed
    pacman -R $NVIDIA # Add ${NVIDIA}-lts if needed
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.confDevice セクションに適切な 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.

nvidia-libgl をインストールすると Wayland (gdm) がクラッシュする

nvidia をインストールしたときに Intel CPU の古いマイクロコードが Wayland を不安定にしたり、gdm をクラッシュさせることがあります。

マイクロコードをアップデートすることで問題は解決します。

古い 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. for a 32-bit kernel:

vmalloc=384M

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. [5]en2: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.

ノート: 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.confRenderAccel を無効にしてみる。
  • Xorg が "conflicting memory type" や "failed to allocate primary buffer: out of memory" というエラーを出力する場合、/boot/grub/menu.lstkernel 行の一番最後に 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 をサポートするようになっています [6]

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

Sometimes NVIDIA and X have trouble finding the active screen. If your graphics card has multiple outputs try plugging your monitor into the other ones. On a laptop it may be because your graphics card has vga/tv outs. Xorg.0.log will provide more info.

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-blAUR または nvidiablAUR をインストールしてみてください。

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

デフォルトでは、タイムアウトを設定したり 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. この makepkgvdpau_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-flashAURgoogle-chromeAUR を使用。
  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 ファイルを作成して起動時に i915intel_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.)

EDID を上書きする

モニターの EDID 情報が間違っている場合、nvidia ドライバーはとても小さな解像度を設定します。

手動で xorg の設定に modeline を記述する他に、non-edid モードを使えるように device セクションで edid を無効化する必要があります:

/etc/X11/xorg.conf.d/10-monitor.conf
Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       30-94
    VertRefresh     56-76
    DisplaySize    518.4 324.0
    Option         "DPMS"
    # 1920x1200 59.95 Hz (CVT 2.30MA-R) hsync: 74.04 kHz; pclk: 154.00 MHz
    Modeline "1920x1200R"  154.00  1920 1968 2000 2080  1200 1203 1209 1235 +hsync -vsync
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option         "UseEdidFreqs" "FALSE"
    Option         "UseEDID" "FALSE"
    Option         "ModeValidation" "AllowNonEdidModes"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
        Modes      "1920x1200R"
    EndSubSection
EndSection

表示の遅延を修正 (firefox, gedit, vim, tmux …)

# nvidia-settings -a InitialPixmapPlacement=0

https://bugzilla.gnome.org/show_bug.cgi?id=728464

参照