我最近在我的 AMD Ryzen 7 1700X 上安装了 Gentoo Linux。现在我在繁重的编译负载期间遇到分段错误,并且在空闲状态下随机重新启动。
作为第一步,我验证了当前的微码版本:
grep -m 1 microcode /proc/cpuinfo
microcode : 0x8001126
Run Code Online (Sandbox Code Playgroud)
但是,根据此表,最新的微码应该是 0x08001129。因此,更新 CPU 的微码似乎是个好主意。
所以我出现了=sys-kernel/linux-firmware-20180730
(包含/lib/firmware/amd-ucode/microcode_amd_fam17h.bin
)。此外,我在内核中启用了以下选项:
CONFIG_MICROCODE=y
CONFIG_MICROCODE_AMD=y
Run Code Online (Sandbox Code Playgroud)
重新启动后,我尝试手动加载微码(微码更新较晚):
echo 1 > /sys/devices/system/cpu/microcode/reload
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,没有新行出现在dmesg
:
dmesg | grep microcode
[ 0.465121] microcode: CPU0: patch_level=0x08001126
[ 0.465514] microcode: CPU1: patch_level=0x08001126
[ 0.465932] microcode: CPU2: patch_level=0x08001126
[ 0.466394] microcode: CPU3: patch_level=0x08001126
[ 0.466772] microcode: CPU4: patch_level=0x08001126
[ 0.467159] microcode: CPU5: patch_level=0x08001126
[ 0.467537] …
Run Code Online (Sandbox Code Playgroud)