「Nouveau」の版間の差分
(同期) |
Kusanaginoturugi (トーク | 投稿記録) (カテゴリを修正) |
||
(5人の利用者による、間の21版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category:グラフィック]] |
+ | [[Category:グラフィックス]] |
[[Category:X サーバー]] |
[[Category:X サーバー]] |
||
[[en:Nouveau]] |
[[en:Nouveau]] |
||
+ | [[de:Nouveau]] |
||
[[es:Nouveau]] |
[[es:Nouveau]] |
||
− | [[ |
+ | [[fr: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 カードのオープンソースドライバー [ |
+ | この記事では 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 ドライバーを |
+ | プロプライエタリの 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 |
|
=== 最新の開発パッケージをインストールする === |
=== 最新の開発パッケージをインストールする === |
||
+ | 最新の 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 のページ] にあります。 |
||
− | |||
− | === ティアリングフリーのコンポジット === |
||
− | |||
− | {{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} を編集して、以下を {{ic|Device}} セクションに追加して下さい: |
||
− | |||
− | Section "Device" |
||
− | Identifier "nvidia card" |
||
− | Driver "nouveau" |
||
− | Option "GLXVBlank" "true" |
||
− | EndSection |
||
=== デュアルディスプレイ === |
=== デュアルディスプレイ === |
||
− | + | [[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}}) などグラフィカルツールを使ってモニタの設定をすることも可能です。 |
||
+ | {{ic|1=video=}} カーネルラインオプションを使うことで nouveau に解像度を渡すことができます([[カーネルモード設定]] を参照してください)。 |
||
− | {{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 |
||
+ | nouveau ドライバーには正しい電源管理機能が実装されていないため、グラフィックカードの周波数は低い状態でロックされてパフォーマンスが思うほど出ない場合があります。カードによっては GPU のオーバークロックが実験的にサポートされています ([https://nouveau.freedesktop.org/wiki/PowerManagement Nouveau の電源管理についてのページ] を見てください)。カーネル 4.5 から {{ic|/sys/kernel/debug/dri/*/pstate}} の debugfs インターフェイスを使って制御できるようになっています。 |
||
− | Section "Device" |
||
− | Identifier "nvidia card" |
||
− | Driver "nouveau" |
||
− | Option "Monitor-DVI-I-1" "NEC" |
||
− | Option "Monitor-DVI-I-2" "FUS" |
||
− | EndSection |
||
+ | 例えば、システム上の1番目のカードで利用可能な電源状態と現在の設定を確認するには、以下を実行してください: |
||
− | Section "Screen" |
||
− | Identifier "screen1" |
||
− | Monitor "NEC" |
||
− | DefaultDepth 24 |
||
− | SubSection "Display" |
||
− | Depth 24 |
||
− | Virtual 2560 2048 |
||
− | EndSubSection |
||
− | Device "nvidia card" |
||
− | EndSection |
||
+ | # cat /sys/kernel/debug/dri/0/pstate |
||
− | Section "ServerLayout" |
||
− | Identifier "layout1" |
||
− | Screen "screen1" |
||
− | EndSection}} |
||
+ | インターフェイスに書き込むことで特定の電源状態を手動で設定/強制することもできます: |
||
− | === コンソールの解像度を設定する === |
||
+ | # echo ''pstate'' > /sys/kernel/debug/dri/0/pstate |
||
− | {{Pkg|fbset}} ツールを使ってコンソールの解像度を調整してください。 |
||
+ | {{Warning|再クロッキングのサポートは実験的です。システムがフリーズしたり、カードがオーバーヒットして破壊される可能性があります。}} |
||
− | また、{{ic|1=video=}} カーネルラインオプションを使うことで nouveau に解像度を渡すことができます ([[Kernel Mode Setting|KMS]] を参照してください)。 |
||
− | === |
+ | ==== ファンの制御 ==== |
+ | カードで実装されていれば、{{ic|/sys}} を使ってファンの制御を設定できます: |
||
− | GPU スケーリングが使えるかどうかは GPU によって異なります。 |
||
+ | $ find /sys -name pwm1_enable |
||
− | カーネル 3.18 から電源管理機能はカーネルに含まれるようになりました。ゲームを遊ぶ場合はモジュール設定に {{ic|1=nouveau.pstate=1}} を追加して、モジュール設定の電源状態を有効化する必要があります。設定することで必要に応じてクロックが上昇します。 |
||
+ | /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% になります。 |
||
− | 詳細は [http://nouveau.freedesktop.org/wiki/PowerManagement Nouveau PowerManagement のページ] を見て下さい。 |
||
+ | {{Warning|設定は自己責任です。カードを過熱しすぎないように注意してください。}} |
||
− | === MSI (Message Signaled Interrupts) を有効にする === |
||
+ | udev ルールを使って設定することもできます: |
||
− | これによってパフォーマンスがわずかに向上するかもしれません。サポートされているボードではデフォルトで有効になります。 |
||
+ | $ cat /etc/udev/rules.d/50-nouveau-hwmon.rules |
||
+ | ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="2" |
||
+ | ソース: |
||
− | {{Warning|この設定はマザーボードと GPU の組み合わせによっては不安定になる可能性があります。}} |
||
+ | * 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 === |
||
− | 次の行を {{ic|/etc/modprobe.d/nouveau.conf}} に書いて下さい: |
||
+ | ラップトップで [[NVIDIA Optimus|Optimus]] (ラップトップに2つの GPU を載せている場合はハイブリッドグラフィック) を使う方法は2つあります: [[bumblebee]] と [[PRIME]] |
||
− | options nouveau config="NvMSI=1" |
||
+ | === 垂直同期 === |
||
− | [[#Early_start|early start]] を使っている場合、{{ic|1= FILES="/etc/modprobe.d/nouveau.conf"}} を {{ic|/etc/mkinitcpio.conf}} に加え、カーネルイメージを再生成してください: |
||
+ | Xorg コンポジタは Nouveau で問題が起きやすくなっています。他のコンポジタと異なり、[[Picom]] はちらつきを起こさないようにするためのオプションが多数存在します。上手く動作する設定例: |
||
− | # mkinitcpio -p <kernel preset; e.g. ''linux''> |
||
+ | $ picom -b --unredir-if-possible --backend xr_glx_hybrid --vsync --use-damage --glx-no-stencil |
||
− | システムを再起動することで変更が適用されます。 |
||
+ | {{Tip|コンポジタを使う場合、デスクトップ環境のウィンドウマネージャ (KWin など) のコンポジット機能をオフにしてください。}} |
||
− | === 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}} |
||
− | 特定の 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] を参照。 |
2024年9月3日 (火) 22:44時点における最新版
この記事では NVIDIA カードのオープンソースドライバー Nouveau のインストールと設定を説明しています。プロプライエタリドライバーの情報は NVIDIA を見てください。
使用中のカードのコードネームを見つけてください(より詳細なリストは Wikipedia にあります)。サポートされている機能の機能表と比較してください。
インストール
mesa パッケージをインストールしてください。これは 3D アクセラレーションのための DRI ドライバを提供します。
- 32ビットアクセラレーションサポートが必要な場合は、multilib リポジトリから lib32-mesa パッケージもインストールしてください。
- (Xorg で 2D アクセラレーションを提供する) DDX ドライバが必要な場合、xf86-video-nouveau パッケージをインストールしてください。
ハードウェアビデオアクセラレーション も参照してください。
Mesa NVK Vulkan Driver を使う
NVK を使用するには、カーネルのバージョンが 6.7 以上であり、バージョン 24.1 以上の mesa をインストールしておく必要があります。
NVK を有効化する前に、以下のパッケージ (及びこれらの lib32
版と DKMS 版) を全てアンインストールする必要があります:
ハイブリッドグラフィックのノート PC やデュアル GPU のシステムでは、/etc/modprobe.d
の設定で Nouveau が GPU マネージャによってブラックリスト化されていないことを確認してください。
次に、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 のカーネルモジュールは自動的にロードされるはずです。ロードされない場合は:
- カーネルパラメータに
nomodeset
やvga=
を設定していないことを確認してください。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 の早期開始 を参照してください。
ヒントとテクニック
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 の改善を得るには:
- linux-gitAUR
- libdrm-gitAUR
- lib32-libdrm-gitAUR
- lib32-mesa-gitAUR
- mesa-gitAUR
- xf86-video-nouveau-gitAUR
デュアルディスプレイ
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"
ソース:
- 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
ラップトップで Optimus (ラップトップに2つの GPU を載せている場合はハイブリッドグラフィック) を使う方法は2つあります: bumblebee と PRIME
垂直同期
Xorg コンポジタは Nouveau で問題が起きやすくなっています。他のコンポジタと異なり、Picom はちらつきを起こさないようにするためのオプションが多数存在します。上手く動作する設定例:
$ picom -b --unredir-if-possible --backend xr_glx_hybrid --vsync --use-damage --glx-no-stencil
トラブルシューティング
drm.debug=14
や log_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
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