Nouveau (日本語) - ArchWiki

# Nouveau (日本語)

関連記事

- NVIDIA
- Xorg
- Bumblebee

この記事は NVIDIA カードのオープンソースドライバー Nouveau のインストールと設定を説明しています。公式のプロプライエタリドライバーの情報は NVIDIA を見て下さい。

## プロプライエタリの NVIDIA ドライバからの移行

Note: このセクションはすでにプロプライエタリの NVIDIA ドライバーをインストールした人に向けて書かれています。他のユーザーは飛ばしてかまいません。
Tip: Nvidia のドライバーをアンインストールしたくない場合は、Nvidia の代わりに Nouveau ドライバーをロードする設定が必要になります。

プロプライエタリの Nvidia ドライバーを既にインストールしている場合、まずドライバーを削除してください:

    # pacman -Rdds nvidia nvidia-utils nvidia-libgl libvdpau libcl

レガシーなドライバーを使っている場合は `nvidia` を `nvidia-304xx` や `nvidia-340xx` で置き換える必要があるかもしれません。

また、Nvidia ドライバーが作成した `/etc/X11/xorg.conf` ファイルを削除 (もしくは修正) してください。そうしないと X が正しく Nouveau ドライバーをロードできません。

プロプライエタリなドライバーがファイルを変更しているのかもしれないので xorg-server や mesa を再インストールすることも推奨します。

## インストール

先に進む前に、あなたの使っているカードの コードネーム (もっと詳しいリストが Wikipedia にあります) を確認して feature matrix を見てあなたのグラフィックカードでサポートされている機能をチェックしてください。また、Xorg が正しくインストールされているか確認してください。

DDX ドライバーを xf86-video-nouveau パッケージでインストールしてください、このパッケージは公式リポジトリから利用可能です。依存パッケージとして 3D アクセラレーションのための DRI ドライバを提供する mesa-dri[broken link: replaced by mesa] もインストールされます。

x86_64 環境で32ビットの 3D サポートが欲しい場合、multilib リポジトリから lib32-mesa-dri[broken link: replaced by lib32-mesa] をインストールしてください。

Note: 3D ドライバーのバグを報告する前に Nouveau MesaDrivers page を見て下さい。

## ロード

システムの起動時に Nouveau のカーネルモジュールは自動的にロードされます。

ロードされない場合:

- カーネルパラメータに `nomodeset` や `vga=` を設定していないことを確認してください。Nouveau を正しく動かすためにはカーネルモードセッティングが必要です (下を参照)。
- また、`/etc/modprobe.d/` や `/usr/lib/modprobe.d/` の中で modprobe のブラックリストによって Nouveau が無効になっていないか確認してください。
- 上記全てを確認しても nouveau がロードされない場合は dmesg で opcode エラーが起こってないか確認してください。`nouveau.config=NvBios=PRAMIN` をカーネルパラメータに追加することでモジュールのアンロードを防ぐことができます [1]。

### KMS

Tip: 解像度に問題がある場合、Kernel Mode Setting#モードの強制と EDID をチェックしてください。

Nouveau ドライバーを使うには Kernel Mode Setting (KMS) が必要です。システムが起動すると、KMS がディスプレイドライバーを初期化するときに解像度が変わります。"Late start" モードで KMS を初期化するのに必要なのは Nouveau ドライバーのインストールだけです (下を参照)。詳しくは Nouveau KernelModeSetting のページ を見て下さい。

Note: ブートプロセスの間に見苦しい解像度変更がないため early start の方が好ましいかもしれません。

#### Late start

この方法では他のカーネルモジュールがロードされた後に KMS を起動します。"Loading modules" の文字が表示されてテキストのサイズが変わります。ちらつきが発生するかもしれません。

#### Early start

この方法では initramfs がロードされた時に、ブートプロセスで出来るだけ早く KMS を起動します。

`nouveau` を `/etc/mkinitcpio.conf` の `MODULES` 行に追加して下さい:

    MODULES="... nouveau ..."

カスタム EDID ファイルを使っている場合、同じように initramfs に埋め込む必要があります:

    /etc/mkinitcpio.conf

    FILES="/lib/firmware/edid/your_edid.bin"

initial ramdisk イメージを再生成してください:

    # mkinitcpio -p <kernel preset; e.g. linux>

Nouveau に問題が発生してテスト目的に nouveau-drm を複数回リビルドする場合、initramfs に `nouveau` は追加しないでください。initramfs を再生成するのは忘れやすいためテストするのが面倒くさくなります。システムが安定したと確証を得るまでは "Late start" を使いましょう。(通常は推奨されない) カスタムファームウェアが必要な場合、initramfs で問題が別に発生することもあります。

## Tips and tricks

### NVIDIA ドライバーをインストールしたままにしておく

プロプライエタリの NVIDIA ドライバーをアンインストールしたくないが、Nouveau ドライバーを使いたい場合、`/etc/modprobe.d/nouveau_blacklist.conf` 内の nouveau のブラックリストを以下のように修正してコメントアウトしてください:

    #blacklist nouveau

そして以下の内容で `/etc/X11/xorg.conf.d/20-nouveau.conf` ファイルを作成して Xorg に nvidia の代わりに nouveau をロードするよう指定してください:

    Section "Device"
        Identifier "Nvidia card"
        Driver "nouveau"
    EndSection

Tip: オープン・クローズドのドライバーを頻繁に切り替える場合はスクリプトを使うことができます。

既に NVIDIA ドライバーを使用していて、再起動せずに Nouveau をテストしたい場合、'nvidia' モジュールをアンロードしてください:

    # rmmod nvidia

次に 'nouveau' モジュールをロードしてください:

    # modprobe nouveau

そしてカーネルメッセージを見て正しくロードされていることを確認してください:

    $ dmesg

### 最新の開発パッケージをインストールする

AUR を通して、最新の -git パッケージをインストールすることができます:

- mesa-git を使うことで (最新の DRI ドライバーを含む) 最新の Mesa をインストールすることができます。
- xf86-video-nouveau-git を使うことで最新の DDX ドライバーをインストールすることができます。
- linux-mainline などのパッケージを使って新しいカーネルバージョンをインストールすることで、Nouveau DRM コードのパフォーマンスが向上するかもしれません。
- 最新の Nouveau を使うには、AUR の linux-git パッケージを使用して、PKGBUILD を編集し Nouveau のカーネルリポジトリ (現在は git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau にあります) を使う必要があります。

上流のドライバーソースは Nouveau Source のページ にあります。

### ティアリングフリーのコンポジット

`/etc/X11/xorg.conf.d/20-nouveau.conf` を編集して、以下を `Device` セクションに追加して下さい:

    Section "Device"
        Identifier "nvidia card"
        Driver "nouveau"
        Option "GLXVBlank" "true"
    EndSection

### Dual Head

Nouveau は xrandr 拡張を使ってモードセッティングやマルチモニターをサポートしています。チュートリアルは xrandr のページを見て下さい。

以下は dual head モードで2つのモニターを動かすための `/etc/X11/xorg.conf.d/20-nouveau.conf` の完全なサンプルです。GNOME Control Center の Display パネル (`gnome-control-center display`) などグラフィカルツールを使ってモニタの設定をすることも可能です。

    # the right one
    Section "Monitor"
              Identifier   "NEC"
              Option "PreferredMode" "1280x1024_60.00"
    EndSection

    # the left one
    Section "Monitor"
              Identifier   "FUS"
              Option "PreferredMode" "1280x1024_60.00"
              Option "LeftOf" "NEC"
    EndSection

    Section "Device"
        Identifier "nvidia card"
        Driver "nouveau"
        Option  "Monitor-DVI-I-1" "NEC"
        Option  "Monitor-DVI-I-2" "FUS"
    EndSection

    Section "Screen"
        Identifier "screen1"
       Monitor "NEC"
        DefaultDepth 24
          SubSection "Display"
           Depth      24
           Virtual 2560 2048
          EndSubSection
        Device "nvidia card"
    EndSection

    Section "ServerLayout"
        Identifier "layout1"
        Screen "screen1"
    EndSection

### コンソールの解像度を設定する

fbset ツールを使ってコンソールの解像度を調整してください。

また、`video=` カーネルラインオプションを使うことで nouveau に解像度を渡すことができます (KMS を参照してください)。

### 省電力機能

GPU スケーリングが使えるかどうかは GPU によって異なります。詳細は Nouveau PowerManagement のページ を見て下さい。

### MSI (Message Signaled Interrupts) を有効にする

これによってパフォーマンスがわずかに向上するかもしれません。サポートされているボードではデフォルトで有効になります。

Warning: この設定はマザーボードと GPU の組み合わせによっては不安定になる可能性があります。

次の行を `/etc/modprobe.d/nouveau.conf` に書いて下さい:

    options nouveau config="NvMSI=1"

early start を使っている場合、`FILES="/etc/modprobe.d/nouveau.conf"` を `/etc/mkinitcpio.conf` に加え、カーネルイメージを再生成してください:

    # mkinitcpio -p <kernel preset; e.g. linux>

システムを再起動することで変更が適用されます。

### Optimus

ラップトップで Optimus (ラップトップに2つの GPU を載せているハイブリッドグラフィック) を使う方法は2つあります: bumblebee と PRIME

## トラブルシューティング

`drm.debug=14` や `log_buf_len=16M` をカーネルパラメータに追加してビデオデバッグを有効にしてください。

Xorg の詳細ログを作成する:

    $ startx -- -logverbose 9 -verbose 9

ロードされているビデオモジュールのパラメータと値を見る:

    $ modinfo -p video

#### Phantom Output Issue

It is possible for the nouveau driver to detect "phantom" outputs. For example, both VGA-1 and LVDS-1 are shown as connected but only LVDS-1 is present.

This causes display problems and a corrupted screen.

The problem can be overcome by disabling the phantom output (VGA-1 in the examples given) on the kernel command line of your boot loader. This can be achieved by appending the following:

    video=VGA-1:d

Where d = disable.

The phantom output can also be disabled in X by adding the following to `/etc/X11/xorg.conf.d/20-nouveau.conf`:

    Section "Monitor"
    Identifier "VGA-1"
    Option "Ignore" "1"
    EndSection

ソース: http://gentoo-en.vfose.ru/wiki/Nouveau#Phantom_and_unpopulated_output_connector_issues

Categories:

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