「Nouveau」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(カテゴリを修正)
 
(5人の利用者による、間の22版が非表示)
1行目: 1行目:
[[Category:グラフィック]]
+
[[Category:グラフィック]]
 
[[Category:X サーバー]]
 
[[Category:X サーバー]]
 
[[en:Nouveau]]
 
[[en:Nouveau]]
  +
[[de:Nouveau]]
 
[[es:Nouveau]]
 
[[es:Nouveau]]
[[it:Nouveau]]
+
[[fr:Nouveau]]
[[ru:Nouveau]]
+
[[zh-hans:Nouveau]]
[[zh-CN:Nouveau]]
 
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|NVIDIA}}
 
{{Related|NVIDIA}}
12行目: 12行目:
 
{{Related articles end}}
 
{{Related articles end}}
   
この記事は NVIDIA カードのオープンソースドライバー [http://nouveau.freedesktop.org/ Nouveau] のインストールと設定を説明しています。公式のプロプライエタリドライバーの情報は [[NVIDIA]] を見てさい。
+
この記事は NVIDIA カードのオープンソースドライバー [https://nouveau.freedesktop.org/ Nouveau] のインストールと設定を説明しています。プロプライエタリドライバーの情報は [[NVIDIA]] を見てください。
   
  +
使用中のカードの[https://nouveau.freedesktop.org/wiki/CodeNames コードネーム]を見つけてください(より詳細なリストは [[Wikipedia:Comparison of Nvidia Graphics Processing Units|Wikipedia]] にあります)。サポートされている機能の[https://nouveau.freedesktop.org/wiki/FeatureMatrix/ 機能表]と比較してください。
== プロプライエタリの NVIDIA ドライバからの移行 ==
 
{{Note|このセクションはすでにプロプライエタリの [[NVIDIA]] ドライバーをインストールした人に向けて書かれています。他のユーザーは飛ばしてかまいません。}}
 
 
{{Tip|Nvidia のドライバーをアンインストールしたくない場合は、Nvidia の代わりに Nouveau ドライバーをロードする[[#NVIDIA ドライバーをインストールしたままにしておく|設定が必要になります]]。}}
 
プロプライエタリの Nvidia ドライバーを既にインストールしている場合、まずドライバーを削除してください:
 
 
# pacman -Rdds nvidia nvidia-utils nvidia-libgl libvdpau libcl
 
 
レガシーなドライバーを使っている場合は {{ic|nvidia}} を {{ic|nvidia-304xx}} や {{ic|nvidia-340xx}} で置き換える必要があるかもしれません。
 
 
また、Nvidia ドライバーが作成した {{ic|/etc/X11/xorg.conf}} ファイルを削除 (もしくは修正) してください。そうしないと X が正しく Nouveau ドライバーをロードできません。
 
 
プロプライエタリなドライバーがファイルを変更しているのかもしれないので {{Pkg|xorg-server}} や {{Pkg|mesa}} を再インストールすることも推奨します。
 
   
 
== インストール ==
 
== インストール ==
   
  +
{{Pkg|mesa}} パッケージを[[インストール]]してください。これは 3D アクセラレーションのための DRI ドライバを提供します。
先に進む前に、あなたの使っているカードの [http://nouveau.freedesktop.org/wiki/CodeNames コードネーム] (もっと詳しいリストが [[Wikipedia:Comparison of Nvidia Graphics Processing Units|Wikipedia]] にあります) を確認して [http://nouveau.freedesktop.org/wiki/FeatureMatrix/ feature matrix] を見てあなたのグラフィックカードでサポートされている機能をチェックしてください。また、[[Xorg]] が正しくインストールされているか確認してください。
 
   
  +
* 32ビットアクセラレーションサポートが必要な場合は、[[multilib]] リポジトリから {{Pkg|lib32-mesa}} パッケージもインストールしてください。
DDX ドライバーを {{Pkg|xf86-video-nouveau}} パッケージで[[pacman|インストール]]してください、このパッケージは[[公式リポジトリ]]から利用可能です。依存パッケージとして 3D アクセラレーションのための DRI ドライバを提供する {{Pkg|mesa}} もインストールされます。
 
  +
* ([[Xorg]] で 2D アクセラレーションを提供する) DDX ドライバが必要な場合、{{Pkg|xf86-video-nouveau}} パッケージを[[インストール]]してください。
   
  +
{{Note|1=[https://nouveau.freedesktop.org/CodeNames.html#NV50 NV50 (G80)] 以降のハードウェアでは {{Pkg|xf86-video-nouveau}} ドライバをインストールせずに代わりに modesetting ドライバにフォールバックさせることが有益であると[https://bugs.freedesktop.org/show_bug.cgi?id=94844#c3 提唱されています]。例えば、2021年の[https://bbs.archlinux.org/viewtopic.php?id=263498 ユーザレポート]を参照してください。}}
OpenGL のサポートが欲しい場合、[[multilib]] リポジトリから {{Pkg|mesa-libgl}} と {{Pkg|lib32-mesa-libgl}} をインストールしてください。
 
   
  +
[[ハードウェアビデオアクセラレーション]] も参照してください。
{{Note|3D ドライバーのバグを報告する前に [http://nouveau.freedesktop.org/wiki/MesaDrivers Nouveau MesaDrivers page] を見て下さい。}}
 
   
  +
=== Mesa NVK Vulkan Driver を使う ===
== ロード ==
 
   
  +
{{warning|このドライバはまだ作業中であり、リグレッションが発生することが予測されます。オープンソースドライバとプロプライエタリドライバで動作していた一部のソフトウェア (ほとんどはゲーム) は、おそらく NVK ではあまり (あるいは全く) 動作しないでしょう。ゲームをよくプレイする場合は、NVK がもう少し成熟するまで、NVK の使用を避けたほうが良いでしょう。}}
システムの起動時に Nouveau のカーネルモジュールは自動的にロードされます。
 
   
  +
NVK を使用するには、[[カーネル]]のバージョンが 6.7 以上であり、バージョン 24.1 以上の {{Pkg|mesa}} をインストールしておく必要があります。
ロードされない場合:
 
   
  +
NVK を有効化する前に、以下のパッケージ (及びこれらの {{ic|lib32}} 版と [[DKMS]] 版) を全て[[アンインストール]]する必要があります:
* [[カーネルパラメータ]]に {{ic|nomodeset}} や {{ic|1=vga=}} を設定して'''いない'''ことを確認してください。Nouveau を正しく動かすためにはカーネルモードセッティングが必要です (下を参照)。
 
* また、{{ic|/etc/modprobe.d/}} や {{ic|/usr/lib/modprobe.d/}} の中で modprobe のブラックリストによって Nouveau が無効になっていないか確認してください。
 
* 上記全てを確認しても nouveau がロードされない場合は dmesg で opcode エラーが起こってないか確認してください。{{ic|1=nouveau.config=NvBios=PRAMIN}} を[[カーネルパラメータ]]に追加することでモジュールのアンロードを防ぐことができます [http://nouveau.freedesktop.org/wiki/TroubleShooting/#index10h3]。
 
   
  +
* {{pkg|nvidia}}、{{pkg|nvidia-open}}、{{pkg|nvidia-lts}}、{{pkg|nvidia-beta}}
=== KMS ===
 
  +
* {{pkg|nvidia-settings}}、{{pkg|nvidia-utils}}
  +
* {{pkg|egl-wayland}}
   
  +
ハイブリッドグラフィックのノート PC やデュアル GPU のシステムでは、{{ic|/etc/modprobe.d}} の設定で Nouveau が GPU マネージャによってブラックリスト化されていないことを確認してください。
{{Tip|解像度に問題がある場合、[[Kernel Mode Setting#モードの強制と EDID]] をチェックしてください。}}
 
   
  +
{{Note|おそらく、上記以外の全ての GPU マネージャも[[アンインストール]]したほうが良いでしょう。なぜなら、これらのパッケージの殆どはモジュールをブラックリスト化することで動作し、それによって NVK と干渉してしまうかもしれないからです。}}
Nouveau ドライバーを使うには [[Kernel Mode Setting]] (KMS) が必要です。システムが起動すると、KMS がディスプレイドライバーを初期化するときに解像度が変わります。"Late start" モードで KMS を初期化するのに必要なのは Nouveau ドライバーのインストールだけです (下を参照)。詳しくは [http://nouveau.freedesktop.org/wiki/KernelModeSetting Nouveau KernelModeSetting のページ] を見て下さい。
 
   
  +
次に、{{pkg|vulkan-nouveau}} (必要であれば {{pkg|lib32-vulkan-nouveau}} も) を[[インストール]]してください。
{{Note|ブートプロセスの間に見苦しい解像度変更がないため early start の方が好ましいかもしれません。}}
 
   
  +
[[カーネルパラメータ]]に {{ic|1=nouveau.config=NvGspRm=1}} を追加してください。
==== Late start ====
 
   
  +
最後に、システムを再起動してください。
この方法では他のカーネルモジュールがロードされた後に KMS を起動します。"Loading modules" の文字が表示されてテキストのサイズが変わります。ちらつきが発生するかもしれません。
 
   
  +
正しく動作していることを確認するには、{{pkg|vulkan-tools}} パッケージの {{ic|vulkaninfo}} を使うことができます。システムの NVIDIA GPU が NVK ドライバを使用していると報告するはずです。
==== Early start ====
 
   
  +
{{hc|$ vulkaninfo|2=
この方法では [[mkinitcpio|initramfs]] がロードされた時に、ブートプロセスで出来るだけ早く KMS を起動します。
 
  +
...
  +
GPU id : 0 (NVIDIA GeForce RTX 3050 Ti Laptop GPU ('''NVK GA107''')):
  +
Surface type = VK_KHR_wayland_surface
  +
Formats: count = 8
  +
...}}
   
  +
== ロード ==
{{ic|nouveau}} を {{ic|/etc/mkinitcpio.conf}} の {{ic|MODULES}} 行に追加して下さい:
 
   
  +
システムの起動時に Nouveau のカーネルモジュールは自動的にロードされるはずです。ロードされない場合は:
MODULES="... nouveau ..."
 
   
  +
* [[カーネルパラメータ]]に {{ic|nomodeset}} や {{ic|1=vga=}} を設定して'''いない'''ことを確認してください。Nouveau はカーネルモードセッティングを要求します。
カスタム EDID ファイルを使っている場合、同じように initramfs に埋め込む必要があります:
 
  +
* また、{{ic|/etc/modprobe.d/}} や {{ic|/usr/lib/modprobe.d/}} の中で modprobe のブラックリストによって Nouveau が無効になっていないことを確認してください。
  +
* 上記全てを確認しても nouveau がロードされない場合は [[dmesg]] で opcode エラーが起こってないか確認してください。{{ic|1=nouveau.config=NvBios=PRAMIN}} を[[カーネルパラメータ]]に追加することでモジュールのアンロードを防ぐことができます [https://nouveau.freedesktop.org/wiki/TroubleShooting/#index10h3]。
  +
* {{ic|/etc/X11/xorg.conf}} ファイルまたは {{ic|/etc/X11/xorg.conf.d/}} 内の任意のファイルが存在し、{{ic|nvidia}} ドライバを参照しているかどうかを確認してください。おそらく、このファイルの名前を変更したほうが良いでしょう。
   
  +
=== 早期 KMS ===
{{hc|/etc/mkinitcpio.conf|
 
2=FILES="/lib/firmware/edid/your_edid.bin"}}
 
   
  +
[[カーネルモード設定]] (KMS; Kernel Mode Setting) は、{{ic|nouveau}} ドライバによってサポートされており、[[mkinitcpio]] v32 からブートの早期段階で有効化されるようになっています (このバージョンからデフォルトで {{ic|kms}} フックが含まれています)。他の環境で KMS をブートプロセスの可能な限り早い段階で有効化する方法については、[[カーネルモード設定#KMS の早期開始]] を参照してください。
initial ramdisk イメージを再生成してください:
 
   
  +
{{Tip|解像度に問題がある場合、[[カーネルモード設定#モードと EDID を強制する]] をチェックしてください。}}
# mkinitcpio -p <kernel preset; e.g. ''linux''>
 
   
  +
== ヒントとテクニック ==
Nouveau に問題が発生してテスト目的に nouveau-drm を複数回リビルドする場合、initramfs に {{ic|nouveau}} は追加しないでください。initramfs を再生成するのは忘れやすいためテストするのが面倒くさくなります。システムが安定したと確証を得るまでは "Late start" を使いましょう。(通常は推奨されない) カスタムファームウェアが必要な場合、initramfs で問題が別に発生することもあります。
 
 
== Tips and tricks ==
 
   
 
=== NVIDIA ドライバーをインストールしたままにしておく ===
 
=== NVIDIA ドライバーをインストールしたままにしておく ===
   
プロプライエタリの NVIDIA ドライバーをアンインストールしたくないが、Nouveau ドライバー使いたい場合、{{ic|/etc/modprobe.d/nouveau_blacklist.conf}} 内の nouveau のブラックリストを以下のように修正してコメントアウトしてください:
+
プロプライエタリの NVIDIA ドライバーをインストールしたままにしておきたいが、Nouveau ドライバー使いたい(そして OpenGL を使用していない)場合、{{ic|/etc/modprobe.d/nouveau_blacklist.conf}} または {{ic|/usr/lib/modprobe.d/nvidia-utils.conf}} 内の nouveau のブラックリストを以下のようにコメントアウトしてください:
   
 
#blacklist nouveau
 
#blacklist nouveau
93行目: 87行目:
 
Driver "nouveau"
 
Driver "nouveau"
 
EndSection
 
EndSection
 
{{Tip|オープン・クローズドのドライバーを頻繁に切り替える場合は[[NVIDIA#NVIDIA と nouveau ドライバーを切り替える|スクリプト]]を使うことができます。}}
 
   
 
既に NVIDIA ドライバーを使用していて、再起動せずに Nouveau をテストしたい場合、'nvidia' モジュールをアンロードしてください:
 
既に NVIDIA ドライバーを使用していて、再起動せずに Nouveau をテストしたい場合、'nvidia' モジュールをアンロードしてください:
106行目: 98行目:
 
そしてカーネルメッセージを見て正しくロードされていることを確認してください:
 
そしてカーネルメッセージを見て正しくロードされていることを確認してください:
   
$ dmesg
+
# dmesg
   
 
=== 最新の開発パッケージをインストールする ===
 
=== 最新の開発パッケージをインストールする ===
   
  +
最新の Nouveau の改善を得るには:
AUR を通して、最新の -git パッケージをインストールすることができます:
 
   
  +
* {{AUR|linux-git}}
* {{AUR|mesa-git}} を使うことで (最新の DRI ドライバーを含む) 最新の Mesa をインストールすることができます。
 
  +
* {{AUR|libdrm-git}}
* {{AUR|xf86-video-nouveau-git}} を使うことで最新の DDX ドライバーをインストールすることができます。
 
  +
* {{AUR|lib32-libdrm-git}}
* {{AUR|linux-mainline}} などのパッケージを使って新しいカーネルバージョンをインストールすることで、Nouveau DRM コードのパフォーマンスが向上するかもしれません。
 
  +
* {{AUR|lib32-mesa-git}}
* 最新の Nouveau を使うには、AUR の {{AUR|linux-git}} パッケージを使用して、PKGBUILD を編集し Nouveau のカーネルリポジトリ (現在は git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau にあります) を使う必要があります。
 
  +
* {{AUR|mesa-git}}
  +
* {{AUR|xf86-video-nouveau-git}}
   
  +
{{Note|[[#インストール]] で説明したように、ほとんどのケースで xf86-video-nouveau をインストールする必要はなく、推奨もされていません。このパッケージをインストールしないほうが、GPU はより良く機能します。}}
上流のドライバーソースは [http://nouveau.freedesktop.org/wiki/Source Nouveau Source のページ] にあります。
 
   
  +
=== デュアルディスプレイ ===
=== ティアリングフリーのコンポジット ===
 
   
  +
[[Wikipedia:RandR|RandR]] を使用してマルチモニタのセットアップする方法は [[マルチディスプレイ#RandR]] を見てください。
{{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} を編集して、以下を {{ic|Device}} セクションに追加して下さい:
 
   
  +
=== コンソールの解像度を設定する ===
Section "Device"
 
Identifier "nvidia card"
 
Driver "nouveau"
 
Option "GLXVBlank" "true"
 
EndSection
 
   
  +
{{ic|1=video=}} カーネルラインオプションを使うことで nouveau に解像度を渡すことができます([[カーネルモード設定]] を参照してください)。
=== Dual Head ===
 
   
  +
=== 電源管理 ===
Nouveau は xrandr 拡張を使ってモードセッティングやマルチモニターをサポートしています。チュートリアルは [[xrandr]] のページを見て下さい。
 
   
  +
nouveau ドライバーには正しい電源管理機能が実装されていないため、グラフィックカードの周波数は低い状態でロックされてパフォーマンスが思うほど出ない場合があります。カードによっては GPU のオーバークロックが実験的にサポートされています ([https://nouveau.freedesktop.org/wiki/PowerManagement Nouveau の電源管理についてのページ] を見てください)。カーネル 4.5 から {{ic|/sys/kernel/debug/dri/*/pstate}} の debugfs インターフェイスを使って制御できるようになっています。
以下は dual head モードで2つのモニターを動かすための {{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} の完全なサンプルです。GNOME Control Center の Display パネル ({{ic|gnome-control-center display}}) などグラフィカルツールを使ってモニタの設定をすることも可能です。
 
   
  +
例えば、システム上の1番目のカードで利用可能な電源状態と現在の設定を確認するには、以下を実行してください:
{{bc|
 
# the right one
 
Section "Monitor"
 
Identifier "NEC"
 
Option "PreferredMode" "1280x1024_60.00"
 
EndSection
 
   
  +
# cat /sys/kernel/debug/dri/0/pstate
# 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
 
   
  +
# echo ''pstate'' > /sys/kernel/debug/dri/0/pstate
Section "Screen"
 
Identifier "screen1"
 
Monitor "NEC"
 
DefaultDepth 24
 
SubSection "Display"
 
Depth 24
 
Virtual 2560 2048
 
EndSubSection
 
Device "nvidia card"
 
EndSection
 
   
  +
{{Warning|再クロッキングのサポートは実験的です。システムがフリーズしたり、カードがオーバーヒットして破壊される可能性があります。}}
Section "ServerLayout"
 
Identifier "layout1"
 
Screen "screen1"
 
EndSection}}
 
   
=== ソール解像度を設定する ===
+
==== ファンの制御 ====
   
{{Pkg|fbset}} ツールを使ってソール解像度調整してください。
+
カードで実装されていれば、{{ic|/sys}} を使ってファンの制御設定できます:
   
  +
$ find /sys -name pwm1_enable
また、{{ic|1=video=}} カーネルラインオプションを使うことで nouveau に解像度を渡すことができます ([[Kernel Mode Setting|KMS]] を参照してください)。
 
  +
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon1/pwm1_enable
  +
$ readlink /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/driver
  +
../../../../bus/pci/drivers/nouveau
   
  +
{{ic|pwm1_enable}} は 0, 1, 2 に設定できます。それぞれ NONE, MANUAL, AUTO を意味します。ファン制御を手動で設定する場合、{{ic|pwm1}} を設定する必要があります。例えば 40 にすれば速度が 40% になります。
=== 省電力機能 ===
 
   
  +
{{Warning|設定は自己責任です。カードを過熱しすぎないように注意してください。}}
GPU スケーリングが使えるかどうかは GPU によって異なります。
 
   
  +
udev ルールを使って設定することもできます:
カーネル 3.18 から電源管理機能はカーネルに含まれるようになりました。ゲームを遊ぶ場合はモジュール設定に {{ic|1=nouveau.pstate=1}} を追加して、モジュール設定の電源状態を有効化する必要があります。設定することで必要に応じてクロックが上昇します。
 
  +
$ cat /etc/udev/rules.d/50-nouveau-hwmon.rules
  +
ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="2"
   
  +
ソース:
詳細は [http://nouveau.freedesktop.org/wiki/PowerManagement Nouveau PowerManagement のページ] を見て下さい。
 
  +
* https://floppym.blogspot.de/2013/07/fan-control-with-nouveau.html
  +
* https://web.archive.org/web/20141031191559/https://kalgan.cc/blog/posts/Controlling_nVidia_cards_fans_with_nouveau_in_Debian/
   
  +
=== Optimus ===
=== MSI (Message Signaled Interrupts) を有効にする ===
 
   
  +
ラップトップで [[NVIDIA Optimus|Optimus]] (ラップトップに2つの GPU を載せている場合はハイブリッドグラフィック) を使う方法は2つあります: [[bumblebee]] と [[PRIME]]
これによってパフォーマンスがわずかに向上するかもしれません。サポートされているボードではデフォルトで有効になります。
 
   
  +
=== 垂直同期 ===
{{Warning|この設定はマザーボードと GPU の組み合わせによっては不安定になる可能性があります。}}
 
   
  +
Xorg コンポジタは Nouveau で問題が起きやすくなっています。他のコンポジタと異なり、[[Picom]] はちらつきを起こさないようにするためのオプションが多数存在します。上手く動作する設定例:
次の行を {{ic|/etc/modprobe.d/nouveau.conf}} に書いて下さい:
 
   
  +
$ picom -b --unredir-if-possible --backend xr_glx_hybrid --vsync --use-damage --glx-no-stencil
options nouveau config="NvMSI=1"
 
   
  +
{{Tip|コンポジタを使う場合、デスクトップ環境のウィンドウマネージャ (KWin など) のコンポジット機能をオフにしてください。}}
[[#Early_start|early start]] を使っている場合、{{ic|1= FILES="/etc/modprobe.d/nouveau.conf"}} を {{ic|/etc/mkinitcpio.conf}} に加え、カーネルイメージを再生成してください:
 
   
  +
== トラブルシューティング ==
# mkinitcpio -p <kernel preset; e.g. ''linux''>
 
   
システムを再起動することで変更が適用されます。
 
 
=== Optimus ===
 
 
ラップトップで [[NVIDIA Optimus|Optimus]] (ラップトップに2つの GPU を載せているハイブリッドグラフィック) を使う方法は2つあります: [[bumblebee]] と [[PRIME]]
 
 
== トラブルシューティング ==
 
 
{{ic|1=drm.debug=14}} や {{ic|1=log_buf_len=16M}} を[[カーネルパラメータ]]に追加してビデオデバッグを有効にしてください。
 
{{ic|1=drm.debug=14}} や {{ic|1=log_buf_len=16M}} を[[カーネルパラメータ]]に追加してビデオデバッグを有効にしてください。
   
 
Xorg の詳細ログを作成する:
 
Xorg の詳細ログを作成する:
  +
 
$ startx -- -logverbose 9 -verbose 9
 
$ startx -- -logverbose 9 -verbose 9
   
 
ロードされているビデオモジュールのパラメータと値を見る:
 
ロードされているビデオモジュールのパラメータと値を見る:
  +
 
$ modinfo -p video
 
$ modinfo -p video
   
  +
=== MSI の無効化 ===
====間違った出力端子が検出される問題====
 
  +
  +
モジュールがロードされなかったり X サーバーが起動しない場合、[[カーネルパラメータ]]に {{ic|1=nouveau.config=NvMSI=0}} を追加してみてください。
  +
  +
ソース: https://bugs.freedesktop.org/show_bug.cgi?id=78441
  +
  +
=== 間違った出力端子が検出される問題 ===
   
 
nouveau ドライバーでは"幻影"の出力端子が検出されることがあります。例えば、LVDS-1 しか存在しないのに VGA-1 と LVDS-1 が接続されていると表示されることがあります。
 
nouveau ドライバーでは"幻影"の出力端子が検出されることがあります。例えば、LVDS-1 しか存在しないのに VGA-1 と LVDS-1 が接続されていると表示されることがあります。
   
この問題はディスプレイに影響して画面が崩れます。
+
ディスプレイに影響して画面が崩れたり、ノートパソコンで蓋を閉じた時にスリープされない問題が生じます。
   
  +
==== カーネルパラメータ ====
ブートローダーのカーネルコマンドラインで問題の出力端子 (以下の例では VGA-1) を無効化することで解決できます。以下のように追加してください:
 
  +
  +
ブートローダーの[[カーネルパラメータ]]で問題の出力端子 (以下の例では VGA-1) を無効化することで解決できます。以下のように追加してください:
   
 
video=VGA-1:d
 
video=VGA-1:d
227行目: 200行目:
 
'''d''' = disable です。
 
'''d''' = disable です。
   
  +
nouveau カーネルモジュールには TV 出力の検知を無効化するオプションがあります[https://nouveau.freedesktop.org/wiki/KernelModuleParameters/#tv_disable]:
また、{{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} に以下を追加することで X で幻影の出力端子を無効化することもできます:
 
  +
  +
tv_disable = 1
  +
  +
==== Xorg の設定 ====
  +
  +
{{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} に以下を追加することで [[Xorg]] で幻影の出力端子を無効化することもできます:
   
 
Section "Monitor"
 
Section "Monitor"
234行目: 213行目:
 
EndSection
 
EndSection
   
ソース: http://gentoo-en.vfose.ru/wiki/Nouveau#Phantom_and_unpopulated_output_connector_issues
+
ソース: https://web.archive.org/web/20170118202740/http://gentoo-en.vfose.ru/wiki/Nouveau#Phantom_and_unpopulated_output_connector_issues
  +
  +
==== Xrandr ====
  +
  +
[[Xrandr]] で出力端子を無効化することができます:
  +
  +
$ xrandr --output VGA-1 --off
  +
  +
この設定を [[xinit]] に記述することもできます。
  +
  +
=== カーネルのエラーメッセージを吐いてランダムにフリーズする ===
  +
  +
特定の Nvidia チップを Nouveau で使用するとシステムがランダムにフリーズして大量のカーネルメッセージを吐くことがあります。メッセージは ''dmesg'' で確認できます。その場合、{{ic|1=nouveau.noaccel=1}} [[カーネルパラメータ]]を追加してみてください。詳しくは [[Fedora:Common kernel problems#Systems with nVidia adapters using the nouveau driver lock up randomly]] を参照。
  +
  +
注意点として、{{ic|1=nouveau.noaccel=1}} カーネルパラメータを使用すると、iGPU が存在しない場合や、[https://h30434.www3.hp.com/t5/Notebook-Video-Display-and-Touch/Integrated-Intel-Graphics-GPU-disabled-by-factory/td-p/7178220 iGPU が工場出荷時に無効化されている]場合に、[https://bugs.kde.org/show_bug.cgi?id=485429 Wayland で CPU 使用率がほぼ 100% になる]かもしれません。この場合、X11 セッションに切り替えるか、{{ic|1=LIBGL_ALWAYS_SOFTWARE=1}} [[環境変数]]を設定して Wayland の OpenGL ハードウェアアクセラレーションを完全に無効化することができます。
  +
  +
{{ic|1=QT_XCB_FORCE_SOFTWARE_OPENGL=1}} [[環境変数]]を使って Qt アプリケーションの OpenGL アクセラレーションを無効化するという方法もあります。
  +
  +
=== Flat Panel Table Invalid ===
  +
  +
最新のチップセットを使用する NVIDIA グラフィックカードは起動時に問題を起こすことがあります。例えば X11 が起動しなかったり lspci が永遠にフリーズします [https://bugzilla.redhat.com/show_bug.cgi?id=1425253][https://bbs.archlinux.org/viewtopic.php?id=192532][https://stackoverflow.com/questions/28062458/nouveau-error-while-booting-arch][https://bbs.archlinux.org/viewtopic.php?id=207602][https://unix.stackexchange.com/questions/207895/how-do-i-install-antergos-with-a-gtx-970]。
  +
  +
ライブディストリビューションやインストールメディアが壊れることもあります。問題は lspci を実行するか systemd のジャーナルをチェックすることで確認できます:
  +
  +
nouveau E[ DRM]Pointer to flat panel table invalid
  +
  +
以下の[[カーネルパラメータ]]を使って Nouveau ドライバーを無効化することで起動するようになるかもしれません:
  +
  +
modprobe.blacklist=nouveau
  +
  +
起動したら以下のコマンドで Nouveau ドライバーをロードしてください:
  +
  +
modprobe nouveau
  +
  +
これでシステムが正しく動作するはずです。
  +
他の Nvidia グラフィックカードを持っていて、念の為に問題のカードを無効化したい場合:
  +
  +
$ echo 1 > /sys/bus/pci/devices/[card device id]/remove
  +
  +
{{TranslationStatus|Nouveau|2024-06-05|810003}}

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

関連記事

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

使用中のカードのコードネームを見つけてください(より詳細なリストは Wikipedia にあります)。サポートされている機能の機能表と比較してください。

インストール

mesa パッケージをインストールしてください。これは 3D アクセラレーションのための DRI ドライバを提供します。

  • 32ビットアクセラレーションサポートが必要な場合は、multilib リポジトリから lib32-mesa パッケージもインストールしてください。
  • (Xorg で 2D アクセラレーションを提供する) DDX ドライバが必要な場合、xf86-video-nouveau パッケージをインストールしてください。
ノート: NV50 (G80) 以降のハードウェアでは xf86-video-nouveau ドライバをインストールせずに代わりに modesetting ドライバにフォールバックさせることが有益であると提唱されています。例えば、2021年のユーザレポートを参照してください。

ハードウェアビデオアクセラレーション も参照してください。

Mesa NVK Vulkan Driver を使う

警告: このドライバはまだ作業中であり、リグレッションが発生することが予測されます。オープンソースドライバとプロプライエタリドライバで動作していた一部のソフトウェア (ほとんどはゲーム) は、おそらく NVK ではあまり (あるいは全く) 動作しないでしょう。ゲームをよくプレイする場合は、NVK がもう少し成熟するまで、NVK の使用を避けたほうが良いでしょう。

NVK を使用するには、カーネルのバージョンが 6.7 以上であり、バージョン 24.1 以上の mesa をインストールしておく必要があります。

NVK を有効化する前に、以下のパッケージ (及びこれらの lib32 版と DKMS 版) を全てアンインストールする必要があります:

ハイブリッドグラフィックのノート PC やデュアル GPU のシステムでは、/etc/modprobe.d の設定で Nouveau が GPU マネージャによってブラックリスト化されていないことを確認してください。

ノート: おそらく、上記以外の全ての GPU マネージャもアンインストールしたほうが良いでしょう。なぜなら、これらのパッケージの殆どはモジュールをブラックリスト化することで動作し、それによって NVK と干渉してしまうかもしれないからです。

次に、vulkan-nouveau (必要であれば lib32-vulkan-nouveau も) をインストールしてください。

カーネルパラメータnouveau.config=NvGspRm=1 を追加してください。

最後に、システムを再起動してください。

正しく動作していることを確認するには、vulkan-tools パッケージの vulkaninfo を使うことができます。システムの NVIDIA GPU が NVK ドライバを使用していると報告するはずです。

$ vulkaninfo
...
GPU id : 0 (NVIDIA GeForce RTX 3050 Ti Laptop GPU (NVK GA107)):
       Surface type = VK_KHR_wayland_surface
       Formats: count = 8
...

ロード

システムの起動時に Nouveau のカーネルモジュールは自動的にロードされるはずです。ロードされない場合は:

  • カーネルパラメータnomodesetvga= を設定していないことを確認してください。Nouveau はカーネルモードセッティングを要求します。
  • また、/etc/modprobe.d//usr/lib/modprobe.d/ の中で modprobe のブラックリストによって Nouveau が無効になっていないことを確認してください。
  • 上記全てを確認しても nouveau がロードされない場合は dmesg で opcode エラーが起こってないか確認してください。nouveau.config=NvBios=PRAMINカーネルパラメータに追加することでモジュールのアンロードを防ぐことができます [1]
  • /etc/X11/xorg.conf ファイルまたは /etc/X11/xorg.conf.d/ 内の任意のファイルが存在し、nvidia ドライバを参照しているかどうかを確認してください。おそらく、このファイルの名前を変更したほうが良いでしょう。

早期 KMS

カーネルモード設定 (KMS; Kernel Mode Setting) は、nouveau ドライバによってサポートされており、mkinitcpio v32 からブートの早期段階で有効化されるようになっています (このバージョンからデフォルトで kms フックが含まれています)。他の環境で KMS をブートプロセスの可能な限り早い段階で有効化する方法については、カーネルモード設定#KMS の早期開始 を参照してください。

ヒント: 解像度に問題がある場合、カーネルモード設定#モードと EDID を強制する をチェックしてください。

ヒントとテクニック

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

プロプライエタリの NVIDIA ドライバーをインストールしたままにしておきたいが、Nouveau ドライバーも使いたい(そして OpenGL を使用していない)場合、/etc/modprobe.d/nouveau_blacklist.conf または /usr/lib/modprobe.d/nvidia-utils.conf 内の nouveau のブラックリストを以下のようにコメントアウトしてください:

#blacklist nouveau

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

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

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

# rmmod nvidia

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

# modprobe nouveau

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

# dmesg

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

最新の Nouveau の改善を得るには:

ノート: #インストール で説明したように、ほとんどのケースで xf86-video-nouveau をインストールする必要はなく、推奨もされていません。このパッケージをインストールしないほうが、GPU はより良く機能します。

デュアルディスプレイ

RandR を使用してマルチモニタのセットアップする方法は マルチディスプレイ#RandR を見てください。

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

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

電源管理

nouveau ドライバーには正しい電源管理機能が実装されていないため、グラフィックカードの周波数は低い状態でロックされてパフォーマンスが思うほど出ない場合があります。カードによっては GPU のオーバークロックが実験的にサポートされています (Nouveau の電源管理についてのページ を見てください)。カーネル 4.5 から /sys/kernel/debug/dri/*/pstate の debugfs インターフェイスを使って制御できるようになっています。

例えば、システム上の1番目のカードで利用可能な電源状態と現在の設定を確認するには、以下を実行してください:

# cat /sys/kernel/debug/dri/0/pstate

インターフェイスに書き込むことで特定の電源状態を手動で設定/強制することもできます:

# echo pstate > /sys/kernel/debug/dri/0/pstate
警告: 再クロッキングのサポートは実験的です。システムがフリーズしたり、カードがオーバーヒットして破壊される可能性があります。

ファンの制御

カードで実装されていれば、/sys を使ってファンの制御を設定できます:

$ find /sys -name pwm1_enable
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon1/pwm1_enable
$ readlink /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/driver
../../../../bus/pci/drivers/nouveau

pwm1_enable は 0, 1, 2 に設定できます。それぞれ NONE, MANUAL, AUTO を意味します。ファン制御を手動で設定する場合、pwm1 を設定する必要があります。例えば 40 にすれば速度が 40% になります。

警告: 設定は自己責任です。カードを過熱しすぎないように注意してください。

udev ルールを使って設定することもできます:

$ cat /etc/udev/rules.d/50-nouveau-hwmon.rules
ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="2"

ソース:

Optimus

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

垂直同期

Xorg コンポジタは Nouveau で問題が起きやすくなっています。他のコンポジタと異なり、Picom はちらつきを起こさないようにするためのオプションが多数存在します。上手く動作する設定例:

$ picom -b --unredir-if-possible --backend xr_glx_hybrid --vsync --use-damage --glx-no-stencil
ヒント: コンポジタを使う場合、デスクトップ環境のウィンドウマネージャ (KWin など) のコンポジット機能をオフにしてください。

トラブルシューティング

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

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

$ startx -- -logverbose 9 -verbose 9

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

$ modinfo -p video

MSI の無効化

モジュールがロードされなかったり X サーバーが起動しない場合、カーネルパラメータnouveau.config=NvMSI=0 を追加してみてください。

ソース: https://bugs.freedesktop.org/show_bug.cgi?id=78441

間違った出力端子が検出される問題

nouveau ドライバーでは"幻影"の出力端子が検出されることがあります。例えば、LVDS-1 しか存在しないのに VGA-1 と LVDS-1 が接続されていると表示されることがあります。

ディスプレイに影響して画面が崩れたり、ノートパソコンで蓋を閉じた時にスリープされない問題が生じます。

カーネルパラメータ

ブートローダーのカーネルパラメータで問題の出力端子 (以下の例では VGA-1) を無効化することで解決できます。以下のように追加してください:

video=VGA-1:d

d = disable です。

nouveau カーネルモジュールには TV 出力の検知を無効化するオプションがあります[2]:

tv_disable = 1

Xorg の設定

/etc/X11/xorg.conf.d/20-nouveau.conf に以下を追加することで Xorg で幻影の出力端子を無効化することもできます:

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

ソース: https://web.archive.org/web/20170118202740/http://gentoo-en.vfose.ru/wiki/Nouveau#Phantom_and_unpopulated_output_connector_issues

Xrandr

Xrandr で出力端子を無効化することができます:

 $ xrandr --output VGA-1 --off

この設定を xinit に記述することもできます。

カーネルのエラーメッセージを吐いてランダムにフリーズする

特定の Nvidia チップを Nouveau で使用するとシステムがランダムにフリーズして大量のカーネルメッセージを吐くことがあります。メッセージは dmesg で確認できます。その場合、nouveau.noaccel=1 カーネルパラメータを追加してみてください。詳しくは Fedora:Common kernel problems#Systems with nVidia adapters using the nouveau driver lock up randomly を参照。

注意点として、nouveau.noaccel=1 カーネルパラメータを使用すると、iGPU が存在しない場合や、iGPU が工場出荷時に無効化されている場合に、Wayland で CPU 使用率がほぼ 100% になるかもしれません。この場合、X11 セッションに切り替えるか、LIBGL_ALWAYS_SOFTWARE=1 環境変数を設定して Wayland の OpenGL ハードウェアアクセラレーションを完全に無効化することができます。

QT_XCB_FORCE_SOFTWARE_OPENGL=1 環境変数を使って Qt アプリケーションの OpenGL アクセラレーションを無効化するという方法もあります。

Flat Panel Table Invalid

最新のチップセットを使用する NVIDIA グラフィックカードは起動時に問題を起こすことがあります。例えば X11 が起動しなかったり lspci が永遠にフリーズします [3][4][5][6][7]

ライブディストリビューションやインストールメディアが壊れることもあります。問題は lspci を実行するか systemd のジャーナルをチェックすることで確認できます:

nouveau E[     DRM]Pointer to flat panel table invalid

以下のカーネルパラメータを使って Nouveau ドライバーを無効化することで起動するようになるかもしれません:

modprobe.blacklist=nouveau

起動したら以下のコマンドで Nouveau ドライバーをロードしてください:

modprobe nouveau

これでシステムが正しく動作するはずです。 他の Nvidia グラフィックカードを持っていて、念の為に問題のカードを無効化したい場合:

$ echo 1 > /sys/bus/pci/devices/[card device id]/remove
翻訳ステータス: このページは en:Nouveau の翻訳バージョンです。最後の翻訳日は 2024-06-05 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。