「Ryzen」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(古い記事を削除)
 
(同じ利用者による、間の11版が非表示)
9行目: 9行目:
 
== マイクロコードのサポートの有効化 ==
 
== マイクロコードのサポートの有効化 ==
   
{{Pkg|amd-ucode}} パッケージをインストールしてマイクロコードのアップデートを有効にしてください。詳しくは[[マイクロコード]]のページを見てください。アップデートによってシステムの安定性に問題をきたす問題が解決されます。マイクロコードはプロプライエタリですが、アップデートすることが強く推奨されます。
+
{{Pkg|amd-ucode}} パッケージをインストールしてマイクロコードのアップデートを有効にしてください。詳しくは[[マイクロコード]]のページを見てください。アップデートによってシステムの安定性に問題をきたす問題が解決されます。マイクロコードはプロプライエタリですが、アップデートすることが'''強く推奨されます'''
   
== Ryzen 設定 ==
+
== Ryzenの微調整 ==
   
=== 電源管理 ===
+
=== 電圧、消費電力、温度の監視 ===
   
  +
{{Pkg|lm_sensors}} はデフォルトで温度を監視できるはずです。しかし、消費電力や電圧などの詳しい情報については、{{AUR|zenpower3-dkms}} が必要です。GUI ベースの監視ツールとしては、Zen 3 CPUs には {{AUR|zenmonitor}} または {{AUR|zenmonitor3-git}} を使用してください。
[https://github.com/FlyGoat/RyzenAdj RyzenAdj] (CLI) は [https://github.com/FlyGoat FlyGoat] によって作成された、ターミナルエミュレータから Ryzen プロセッサの電源管理を設定するツールです。
 
   
  +
=== 電力管理、電力不足、オーバークロック ===
{{Tip|{{Pkg|lm_sensors}} を使うことでプロセッサの温度を確認できます。}}
 
   
  +
* {{App|RyzenAdj|RyzenAdj は、Ryzen モバイルプロセッサの電力管理設定を調整できるコマンドラインツールです。|https://github.com/FlyGoat/RyzenAdj|{{AUR|ryzenadj-git}}}}
=== オーバークロック ===
 
  +
* {{App|Ryzen Controller|Ryzen Controller は RyzenAdj の GUI です。|https://gitlab.com/ryzen-controller-team/ryzen-controller|{{AUR|ryzen-controller-bin}}}}
  +
* {{App|amdctl|amdctl は AMD CPUs のアンダー/オーバークロック/電圧調整を行うコマンドラインツールで、現在、AMD CPU ファミリ 10h、11h、12h、15h、16h、17h、19h をサポートしています。|https://github.com/kevinlekiller/amdctl/|{{AUR|amdctl}}}}
  +
* {{App|ZenStates-Linux|ZenStates はクロック速度と電圧を調整するコマンドラインツールです。詳しいセットアップの例は [https://forum.level1techs.com/t/overclock-your-ryzen-cpu-from-linux/126025 Level1Techs] フォーラムにあります。|https://github.com/r4m0n/ZenStates-Linux|{{AUR|zenstates-git}}}}
  +
* {{App|ryzen_smu|Ryzen SMU は、特定の AMD Ryzen プロセッサの SMU (System Management Unit) へのアクセスを公開する Linux カーネルドライバーです。例として、5800x3D のアンダーボルテージに使用できます([https://github.com/svenlange2/Ryzen-5800x3d-linux-undervolting/ このスクリプト] を参考にしてください)。|https://gitlab.com/leogx9r/ryzen_smu|{{AUR|ryzen_smu-dkms-git}}}}
   
  +
== カーネルのコンパイル ==
[https://github.com/r4m0n/ZenStates-Linux/ ZenStates-Linux] (CLI) は [https://github.com/r4m0n r4m0n] によって作成された、クロック速度と電圧を設定するツールです。詳しい例が [https://forum.level1techs.com/t/overclock-your-ryzen-cpu-from-linux/126025 Level1Techs] のフォーラムに載っています。
 
   
  +
Ryzen サポートの有効化については [[Gentoo:Ryzen#Kernel]] を参照してください。[[カーネル#公式サポートカーネル|公式にサポートされているカーネル]]はデフォルトで必要な設定を持っています。
== Ryzen の改善 ==
 
   
=== Ananicy デの有効化 ===
+
== トラブルシュティ ==
   
  +
=== ランダムリブート ===
[[パフォーマンスの最大化#Ananicy]] を見てください。
 
   
  +
ランダムな再起動が発生している場合は、[[Gentoo:Ryzen#Random_reboots_with_mce_events]] を参照してください。
=== Irqbalance ===
 
   
  +
Ryzen 5000 シリーズ、特に 5950X と 5900X の高エンドモデルでは、[https://bugzilla.kernel.org/show_bug.cgi?id=212087 このカーネルバグ] に示されているように、おそらく 5.11+ カーネルに関連して、Linux でのわずかな不安定さが存在しているようです。インターネット上の報告を調査して読んでみると、デフォルトの状態では、Windows は Linux カーネルと比較して、CPU をより高い電圧で、より低いピーク周波数で動作させるようです。これは、シリコンロッタリーのドローに応じて、ランダムなアプリケーションのクラッシュや、再起動につながるハードウェアエラーの原因となる可能性があります。次のような dmesg ログでこれらを認識することができます:
[[パフォーマンスの最大化#irqbalance]] を見てください。
 
   
  +
kernel: mce: [Hardware Error]: Machine check events logged
=== CPU 緩和 ===
 
  +
kernel: mce: [Hardware Error]: CPU 22: Machine Check: 0 Bank 1: bc800800060c0859
  +
kernel: mce: [Hardware Error]: TSC 0 ADDR 7ea8f5b00 MISC d012000000000000 IPID 100b000000000
  +
kernel: mce: [Hardware Error]: PROCESSOR 2:a20f10 TIME 1636645367 SOCKET 0 APIC d microcode a201016
   
  +
CPU の ID とプロセッサ番号は異なる場合があります。この問題を解決するためには、CPU がピーク周波数で動作するときに安定するように、CPU により高い電圧を供給する必要があります。これを実現する最も簡単な方法は、マザーボードの BIOS 経由でアクセス可能な AMD カーブオプティマイザを使用することです。これにアクセスし、4ポイントの正のオフセットを設定すると、CPU が高負荷で受け取る電圧が増加します。これにより、高い熱放散要件のためにオーバークロックの可能性が制限されるかもしれませんが、安定して動作します。詳細については、[https://community.amd.com/t5/processors/ryzen-5900x-system-constantly-crashing-restarting-whea-logger-id/td-p/423321/page/84 このフォーラムの投稿] を確認してください。私が 5950X にこれを行ったとき、私のプロセッサは安定し、周波数と電圧の範囲は Windows で観察されるものにより近くなりました。
[[パフォーマンスの最大化#CPU の脆弱性の緩和をオフにする]]を見てください。
 
   
  +
=== スクリーンティアリング(APU) ===
=== ゲームのパフォーマンス ===
 
   
  +
[[Xorg]] を使用しており、スクリーンティアリングが発生している場合は、[[AMDGPU#Tear free rendering]] を参照してください。
[[ゲーム]]を見てください。
 
  +
=== ソフトロックフリーズ ===
   
  +
このバグはよく知られており、[https://bugzilla.kernel.org/show_bug.cgi?id=196683 bugzilla] と [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1690085 launchpad] で議論されています。すべてのケースでの解決策は同じではありませんが、[https://bugs.launchpad.net/linux/+bug/1690085/comments/69 こちら]は一部のユーザーにとって有効でした。このコマンド{{ic|1=echo rcu_nocbs=0-$(($(nproc)-1))}}の出力をカーネルパラメータとして追加します。このコマンド{{ic|nproc}}はCPUのスレッドを表示するだけです。このオプションを適用するには、{{ic|CONFIG_RCU_NOCB_CPU}} オプションを持つコンパイル済みのカーネル(例:{{Pkg|linux}})が必要です。
== カーネルのコンパイル ==
 
   
  +
フリーズの別の原因は、c-statesによって示される省電力管理です。最大の省電力状態であるc6が問題を引き起こすことがあります。カーネルパラメータ{{ic|1=processor.max_cstate=5}}の追加はいくつかのケースで役立ちましたが、他のユーザーはこのオプションが適用されないと報告しています。それに対する解決策として、{{AUR|disable-c6-systemd}}パッケージが役立ちました。使用する前に、{{ic|modprobe msr}}を実行してカーネルモジュールを有効にする必要があります。
Ryzen のサポートの有効化方法については [https://wiki.gentoo.org/wiki/Ryzen#Kernel] を見てください。
 
   
  +
HP Envy x360 15-bq100naのようなRyzen CPUを搭載したラップトップは、システムがフリーズするCPUソフトロックを経験することがあります。これはカーネルパラメータ{{ic|1=idle=nomwait}}を追加することで回避できます。
== トラブルシューティング ==
 
  +
  +
一部のケースでは、カーネルパラメータ{{ic|1=pci=nomsi}}が問題を修正します。
  +
  +
他の場合、問題は単に不良なハードウェアであり、新しいものとしてCPUを保証することで問題が解決するかもしれません。
  +
  +
=== シャットダウン、再起動、サスペンド時のフリーズ ===
   
  +
{{Note|この問題は UEFI を更新することで新しい AGESA ファームウェアで修正されるかもしれません。}}
=== 画面のちらつき (APU) ===
 
   
  +
これは Linux でよくサポートされていない(または全くサポートされていない)C6 c-stateに関連しているようです。
[[Xorg]] を使用していてティアリングが発生する場合、{{ic|"TearFree"}} オプションを有効にすることで問題が解決します:
 
   
  +
この問題を修正するには、UEFI セットアップに移動し、「Power idle control」のようなオプションを探します。その値を「Typical current idle」に変更します。これらの名称はマザーボードの製造元によって異なる場合がありますので、あなたの場合には少し異なるかもしれません。
{{hc|/etc/X11/xorg.conf.d/20-amdgpu.conf|
 
Section "Device"
 
Identifier "AMD"
 
Driver "amdgpu"
 
Option "TearFree" "true"
 
EndSection
 
}}
 
   
  +
他の解決策としては、UEFI セットアップで c-states を無効にするか、{{ic|1=processor.max_cstate=1}}をカーネルコマンドライン引数に追加することが考えられます。
{{Note| {{ic|"TearFree"}} は垂直同期とは違います。}}
 
   
 
== 参照 ==
 
== 参照 ==

2023年8月19日 (土) 21:04時点における最新版

関連記事

マイクロコードのサポートの有効化

amd-ucode パッケージをインストールしてマイクロコードのアップデートを有効にしてください。詳しくはマイクロコードのページを見てください。アップデートによってシステムの安定性に問題をきたす問題が解決されます。マイクロコードはプロプライエタリですが、アップデートすることが強く推奨されます

Ryzenの微調整

電圧、消費電力、温度の監視

lm_sensors はデフォルトで温度を監視できるはずです。しかし、消費電力や電圧などの詳しい情報については、zenpower3-dkmsAUR が必要です。GUI ベースの監視ツールとしては、Zen 3 CPUs には zenmonitorAUR または zenmonitor3-gitAUR を使用してください。

電力管理、電力不足、オーバークロック

  • RyzenAdj — RyzenAdj は、Ryzen モバイルプロセッサの電力管理設定を調整できるコマンドラインツールです。
https://github.com/FlyGoat/RyzenAdj || ryzenadj-gitAUR
  • Ryzen Controller — Ryzen Controller は RyzenAdj の GUI です。
https://gitlab.com/ryzen-controller-team/ryzen-controller || ryzen-controller-binAUR
  • amdctl — amdctl は AMD CPUs のアンダー/オーバークロック/電圧調整を行うコマンドラインツールで、現在、AMD CPU ファミリ 10h、11h、12h、15h、16h、17h、19h をサポートしています。
https://github.com/kevinlekiller/amdctl/ || amdctlAUR
  • ZenStates-Linux — ZenStates はクロック速度と電圧を調整するコマンドラインツールです。詳しいセットアップの例は Level1Techs フォーラムにあります。
https://github.com/r4m0n/ZenStates-Linux || zenstates-gitAUR
  • ryzen_smu — Ryzen SMU は、特定の AMD Ryzen プロセッサの SMU (System Management Unit) へのアクセスを公開する Linux カーネルドライバーです。例として、5800x3D のアンダーボルテージに使用できます(このスクリプト を参考にしてください)。
https://gitlab.com/leogx9r/ryzen_smu || ryzen_smu-dkms-gitAUR

カーネルのコンパイル

Ryzen サポートの有効化については Gentoo:Ryzen#Kernel を参照してください。公式にサポートされているカーネルはデフォルトで必要な設定を持っています。

トラブルシューティング

ランダムリブート

ランダムな再起動が発生している場合は、Gentoo:Ryzen#Random_reboots_with_mce_events を参照してください。

Ryzen 5000 シリーズ、特に 5950X と 5900X の高エンドモデルでは、このカーネルバグ に示されているように、おそらく 5.11+ カーネルに関連して、Linux でのわずかな不安定さが存在しているようです。インターネット上の報告を調査して読んでみると、デフォルトの状態では、Windows は Linux カーネルと比較して、CPU をより高い電圧で、より低いピーク周波数で動作させるようです。これは、シリコンロッタリーのドローに応じて、ランダムなアプリケーションのクラッシュや、再起動につながるハードウェアエラーの原因となる可能性があります。次のような dmesg ログでこれらを認識することができます:

kernel: mce: [Hardware Error]: Machine check events logged
kernel: mce: [Hardware Error]: CPU 22: Machine Check: 0 Bank 1: bc800800060c0859
kernel: mce: [Hardware Error]: TSC 0 ADDR 7ea8f5b00 MISC d012000000000000 IPID 100b000000000 
kernel: mce: [Hardware Error]: PROCESSOR 2:a20f10 TIME 1636645367 SOCKET 0 APIC d microcode a201016

CPU の ID とプロセッサ番号は異なる場合があります。この問題を解決するためには、CPU がピーク周波数で動作するときに安定するように、CPU により高い電圧を供給する必要があります。これを実現する最も簡単な方法は、マザーボードの BIOS 経由でアクセス可能な AMD カーブオプティマイザを使用することです。これにアクセスし、4ポイントの正のオフセットを設定すると、CPU が高負荷で受け取る電圧が増加します。これにより、高い熱放散要件のためにオーバークロックの可能性が制限されるかもしれませんが、安定して動作します。詳細については、このフォーラムの投稿 を確認してください。私が 5950X にこれを行ったとき、私のプロセッサは安定し、周波数と電圧の範囲は Windows で観察されるものにより近くなりました。

スクリーンティアリング(APU)

Xorg を使用しており、スクリーンティアリングが発生している場合は、AMDGPU#Tear free rendering を参照してください。

ソフトロックフリーズ

このバグはよく知られており、bugzillalaunchpad で議論されています。すべてのケースでの解決策は同じではありませんが、こちらは一部のユーザーにとって有効でした。このコマンドecho rcu_nocbs=0-$(($(nproc)-1))の出力をカーネルパラメータとして追加します。このコマンドnprocはCPUのスレッドを表示するだけです。このオプションを適用するには、CONFIG_RCU_NOCB_CPU オプションを持つコンパイル済みのカーネル(例:linux)が必要です。

フリーズの別の原因は、c-statesによって示される省電力管理です。最大の省電力状態であるc6が問題を引き起こすことがあります。カーネルパラメータprocessor.max_cstate=5の追加はいくつかのケースで役立ちましたが、他のユーザーはこのオプションが適用されないと報告しています。それに対する解決策として、disable-c6-systemdAURパッケージが役立ちました。使用する前に、modprobe msrを実行してカーネルモジュールを有効にする必要があります。

HP Envy x360 15-bq100naのようなRyzen CPUを搭載したラップトップは、システムがフリーズするCPUソフトロックを経験することがあります。これはカーネルパラメータidle=nomwaitを追加することで回避できます。

一部のケースでは、カーネルパラメータpci=nomsiが問題を修正します。

他の場合、問題は単に不良なハードウェアであり、新しいものとしてCPUを保証することで問題が解決するかもしれません。

シャットダウン、再起動、サスペンド時のフリーズ

ノート: この問題は UEFI を更新することで新しい AGESA ファームウェアで修正されるかもしれません。

これは Linux でよくサポートされていない(または全くサポートされていない)C6 c-stateに関連しているようです。

この問題を修正するには、UEFI セットアップに移動し、「Power idle control」のようなオプションを探します。その値を「Typical current idle」に変更します。これらの名称はマザーボードの製造元によって異なる場合がありますので、あなたの場合には少し異なるかもしれません。

他の解決策としては、UEFI セットアップで c-states を無効にするか、processor.max_cstate=1をカーネルコマンドライン引数に追加することが考えられます。

参照