「Nouveau」の版間の差分
(同期) |
細 (typo修正 (オーバーヒット -> オーバーヒート)) |
||
| (5人の利用者による、間の20版が非表示) | |||
| 1行目: | 1行目: | ||
| − | [[Category:グラフィック]] |
+ | [[Category:グラフィックス]] |
[[Category:X サーバー]] |
[[Category:X サーバー]] |
||
[[en:Nouveau]] |
[[en:Nouveau]] |
||
| + | [[de:Nouveau]] |
||
[[es:Nouveau]] |
[[es:Nouveau]] |
||
| − | [[ |
+ | [[fr:Nouveau]] |
[[ru:Nouveau]] |
[[ru:Nouveau]] |
||
| + | [[uk:Nouveau]] |
||
[[zh-hans:Nouveau]] |
[[zh-hans:Nouveau]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
| 12行目: | 14行目: | ||
{{Related articles end}} |
{{Related articles end}} |
||
| − | この記事は |
+ | この記事では、NVIDIA カード向けのリバースエンジニアリングされたオープンソースドライバー [https://nouveau.freedesktop.org/ Nouveau] のインストールと設定を説明しています。上流のプロプライエタリな {{Pkg|nvidia}} ドライバ及びオープンソースな {{Pkg|nvidia-open}} ドライバについては、[[NVIDIA]] を参照してください。 |
| + | |||
| + | 使用中のカードの[https://nouveau.freedesktop.org/wiki/CodeNames コードネーム]を見つけてください(より詳細なリストは [[Wikipedia:Comparison of Nvidia Graphics Processing Units|Wikipedia]] にあります)。サポートされている機能の[https://nouveau.freedesktop.org/wiki/FeatureMatrix/ 機能表]と比較してください。 |
||
== インストール == |
== インストール == |
||
| + | {{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]] が正しくインストールされているか確認してください。 |
||
| + | * 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 ユーザレポート]を参照してください。}} |
||
| − | x86_64 環境で32ビットのアプリケーションのサポートが必要な場合、[[multilib]] から {{Pkg|lib32-mesa}} もインストールしてください。 |
||
| + | [[ハードウェアビデオアクセラレーション]] も参照してください。 |
||
| − | {{Note|3D ドライバーのバグを報告する前に [http://nouveau.freedesktop.org/wiki/MesaDrivers Nouveau MesaDrivers page] を見て下さい。}} |
||
| + | === Mesa NVK Vulkan Driver を使う === |
||
| − | == ロード == |
||
| + | {{Warning|このドライバはまだ作業中であり、リグレッションが発生することが予測されます。オープンソースドライバとプロプライエタリドライバで動作していた一部のソフトウェア (ほとんどはゲーム) は、おそらく NVK ではあまり (あるいは全く) 動作しないでしょう。ゲームをよくプレイする場合は、NVK がもう少し成熟するまで、NVK の使用を避けたほうが良いでしょう。}} |
||
| − | システムの起動時に Nouveau のカーネルモジュールは自動的にロードされます。 |
||
| + | [https://docs.mesa3d.org/drivers/nvk.html NVK] は、[https://nouveau.freedesktop.org/CodeNames.html#NV110 Maxwell] 及びそれより新しい NVIDIA カード向けの、Nouveau をベースとしたオープンソースの Vulkan ドライバです。 |
||
| − | ロードされない場合: |
||
| + | NVK を使用するには、[[カーネル]]のバージョンが 6.7 以上であり、バージョン 24.1 以上の {{Pkg|mesa}} をインストールしておく必要があります。 |
||
| − | * [[カーネルパラメータ]]に {{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]。 |
||
| + | NVK を有効化する前に、以下のパッケージ (及びこれらの {{ic|lib32}} 版と [[DKMS]] 版) を全て[[アンインストール]]する必要があります: |
||
| − | === KMS === |
||
| + | * {{Pkg|nvidia}}、{{Pkg|nvidia-open}}、{{Pkg|nvidia-lts}}、{{AUR|nvidia-beta}} |
||
| − | {{Tip|解像度に問題がある場合、[[Kernel Mode Setting#モードの強制と EDID]] をチェックしてください。}} |
||
| + | * {{Pkg|nvidia-settings}}、{{Pkg|nvidia-utils}} |
||
| + | * {{Pkg|egl-wayland}} |
||
| + | ハイブリッドグラフィックのノート PC やデュアル GPU のシステムでは、{{ic|/etc/modprobe.d}} の設定で Nouveau が GPU マネージャによってブラックリスト化されていないことを確認してください。 |
||
| − | Nouveau ドライバーを使うには [[Kernel Mode Setting]] (KMS) が必要です。システムが起動すると、KMS がディスプレイドライバーを初期化するときに解像度が変わります。"Late start" モードで KMS を初期化するのに必要なのは Nouveau ドライバーのインストールだけです (下を参照)。詳しくは [https://nouveau.freedesktop.org/wiki/KernelModeSetting Nouveau KernelModeSetting のページ] を見て下さい。 |
||
| + | {{Note|おそらく、上記以外の全ての GPU マネージャも[[アンインストール]]したほうが良いでしょう。なぜなら、これらのパッケージの殆どはモジュールをブラックリスト化することで動作し、それによって NVK と干渉してしまうかもしれないからです。}} |
||
| − | {{Note|ブートプロセスの間に見苦しい解像度変更がないため early start の方が好ましいかもしれません。}} |
||
| + | 次に、{{Pkg|vulkan-nouveau}} (必要であれば {{Pkg|lib32-vulkan-nouveau}} も) を[[インストール]]してください。 |
||
| − | ==== Late start ==== |
||
| + | 必要であれば[[カーネルパラメータ]]に {{ic|1=nouveau.config=NvGspRm=1}} を追加してください。Ada Lovelace 及びそれより新しいカードにおいてはデフォルトでこのオプションが有効化されています。[https://nouveau.freedesktop.org/PowerManagement.html ドキュメント]のノートを参照してください。 |
||
| − | この方法では他のカーネルモジュールがロードされた後に KMS を起動します。"Loading modules" の文字が表示されてテキストのサイズが変わります。ちらつきが発生するかもしれません。 |
||
| + | 最後に、システムを再起動してください。 |
||
| − | ==== Early start ==== |
||
| + | 正しく動作していることを確認するには、{{Pkg|vulkan-tools}} パッケージの {{ic|vulkaninfo}} を使うことができます。システムの NVIDIA GPU が NVK ドライバを使用していると報告するはずです。 |
||
| − | この方法では [[mkinitcpio|initramfs]] がロードされた時に、ブートプロセスで出来るだけ早く KMS を起動します。 |
||
| + | {{hc|$ vulkaninfo|2= |
||
| − | {{ic|nouveau}} を {{ic|/etc/mkinitcpio.conf}} の {{ic|MODULES}} 行に追加して下さい: |
||
| + | ... |
||
| + | GPU id : 0 (NVIDIA GeForce RTX 3050 Ti Laptop GPU ('''NVK GA107''')): |
||
| + | Surface type = VK_KHR_wayland_surface |
||
| + | Formats: count = 8 |
||
| + | ... |
||
| + | }} |
||
| + | == ロード == |
||
| − | MODULES="... nouveau ..." |
||
| + | システムの起動時に Nouveau のカーネルモジュールは自動的にロードされるはずです。ロードされない場合は: |
||
| − | カスタム EDID ファイルを使っている場合、同じように initramfs に埋め込む必要があります: |
||
| + | * [[カーネルパラメータ]]に {{ic|nomodeset}} や {{ic|1=vga=}} を設定して'''いない'''ことを確認してください。Nouveau はカーネルモードセッティングを要求します。 |
||
| − | {{hc|/etc/mkinitcpio.conf| |
||
| + | * また、{{ic|/etc/modprobe.d/}} や {{ic|/usr/lib/modprobe.d/}} の中で modprobe のブラックリストによって Nouveau が無効になっていないことを確認してください。 |
||
| − | 2=FILES="/lib/firmware/edid/your_edid.bin"}} |
||
| + | * 上記全てを確認しても 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 === |
||
| − | initial ramdisk イメージを再生成してください: |
||
| + | [[カーネルモード設定]] (KMS; Kernel Mode Setting) は、{{ic|nouveau}} ドライバによってサポートされており、[[mkinitcpio]] v32 からブートの早期段階で有効化されるようになっています (このバージョンからデフォルトで {{ic|kms}} フックが含まれています)。他の環境で KMS をブートプロセスの可能な限り早い段階で有効化する方法については、[[カーネルモード設定#KMS の早期開始]] を参照してください。 |
||
| − | # mkinitcpio -p <kernel preset; e.g. ''linux''> |
||
| + | {{Tip|解像度に問題がある場合、[[カーネルモード設定#モードと EDID を強制する]] をチェックしてください。}} |
||
| − | Nouveau に問題が発生してテスト目的に nouveau-drm を複数回リビルドする場合、initramfs に {{ic|nouveau}} は追加しないでください。initramfs を再生成するのは忘れやすいためテストするのが面倒くさくなります。システムが安定したと確証を得るまでは "Late start" を使いましょう。(通常は推奨されない) カスタムファームウェアが必要な場合、initramfs で問題が別に発生することもあります。 |
||
| + | == ヒントとテクニック == |
||
| − | == Tips and tricks == |
||
=== NVIDIA ドライバーをインストールしたままにしておく === |
=== NVIDIA ドライバーをインストールしたままにしておく === |
||
| + | {{Accuracy|{{ic|/usr/lib/}} 内のファイルを編集しても、パッケージのアップグレード時に上書きされてしまいます。}} |
||
| − | プロプライエタリの 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-utils.conf}} 内の nouveau のブラックリストを以下のようにコメントアウトしてください: |
||
#blacklist nouveau |
#blacklist nouveau |
||
| + | 他の設定ファイルにおいても、プロプライエタリなドライバを優先させるような行をコメントアウトしておく必要がある場合があります。例としては、[https://man.archlinux.org/man/systemd-modules-load.service.8.en systemd-modules-load] の {{ic|/usr/lib/modules-load.d/nvidia-utils.conf}} と [[udev]] の {{ic|/usr/lib/udev/rules.d/60-nvidia.rules}} です。以下のコマンドで、ドライバのどのファイルがインストールされているかを確認してください: |
||
| − | そして以下の内容で {{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} ファイルを作成して Xorg に nvidia の代わりに nouveau をロードするよう指定してください: |
||
| + | $ pacman -Ql nvidia-utils | grep conf |
||
| − | Section "Device" |
||
| − | Identifier "Nvidia card" |
||
| − | Driver "nouveau" |
||
| − | EndSection |
||
| + | そして、{{ic|nvidia-}} という接頭辞が付くサービスを無効化していることを確認してください。そのようなサービスはブート時に {{ic|nvidia-modprobe}} を呼び出して NVIDIA のカーネルモジュールをロードするかもしれません。例えば: |
||
| − | 既に NVIDIA ドライバーを使用していて、再起動せずに Nouveau をテストしたい場合、'nvidia' モジュールをアンロードしてください: |
||
| + | $ systemctl status nvidia-persistenced.service |
||
| − | # rmmod nvidia |
||
| − | + | [[Xorg]] を使用する場合は、NVIDIA の代わりに nouveau をロードするよう指定してください: |
|
| + | {{hc|/etc/X11/xorg.conf.d/20-nouveau.conf| |
||
| − | # modprobe nouveau |
||
| + | Section "Device" |
||
| + | Identifier "Nvidia card" |
||
| + | Driver "nouveau" |
||
| + | EndSection |
||
| + | }} |
||
| − | そしてカーネルメッセージを見て正しくロードされていることを確認してください: |
+ | 再起動して変更を反映させてください。そしてカーネルメッセージを見て正しくロードされていることを確認してください: |
| − | + | # dmesg |
|
=== 最新の開発パッケージをインストールする === |
=== 最新の開発パッケージをインストールする === |
||
| + | 最新の Nouveau の改善を得るには: |
||
| − | AUR を通して、最新の -git パッケージをインストールすることができます: |
||
| − | |||
| − | * {{AUR|mesa-git}} を使うことで (最新の DRI ドライバーを含む) 最新の Mesa をインストールすることができます。 |
||
| − | * {{AUR|linux-mainline}} などのパッケージを使って新しいカーネルバージョンをインストールすることで、Nouveau DRM コードのパフォーマンスが向上するかもしれません。 |
||
| − | * 最新の Nouveau を使うには、AUR の {{AUR|linux-git}} パッケージを使用して、PKGBUILD を編集し Nouveau のカーネルリポジトリ (現在は git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau にあります) を使う必要があります。 |
||
| + | * {{AUR|linux-git}} |
||
| − | 上流のドライバーソースは [https://nouveau.freedesktop.org/wiki/Source Nouveau Source のページ] にあります。 |
||
| + | * {{AUR|libdrm-git}} |
||
| + | * {{AUR|lib32-libdrm-git}} |
||
| + | * {{AUR|lib32-mesa-git}} |
||
| + | * {{AUR|mesa-git}} |
||
| + | * {{AUR|xf86-video-nouveau-git}} |
||
| + | {{Note|[[#インストール]] で説明したように、ほとんどのケースで xf86-video-nouveau をインストールする必要はなく、推奨もされていません。このパッケージをインストールしないほうが、GPU はより良く機能します。}} |
||
| − | === ティアリングフリーのコンポジット === |
||
| − | |||
| − | {{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}}) などグラフィカルツールを使ってモニタの設定をすることも可能です。 |
||
| − | |||
| − | {{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}} |
||
=== コンソールの解像度を設定する === |
=== コンソールの解像度を設定する === |
||
| − | {{ |
+ | {{ic|1=video=}} カーネルラインオプションを使うことで nouveau に解像度を渡すことができます([[カーネルモード設定]] を参照してください)。 |
| − | |||
| − | また、{{ic|1=video=}} カーネルラインオプションを使うことで nouveau に解像度を渡すことができます ([[Kernel Mode Setting|KMS]] を参照してください)。 |
||
=== 電源管理 === |
=== 電源管理 === |
||
| 165行目: | 136行目: | ||
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 インターフェイスを使って制御できるようになっています。 |
||
| + | {{Note|[https://gitlab.freedesktop.org/mesa/mesa/-/issues/10933#note_2357592 上流で説明されている]ように、この debugfs インターフェイスを利用できるのは Kepler やそれ以前のカードのみであり、Turing 及びそれ以降のカードでは利用できません。}} |
||
| − | 例えば、使用しているカードの現在の設定と電源状態を確認するには: |
||
| + | |||
| + | 例えば、システム上の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 |
||
| 188行目: | 159行目: | ||
{{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 ルールを使って設定することもできます: |
||
| + | |||
| − | $ cat /etc/udev/rules.d/50-nouveau-hwmon.rules |
||
| + | [[udev]] ルールを使って設定することもできます: |
||
| − | ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="2" |
||
| + | |||
| + | {{hc|/etc/udev/rules.d/50-nouveau-hwmon.rules|2= |
||
| + | ACTION=="add", SUBSYSTEM=="hwmon", DRIVERS=="nouveau", ATTR{pwm1_enable}="2" |
||
| + | }} |
||
ソース: |
ソース: |
||
| + | |||
| − | * 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]] |
| + | |||
| + | === 垂直同期 === |
||
| + | |||
| + | {{Out of date|{{ic|xr_glx_hybrid}} はレガシーなバックエンドです (さらに、今は動かないようです)。}} |
||
| + | |||
| + | Xorg コンポジタは Nouveau で問題が起きやすくなっています。他のコンポジタと異なり、[[Picom]] はちらつきを起こさないようにするためのオプションが多数存在します。上手く動作する設定例: |
||
| + | |||
| + | $ picom -b --unredir-if-possible --backend xr_glx_hybrid --vsync --use-damage --glx-no-stencil |
||
| + | |||
| + | {{Tip|コンポジタを使う場合、デスクトップ環境のウィンドウマネージャ (KWin など) のコンポジット機能をオフにしてください。}} |
||
== トラブルシューティング == |
== トラブルシューティング == |
||
| + | |||
{{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 の無効化=== |
+ | === 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 が接続されていると表示されることがあります。 |
||
| − | + | ディスプレイに影響して画面が崩れたり、ノートパソコンで蓋を閉じた時にスリープされない問題が生じます。 |
|
| + | ==== カーネルパラメータ ==== |
||
| − | ブートローダーのカーネルコマンドラインで問題の出力端子 (以下の例では VGA-1) を無効化することで解決できます。以下のように追加してください: |
||
| + | |||
| + | ブートローダーの[[カーネルパラメータ]]で問題の出力端子 (以下の例では VGA-1) を無効化することで解決できます。以下のように追加してください: |
||
video=VGA-1:d |
video=VGA-1:d |
||
| − | + | {{ic|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" |
||
| 233行目: | 231行目: | ||
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 アクセラレーションを無効化するという方法もあります。 |
||
| + | |||
| + | === Pointer to 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 の[[journal|ジャーナル]]をチェックすることで確認できます: |
||
| + | |||
| + | 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|2025-06-11|834385}} |
||
| − | 特定の 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] を参照。 |
||
2025年6月27日 (金) 13:50時点における最新版
この記事では、NVIDIA カード向けのリバースエンジニアリングされたオープンソースドライバー Nouveau のインストールと設定を説明しています。上流のプロプライエタリな nvidia ドライバ及びオープンソースな nvidia-open ドライバについては、NVIDIA を参照してください。
使用中のカードのコードネームを見つけてください(より詳細なリストは Wikipedia にあります)。サポートされている機能の機能表と比較してください。
インストール
mesa パッケージをインストールしてください。これは 3D アクセラレーションのための DRI ドライバを提供します。
- 32ビットアクセラレーションサポートが必要な場合は、multilib リポジトリから lib32-mesa パッケージもインストールしてください。
- (Xorg で 2D アクセラレーションを提供する) DDX ドライバが必要な場合、xf86-video-nouveau パッケージをインストールしてください。
ハードウェアビデオアクセラレーション も参照してください。
Mesa NVK Vulkan Driver を使う
NVK は、Maxwell 及びそれより新しい NVIDIA カード向けの、Nouveau をベースとしたオープンソースの Vulkan ドライバです。
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 を追加してください。Ada Lovelace 及びそれより新しいカードにおいてはデフォルトでこのオプションが有効化されています。ドキュメントのノートを参照してください。
最後に、システムを再起動してください。
正しく動作していることを確認するには、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
他の設定ファイルにおいても、プロプライエタリなドライバを優先させるような行をコメントアウトしておく必要がある場合があります。例としては、systemd-modules-load の /usr/lib/modules-load.d/nvidia-utils.conf と udev の /usr/lib/udev/rules.d/60-nvidia.rules です。以下のコマンドで、ドライバのどのファイルがインストールされているかを確認してください:
$ pacman -Ql nvidia-utils | grep conf
そして、nvidia- という接頭辞が付くサービスを無効化していることを確認してください。そのようなサービスはブート時に nvidia-modprobe を呼び出して NVIDIA のカーネルモジュールをロードするかもしれません。例えば:
$ systemctl status nvidia-persistenced.service
Xorg を使用する場合は、NVIDIA の代わりに nouveau をロードするよう指定してください:
/etc/X11/xorg.conf.d/20-nouveau.conf
Section "Device"
Identifier "Nvidia card"
Driver "nouveau"
EndSection
再起動して変更を反映させてください。そしてカーネルメッセージを見て正しくロードされていることを確認してください:
# 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 ルールを使って設定することもできます:
/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 アクセラレーションを無効化するという方法もあります。
Pointer to 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