「Ryzen」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の1版が非表示)
31行目: 31行目:
 
== トラブルシューティング ==
 
== トラブルシューティング ==
   
=== Random reboots ===
+
=== ランダムリブート ===
   
See [[Gentoo:Ryzen#Random_reboots_with_mce_events]] if you are experiencing random reboots.
+
ランダムな再起動が発生している場合は、[[Gentoo:Ryzen#Random_reboots_with_mce_events]] を参照してください。
   
  +
Ryzen 5000 シリーズ、特に 5950X と 5900X の高エンドモデルでは、[https://bugzilla.kernel.org/show_bug.cgi?id=212087 このカーネルバグ] に示されているように、おそらく 5.11+ カーネルに関連して、Linux でのわずかな不安定さが存在しているようです。インターネット上の報告を調査して読んでみると、デフォルトの状態では、Windows は Linux カーネルと比較して、CPU をより高い電圧で、より低いピーク周波数で動作させるようです。これは、シリコンロッタリーのドローに応じて、ランダムなアプリケーションのクラッシュや、再起動につながるハードウェアエラーの原因となる可能性があります。次のような dmesg ログでこれらを認識することができます:
With Ryzen 5, particularly the enthusiast models of 5950X and 5900X there seem to be some slight instability issues under Linux, related possibly to the 5.11+ kernel, as shown by [https://bugzilla.kernel.org/show_bug.cgi?id=212087 this kernel bug]. After investigating and reading reports on the Internet I discovered that out of the box, Windows seems to run the CPUs at higher voltage and lower peak frequencies, compared to the stock linux kernel, which depending on your draw from the silicone lottery could cause a host of random application crashes or hardware errors that lead to reboots. You will recognise those by dmesg logs that look like:
 
   
 
kernel: mce: [Hardware Error]: Machine check events logged
 
kernel: mce: [Hardware Error]: Machine check events logged
 
kernel: mce: [Hardware Error]: CPU 22: Machine Check: 0 Bank 1: bc800800060c0859
 
kernel: mce: [Hardware Error]: CPU 22: Machine Check: 0 Bank 1: bc800800060c0859
lightbringer kernel: mce: [Hardware Error]: TSC 0 ADDR 7ea8f5b00 MISC d012000000000000 IPID 100b000000000
+
kernel: mce: [Hardware Error]: TSC 0 ADDR 7ea8f5b00 MISC d012000000000000 IPID 100b000000000
lightbringer kernel: mce: [Hardware Error]: PROCESSOR 2:a20f10 TIME 1636645367 SOCKET 0 APIC d microcode a201016
+
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 で観察されるものにより近くなりました。
The CPU ID and the Processor number may vary. To solve this problem you need to supply higher voltage to your CPU so that it is stable when running at peak frequencies. The easiest way to achieve this is to use the AMD curve optimiser which is accessible via your motherboard's bios. Access it and put a positive offset of 4 points, which will increase the voltage your CPU is getting at higher loads. It will limit overclocking potential due to higher heat dissipation requirements, but it will run stable. For more details check [https://community.amd.com/t5/processors/ryzen-5900x-system-constantly-crashing-restarting-whea-logger-id/td-p/423321/page/84 this forum post]. When I did this for my 5950X, my processor stabilised and the frequency and voltage ranges were more similar to those observed under windows.
 
   
  +
=== スクリーンティアリング(APU) ===
   
  +
[[Xorg]] を使用しており、スクリーンティアリングが発生している場合は、[[AMDGPU#Tear free rendering]] を参照してください。
=== 画面のちらつき (APU) ===
 
  +
=== ソフトロックフリーズ ===
   
  +
このバグはよく知られており、[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}})が必要です。
[[Xorg]] を使用していてティアリングが発生する場合、{{ic|"TearFree"}} オプションを有効にすることで問題が解決します:
 
   
  +
フリーズの別の原因は、c-statesによって示される省電力管理です。最大の省電力状態であるc6が問題を引き起こすことがあります。カーネルパラメータ{{ic|1=processor.max_cstate=5}}の追加はいくつかのケースで役立ちましたが、他のユーザーはこのオプションが適用されないと報告しています。それに対する解決策として、{{AUR|disable-c6-systemd}}パッケージが役立ちました。使用する前に、{{ic|modprobe msr}}を実行してカーネルモジュールを有効にする必要があります。
{{hc|/etc/X11/xorg.conf.d/20-amdgpu.conf|
 
Section "Device"
 
Identifier "AMD"
 
Driver "amdgpu"
 
Option "TearFree" "true"
 
EndSection
 
}}
 
   
  +
HP Envy x360 15-bq100naのようなRyzen CPUを搭載したラップトップは、システムがフリーズするCPUソフトロックを経験することがあります。これはカーネルパラメータ{{ic|1=idle=nomwait}}を追加することで回避できます。
{{Note| {{ic|"TearFree"}} は Vsync とは'''違い'''ます。}}
 
   
  +
一部のケースでは、カーネルパラメータ{{ic|1=pci=nomsi}}が問題を修正します。
=== Soft lock freezing ===
 
   
  +
他の場合、問題は単に不良なハードウェアであり、新しいものとしてCPUを保証することで問題が解決するかもしれません。
This bug is well known and is being discussed on [https://bugzilla.kernel.org/show_bug.cgi?id=196683 bugzilla] and [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1690085 launchpad]. While the solution is not the same in all cases, [https://bugs.launchpad.net/linux/+bug/1690085/comments/69 this] one helped some users. Add the output of this command {{ic|1=<nowiki/>echo rcu_nocbs=0-$(($(nproc)-1))}} as a kernel parameter where the command {{ic|nproc}} just prints your CPU's threads. For this option to be applied, you need a compiled kernel with option {{ic|CONFIG_RCU_NOCB_CPU}} which {{Pkg|linux}} is not.
 
   
  +
=== シャットダウン、再起動、サスペンド時のフリーズ ===
A different cause for the freezes is the power saving management idicated by c-states. The maximum power saving state c6 can cause problems. Adding the kernel parameter {{ic|1=<nowiki/>processor.max_cstate=5}} helped in some cases but other users reported that the option is not applied and the c6 state is still entered. For them, this package {{AUR|disable-c6-systemd}} helped. Before using it, {{ic|modeprobe msr}} needs to be run in order to activate that kernel module.
 
   
  +
{{Note|この問題は UEFI を更新することで新しい AGESA ファームウェアで修正されるかもしれません。}}
Some laptops with Ryzen CPUs such as the HP Envy x360 15-bq100na may experience CPU soft locks which result in a frozen system. These can be avoided with the kernel parameter "idle=nomwait" added.
 
   
  +
これは Linux でよくサポートされていない(または全くサポートされていない)C6 c-stateに関連しているようです。
=== Freeze on shutdown, reboot and suspend ===
 
   
  +
この問題を修正するには、UEFI セットアップに移動し、「Power idle control」のようなオプションを探します。その値を「Typical current idle」に変更します。これらの名称はマザーボードの製造元によって異なる場合がありますので、あなたの場合には少し異なるかもしれません。
{{Note|With the latest AGESA firmware version 1.2.0.2 this problem might no longer occur.}}
 
   
  +
他の解決策としては、UEFI セットアップで c-states を無効にするか、{{ic|1=processor.max_cstate=1}}をカーネルコマンドライン引数に追加することが考えられます。
This seems to be related to the C6 c-state, that does not seem to be well supported (if at all) in Linux.
 
 
To fix this issue, go into your BIOS settings for your motherboard and search for an option labeled something like this: "Power idle control". Change its value to "Typical current idle". Note that these names are dependent on what the motherboard manufacturer calls them, so they may be a little different in your particular case.
 
 
Other less ideal solutions include disabling c-states in the BIOS or adding {{ic|1=processor.max_cstate=1}} to your kernel command line arguments.
 
   
 
== 参照 ==
 
== 参照 ==

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をカーネルコマンドライン引数に追加することが考えられます。

参照