Ryzen

From ArchWiki
Jump to navigation Jump to search

Enable microcode support

Install the amd-ucode package to enable microcode updates and enable it with the help of the Microcode page. These updates provide bug fixes that can be critical to the stability of your system. It is highly recommended to use it despite it being proprietary.

Tweaking Ryzen

Power/Temperature Monitoring

lm_sensors should be able to monitor temperatures out of the box. However, for more detailed information such as power consumption and voltage, zenpower-dkmsAUR is needed. For GUI based monitoring tools, use zenmonitorAUR or zenmonitor3-gitAUR for Zen 3 CPUs.

Power managing

RyzenAdj|| ryzenadj-gitAUR (CLI) is a tool created by FlyGoat to adjust power management settings for Ryzen processors using a terminal emulator.

Overclocking

zenstates-gitAUR (CLI) is a tool made by r4m0n to adjust the clock speed and voltage. A detailed example was given in Level1Techs' forums by catsay for you to understand it.

Compiling a kernel

See Gentoo:Ryzen#Kernel on enabling Ryzen support.

Troubleshooting

Random reboots

See Gentoo:Ryzen#Random_reboots_with_mce_events if you are experiencing random reboots.

Screen-tearing (APU)

If you are using Xorg and are experiencing screen-tearing, enabling the "TearFree" option will fix the problem.

/etc/X11/xorg.conf.d/20-amdgpu.conf
Section "Device"
     Identifier "AMD"
     Driver "amdgpu"
     Option "TearFree" "true"
  EndSection
Note: "TearFree" is not Vsync.

Soft lock freezing

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 "idle=nomwait" boot option.

Freeze on shutdown, reboot and suspend

Note: With the latest AGESA firmware version 1.2.0.2 this problem might no longer occur.

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 processor.max_cstates=1 to your kernel command line arguments.

See also