「Nouveau」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
2行目: 2行目:
 
[[Category:X サーバー]]
 
[[Category:X サーバー]]
 
[[en:Nouveau]]
 
[[en:Nouveau]]
  +
[[de:Nouveau]]
 
[[es:Nouveau]]
 
[[es:Nouveau]]
[[it:Nouveau]]
+
[[fr:Nouveau]]
[[ru:Nouveau]]
 
[[zh-hans:Nouveau]]
 
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|NVIDIA}}
 
{{Related|NVIDIA}}
12行目: 11行目:
 
{{Related articles end}}
 
{{Related articles end}}
   
この記事は NVIDIA カードのオープンソースドライバー [https://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/ feature matrix] と比較してください。
   
 
== インストール ==
 
== インストール ==
   
  +
{{Pkg|mesa}} パッケージを[[インストール]]してください。これは 3D アクセラレーションのための DRI ドライバを提供します。
先に進む前に、あなたの使っているカードの [https://nouveau.freedesktop.org/wiki/CodeNames コードネーム] (もっと詳しいリストが [[Wikipedia:Comparison of Nvidia Graphics Processing Units|Wikipedia]] にあります) を確認して [https://nouveau.freedesktop.org/wiki/FeatureMatrix/ feature matrix] を見てあなたのグラフィックカードでサポートされている機能をチェックしてください。また、[[Xorg]] が正しくインストールされているか確認してください。
 
   
3D アクセラレーションのための DRI ドライバを提供する {{Pkg|mesa}} を[[インストール]]してください。
+
* 32ビットアクセラレーションサポートが必要な場合は、[[multilib]] リポジトリから {{Pkg|lib32-mesa}} パッケージもインストールしてください。
  +
* ([[Xorg]] で 2D アクセラレーションを提供する) DDX ドライバが必要な場合、{{Pkg|xf86-video-nouveau}} パッケージを[[インストール]]してください。
   
* x86_64 環境で32ットのプリケーションのサポートが必要な場合、[[multilib]] から {{Pkg|lib32-mesa}}インストールしてください。
+
[[ハードウェアデオクセラレーション]] もてください。
* (Xorg における 2D アクセラレーションを提供する) DDX ドライバーは {{Pkg|xf86-video-nouveau}} パッケージで[[pacman|インストール]]してください。
 
 
[[ハードウェアビデオアクセラレーション]]も見てください。
 
 
{{Note|3D ドライバーのバグを報告する前に [https://nouveau.freedesktop.org/wiki/MesaDrivers Nouveau MesaDrivers page] を見て下さい。}}
 
   
 
== ロード ==
 
== ロード ==
   
システムの起動時に Nouveau のカーネルモジュールは自動的にロードされす。
+
システムの起動時に Nouveau のカーネルモジュールは自動的にロードされるはずです。ロードされない場合は:
   
  +
* [[カーネルパラメータ]]に {{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}} を[[カーネルパラメータ]]に追加することでモジュールのアンロードを防ぐことができます [https://nouveau.freedesktop.org/wiki/TroubleShooting/#index10h3]。
  +
* {{ic|/etc/X11/xorg.conf}} が存在し、{{ic|nvidia}} ドライバを参照しているかどうかを確認してください。おそらく、このファイルの名前を変更したほうが良いでしょう。
   
  +
=== 早期 KMS を有効化する ===
* [[カーネルパラメータ]]に {{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}} を[[カーネルパラメータ]]に追加することでモジュールのアンロードを防ぐことができます [https://nouveau.freedesktop.org/wiki/TroubleShooting/#index10h3]。
 
 
=== KMS ===
 
   
 
{{Tip|解像度に問題がある場合、[[Kernel Mode Setting#モードの強制と EDID]] をチェックしてください。}}
 
{{Tip|解像度に問題がある場合、[[Kernel Mode Setting#モードの強制と EDID]] をチェックしてください。}}
   
Nouveau ドライバーを使うには [[Kernel Mode Setting]] (KMS) が必要です。システムが起動するとKMS ディスプレイライバーを初期化するとき解像度ます。"Late start" モードで KMS を初期化するのに必要なのは Nouveau ドライバーのインストールだけです (下を参照)。詳しくは [https://nouveau.freedesktop.org/wiki/KernelModeSetting Nouveau KernelModeSetting のページ] を見て下さい。
+
Nouveau ドライバーを使うには [[Kernel Mode Setting]] (KMS) が必要です。デフォルトで他のカーネルモジュールローされた後 KMS ます。"Loading modules" というテキスト表示され、テキストの大きさが変化するでしょう。ちらつきが発生るかもしれません。詳は [https://nouveau.freedesktop.org/wiki/KernelModeSetting Nouveau KernelModeSetting のページ] を見て下さい。
 
{{Note|ブートプロセスの間に見苦しい解像度変更がないため early start の方が好ましいかもしれません。}}
 
 
==== Late start ====
 
 
この方法では他のカーネルモジュールがロードされた後に KMS を起動します。"Loading modules" の文字が表示されてテキストのサイズが変わります。ちらつきが発生するかもしれません。
 
 
==== Early start ====
 
   
この方法では [[mkinitcpio|initramfs]] がロードされた時に、ブートプロセスで出来るだけ KMS を起動ます。
+
[[initramfs]] がロードされた時に、ブートプロセス中の可能な限りい段階で KMS を起動させることもできます。
   
{{ic|nouveau}} を {{ic|/etc/mkinitcpio.conf}} の {{ic|MODULES}} 行に追加して下さい:
+
{{ic|nouveau}} を {{ic|/etc/mkinitcpio.conf}} の {{ic|MODULES}} 行に追加して下さい(モジュールの名前は半角スペースで区切られます):
   
MODULES="... nouveau ..."
+
MODULES=(... nouveau ...)
   
 
カスタム EDID ファイルを使っている場合、同じように initramfs に埋め込む必要があります:
 
カスタム EDID ファイルを使っている場合、同じように initramfs に埋め込む必要があります:
62行目: 50行目:
 
2=FILES="/lib/firmware/edid/your_edid.bin"}}
 
2=FILES="/lib/firmware/edid/your_edid.bin"}}
   
initial ramdisk イメージを再生成してください:
+
最後に [[Initramfs を再生成する|Initramfs を再生成]]してください
 
# mkinitcpio -p <kernel preset; e.g. ''linux''>
 
 
Nouveau に問題が発生してテスト目的に nouveau-drm を複数回リビルドする場合、initramfs に {{ic|nouveau}} は追加しないでください。initramfs を再生成するのは忘れやすいためテストするのが面倒くさくなります。システムが安定したと確証を得るまでは "Late start" を使いましょう。(通常は推奨されない) カスタムファームウェアが必要な場合、initramfs で問題が別に発生することもあります。
 
   
 
== ヒントとテクニック ==
 
== ヒントとテクニック ==
72行目: 56行目:
 
=== NVIDIA ドライバーをインストールしたままにしておく ===
 
=== NVIDIA ドライバーをインストールしたままにしておく ===
   
プロプライエタリの NVIDIA ドライバーをアンインストールしたくないが、Nouveau ドライバー使いたい場合、{{ic|/etc/modprobe.d/nouveau_blacklist.conf}} や {{ic|/usr/lib/modprobe.d/nvidia.conf}} 内の nouveau のブラックリストを以下のように修正してコメントアウトしてください:
+
プロプライエタリの NVIDIA ドライバーをインストールしたままにしておきたいが、Nouveau ドライバー使いたい(そして OpenGL を使用していない)場合、{{ic|/etc/modprobe.d/nouveau_blacklist.conf}} や {{ic|/usr/lib/modprobe.d/nvidia.conf}}、{{ic|/usr/lib/modprobe.d/nvidia-dkms.conf}} 内の nouveau のブラックリストを以下のように修正してコメントアウトしてください:
   
 
#blacklist nouveau
 
#blacklist nouveau
93行目: 77行目:
 
そしてカーネルメッセージを見て正しくロードされていることを確認してください:
 
そしてカーネルメッセージを見て正しくロードされていることを確認してください:
   
$ dmesg
+
# dmesg
   
 
=== 最新の開発パッケージをインストールする ===
 
=== 最新の開発パッケージをインストールする ===
   
  +
最新の Nouveau の改善を得るには:
AUR を通して、最新の -git パッケージをインストールすることができます:
 
   
* {{AUR|mesa-git}} を使うこと (最新の DRI ドライバーを含む) 最新Mesaインストールすることができます。
+
*{{AUR|linux-git}} PKGBUILD 、パッケゼロから作成せずに https://github.com/skeggsb/linux/Nouveau ツリー使用できます。
  +
*{{AUR|libdrm-git}}
* {{AUR|linux-mainline}} などのパッケージを使って新しいカーネルバージョンをインストールすることで、Nouveau DRM コードのパフォーマンスが向上するかもしれません。
 
  +
*{{AUR|lib32-libdrm-git}}
* 最新の Nouveau を使うには、AUR の {{AUR|linux-git}} パッケージを使用して、PKGBUILD を編集し Nouveau のカーネルリポジトリ (現在は git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau にあります) を使う必要があります。
 
  +
*{{AUR|lib32-mesa-git}}
 
  +
*{{AUR|mesa-git}}
上流のドライバーソースは [https://nouveau.freedesktop.org/wiki/Source Nouveau Source のページ] にあります。
 
  +
*{{AUR|xf86-video-nouveau-git}}
 
=== ティアリングフリーのコンポジット ===
 
 
{{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} を編集して、以下を {{ic|Device}} セクションに追加して下さい:
 
 
Section "Device"
 
Identifier "nvidia card"
 
Driver "nouveau"
 
Option "GLXVBlank" "true"
 
EndSection
 
   
 
=== デュアルディスプレイ ===
 
=== デュアルディスプレイ ===
   
Nouveau は xrandr 拡張を使モードセッティングやマルチモニターをサポーしていま。チュートリアルは [[xrandr]] のページを見てさい。
+
[[Wikipedia:RandR|RandR]] を使用してマルチモニタのセッアップる方法は [[マルチディスプレイ#RandR]] を見てください。
 
以下は dual head モードで2つのモニターを動かすための {{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} の完全なサンプルです。GNOME Control Center の Display パネル ({{ic|gnome-control-center display}}) などグラフィカルツールを使ってモニタの設定をすることも可能です。
 
 
{{bc|
 
# 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}}
 
   
 
=== コンソールの解像度を設定する ===
 
=== コンソールの解像度を設定する ===
   
{{Pkg|fbset}} ールを使ってコンソールの解像度を調整してください。
+
{{ic|1=video=}} ラインオプションを使うことで nouveau に解像度を渡すことができます([[Kernel Mode Setting]] を参照してください)
 
また、{{ic|1=video=}} カーネルラインオプションを使うことで nouveau に解像度を渡すことができます ([[Kernel Mode Setting|KMS]] を参照してください)。
 
   
 
=== 電源管理 ===
 
=== 電源管理 ===
168行目: 102行目:
 
nouveau ドライバーには正しい電源管理機能が実装されていないため、グラフィックカードの周波数は低い状態でロックされてパフォーマンスが思うほど出ない場合があります。カードによっては GPU のオーバークロックが実験的にサポートされています ([https://nouveau.freedesktop.org/wiki/PowerManagement Nouveau の電源管理についてのページ] を見てください)。カーネル 4.5 から {{ic|/sys/kernel/debug/dri/*/pstate}} の debugfs インターフェイスを使って制御できるようになっています。
 
nouveau ドライバーには正しい電源管理機能が実装されていないため、グラフィックカードの周波数は低い状態でロックされてパフォーマンスが思うほど出ない場合があります。カードによっては GPU のオーバークロックが実験的にサポートされています ([https://nouveau.freedesktop.org/wiki/PowerManagement Nouveau の電源管理についてのページ] を見てください)。カーネル 4.5 から {{ic|/sys/kernel/debug/dri/*/pstate}} の debugfs インターフェイスを使って制御できるようになっています。
   
例えば、使用しているカード現在の設定と電源状態を確認するには:
+
例えば、システム上の1番目のカードで利用可能な電源状態と現在の設定を確認するには、以下を実行してください:
   
 
# cat /sys/kernel/debug/dri/0/pstate
 
# cat /sys/kernel/debug/dri/0/pstate
   
以下のコマドを実行することで電源状態を手動で設定できます:
+
ターフェイスに書き込むことで特定の電源状態を手動で設定/強制することもできます:
   
 
# echo ''pstate'' > /sys/kernel/debug/dri/0/pstate
 
# echo ''pstate'' > /sys/kernel/debug/dri/0/pstate
   
{{Warning|上記設定は実験的です。システムがフリーズしたり、カードがオーバーヒットして破壊される可能性があります。}}
+
{{Warning|再クロッキングサポートは実験的です。システムがフリーズしたり、カードがオーバーヒットして破壊される可能性があります。}}
   
 
==== ファンの制御 ====
 
==== ファンの制御 ====
   
  +
カードで実装されていれば、{{ic|/sys}} を使ってファンの制御を設定できます:
{{Warning|設定は自己責任です。カードを過熱しすぎないように注意してください。}}
 
 
{{ic|/sys}} を使ってファンの制御を設定できる場合があります:
 
   
 
$ find /sys -name pwm1_enable
 
$ find /sys -name pwm1_enable
190行目: 122行目:
   
 
{{ic|pwm1_enable}} は 0, 1, 2 に設定できます。それぞれ NONE, MANUAL, AUTO を意味します。ファン制御を手動で設定する場合、{{ic|pwm1}} を設定する必要があります。例えば 40 にすれば速度が 40% になります。
 
{{ic|pwm1_enable}} は 0, 1, 2 に設定できます。それぞれ NONE, MANUAL, AUTO を意味します。ファン制御を手動で設定する場合、{{ic|pwm1}} を設定する必要があります。例えば 40 にすれば速度が 40% になります。
  +
  +
{{Warning|設定は自己責任です。カードを過熱しすぎないように注意してください。}}
   
 
udev ルールを使って設定することもできます:
 
udev ルールを使って設定することもできます:
196行目: 130行目:
   
 
ソース:
 
ソース:
* http://floppym.blogspot.de/2013/07/fan-control-with-nouveau.html
+
* https://floppym.blogspot.de/2013/07/fan-control-with-nouveau.html
* https://kalgan.cc/blog/posts/Controlling_nVidia_cards_fans_with_nouveau_in_Debian/
+
* https://web.archive.org/web/20141031191559/https://kalgan.cc/blog/posts/Controlling_nVidia_cards_fans_with_nouveau_in_Debian/
   
 
=== Optimus ===
 
=== Optimus ===
   
ラップトップで [[NVIDIA Optimus|Optimus]] (ラップトップに2つの GPU を載せているハイブリッドグラフィック) を使う方法は2つあります: [[bumblebee]] と [[PRIME]]
+
ラップトップで [[NVIDIA Optimus|Optimus]] (ラップトップに2つの GPU を載せている場合はハイブリッドグラフィック) を使う方法は2つあります: [[bumblebee]] と [[PRIME]]
   
 
=== 垂直同期 ===
 
=== 垂直同期 ===
   
 
Xorg コンポジタは Nouveau で問題が起きやすくなっています。他のコンポジタと異なり、[[Picom]] はちらつきを起こさないようにするためのオプションが多数存在します。上手く動作する設定例:
 
Xorg コンポジタは Nouveau で問題が起きやすくなっています。他のコンポジタと異なり、[[Picom]] はちらつきを起こさないようにするためのオプションが多数存在します。上手く動作する設定例:
  +
picom -b --paint-on-overlay --unredir-if-possible --backend xr_glx_hybrid --vsync drm --glx-swap-method -1 --glx-no-stencil
 
  +
$ picom -b --unredir-if-possible --backend xr_glx_hybrid --vsync --use-damage --glx-no-stencil
  +
 
{{Tip|コンポジタを使う場合、デスクトップ環境のウィンドウマネージャ (KWin など) のコンポジット機能をオフにしてください。}}
 
{{Tip|コンポジタを使う場合、デスクトップ環境のウィンドウマネージャ (KWin など) のコンポジット機能をオフにしてください。}}
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
  +
 
{{ic|1=drm.debug=14}} や {{ic|1=log_buf_len=16M}} を[[カーネルパラメータ]]に追加してビデオデバッグを有効にしてください。
 
{{ic|1=drm.debug=14}} や {{ic|1=log_buf_len=16M}} を[[カーネルパラメータ]]に追加してビデオデバッグを有効にしてください。
   
218行目: 155行目:
 
$ modinfo -p video
 
$ modinfo -p video
   
===MSI の無効化===
+
=== MSI の無効化 ===
  +
 
モジュールがロードされなかったり X サーバーが起動しない場合、[[カーネルパラメータ]]に {{ic|1=nouveau.config=NvMSI=0}} を追加してみてください。
 
モジュールがロードされなかったり X サーバーが起動しない場合、[[カーネルパラメータ]]に {{ic|1=nouveau.config=NvMSI=0}} を追加してみてください。
   
 
ソース: https://bugs.freedesktop.org/show_bug.cgi?id=78441
 
ソース: https://bugs.freedesktop.org/show_bug.cgi?id=78441
   
===間違った出力端子が検出される問題===
+
=== 間違った出力端子が検出される問題 ===
   
 
nouveau ドライバーでは"幻影"の出力端子が検出されることがあります。例えば、LVDS-1 しか存在しないのに VGA-1 と LVDS-1 が接続されていると表示されることがあります。
 
nouveau ドライバーでは"幻影"の出力端子が検出されることがあります。例えば、LVDS-1 しか存在しないのに VGA-1 と LVDS-1 が接続されていると表示されることがあります。
231行目: 169行目:
 
==== カーネルパラメータ ====
 
==== カーネルパラメータ ====
   
ブートローダーのカーネルコマンドインで問題の出力端子 (以下の例では VGA-1) を無効化することで解決できます。以下のように追加してください:
+
ブートローダーの[[カーネルメータ]]で問題の出力端子 (以下の例では VGA-1) を無効化することで解決できます。以下のように追加してください:
   
 
video=VGA-1:d
 
video=VGA-1:d
237行目: 175行目:
 
'''d''' = disable です。
 
'''d''' = disable です。
   
nouveau カーネルモジュールには TV 出力の検知を無効化するオプションがあります:
+
nouveau カーネルモジュールには TV 出力の検知を無効化するオプションがあります[https://nouveau.freedesktop.org/wiki/KernelModuleParameters/#tv_disable]:
  +
 
tv_disable = 1
 
tv_disable = 1
   
 
==== Xorg の設定 ====
 
==== Xorg の設定 ====
  +
 
{{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} に以下を追加することで [[Xorg]] で幻影の出力端子を無効化することもできます:
 
{{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} に以下を追加することで [[Xorg]] で幻影の出力端子を無効化することもできます:
   
248行目: 188行目:
 
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]] で幻影の出力端子を無効化することできます:
+
[[Xrandr]] で出力端子を無効化することできます:
$ xrandr --output VGA-1 --off
 
   
  +
$ xrandr --output VGA-1 --off
{{Tip|この設定を [[xinit]] に記述することもできます。}}
 
   
  +
この設定を [[xinit]] に記述することもできます。
===カーネルのエラーメッセージを吐いてフリーズする===
 
   
  +
=== カーネルのエラーメッセージを吐いてランダムにフリーズする ===
特定の Nvidia チップを Nouveau で使用するとシステムがランダムにフリーズして大量のカーネルメッセージを吐くことがあります。メッセージは ''dmesg'' で確認できます。その場合、{{ic|1=nouveau.noaccel=1}} [[カーネルパラメータ]]を追加してみてください。詳しくは [https://fedoraproject.org/wiki/Common_kernel_problems#Systems_with_nVidia_adapters_using_the_nouveau_driver_lock_up_randomly] を参照。
 
  +
  +
特定の 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=QT_XCB_FORCE_SOFTWARE_OPENGL=1}} [[環境変数]]を使って Qt アプリケーションの OpenGL アクセラレーションを無効化するという方法もあります。
 
{{ic|1=QT_XCB_FORCE_SOFTWARE_OPENGL=1}} [[環境変数]]を使って Qt アプリケーションの OpenGL アクセラレーションを無効化するという方法もあります。
   
===Flat Panel Table Invalid===
+
=== 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]。
 
最新のチップセットを使用する 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]。
279行目: 220行目:
 
modprobe nouveau
 
modprobe nouveau
   
  +
これでシステムが正しく動作するはずです。
他の Nvidia グラフィックカードを持っていて、問題のカードを無効化したい場合:
 
  +
他の Nvidia グラフィックカードを持っていて、念の為に問題のカードを無効化したい場合:
   
 
$ echo 1 > /sys/bus/pci/devices/[card device id]/remove
 
$ echo 1 > /sys/bus/pci/devices/[card device id]/remove
 
[[NVIDIA]] のプロプライエタリドライバーはいまのところ問題なく動作します (バージョン 381)。
 

2022年7月21日 (木) 22:35時点における版

関連記事

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

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

インストール

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

  • 32ビットアクセラレーションサポートが必要な場合は、multilib リポジトリから lib32-mesa パッケージもインストールしてください。
  • (Xorg で 2D アクセラレーションを提供する) DDX ドライバが必要な場合、xf86-video-nouveau パッケージをインストールしてください。

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

ロード

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

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

早期 KMS を有効化する

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

Nouveau ドライバーを使うには Kernel Mode Setting (KMS) が必要です。デフォルトで、他のカーネルモジュールがロードされた後に KMS が行われます。"Loading modules" というテキスト表示され、テキストの大きさが変化するでしょう。ちらつきが発生するかもしれません。詳細は Nouveau KernelModeSetting のページ を見て下さい。

initramfs がロードされた時に、ブートプロセス中の可能な限り早い段階で KMS を起動させることもできます。

nouveau/etc/mkinitcpio.confMODULES 行に追加して下さい(モジュールの名前は半角スペースで区切られます):

MODULES=(... nouveau ...)

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

/etc/mkinitcpio.conf
FILES="/lib/firmware/edid/your_edid.bin"

最後に Initramfs を再生成してください。

ヒントとテクニック

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

プロプライエタリの NVIDIA ドライバーをインストールしたままにしておきたいが、Nouveau ドライバーも使いたい(そして OpenGL を使用していない)場合、/etc/modprobe.d/nouveau_blacklist.conf/usr/lib/modprobe.d/nvidia.conf/usr/lib/modprobe.d/nvidia-dkms.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 の改善を得るには:

デュアルディスプレイ

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

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

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

電源管理

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 を参照。

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