AMD CPU微码更新指南:无需BIOS升级即可修复安全漏洞

本文详细介绍了在Linux Mint系统中手动更新AMD CPU微码的方法,包括从官方仓库获取最新微码文件、替换系统文件步骤以及风险说明,帮助用户修复CPU安全漏洞而无需等待BIOS更新。

如何执行AMD CPU微码更新(非BIOS更新)?

昨天,我将UEFI/BIOS更新到了最新版本(仅发布约11天)。我的硬件/操作系统摘要如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# hostnamectl | grep -v ' ID'
 Static hostname: rog-g713pi
 Pretty hostname: ASUS ROG Strix G17 G713PI-LL044W
       Icon name: computer-laptop
         Chassis: laptop 💻
      Deployment: production
Operating System: Linux Mint 22.2
          Kernel: Linux 6.14.0-33-generic
    Architecture: x86-64
 Hardware Vendor: ASUSTeK COMPUTER INC.
  Hardware Model: ROG Strix G713PI_G713PI
Firmware Version: G713PI.336
   Firmware Date: Wed 2025-10-01
    Firmware Age: 1w 4d

在BIOS更新后,我立即下载并运行了一个非常流行的脚本来检查CVE缓解状态。您可以从GitHub此处下载。

1
/root/spectre-meltdown-checker.sh --paranoid

结果显示全部为绿色,根据该脚本,目前没有CVE可以被利用。但是,由于我多次运行它,并使用--update-builtin-fwdb选项更新了CPU固件数据库,重新运行后显示:

1
* CPU microcode is the latest known available version:  NO  (latest version is 0xa60120c dated 2024/11/10 according to local firmwares DB v344+i20250812+9d6d)

我的笔记本电脑CPU是AMD Ryzen 9 7845HX,并且我已安装了amd64-microcode软件包以及linux-firmware软件包。dmesg中仅提到这两行:

1
2
3
# dmesg | grep microcode
[Sat Oct 11 21:03:36 2025] microcode: Current revision: 0x0a601209
[Sat Oct 11 21:03:36 2025] microcode: Updated early from: 0x0a601209

1
2
# grep microcode -m 1 /proc/cpuinfo
microcode   : 0xa601209

由于我从未处理过这个问题,我想询问是否有可能在不等待可能不会很快发布的新BIOS的情况下更新CPU微码?那么,是否有某种机制可以手动更新CPU微码?如果存在,是否存在任何风险?

答案

amd64-microcode软件包尚未更新以包含最新版本。要将微码更新到最新版本,您可以替换软件包中的文件:

  1. 克隆上游仓库:

    1
    
    git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
    
  2. 将适当文件复制到软件包中的文件上:

    1
    2
    
    cd linux-firmware
    sudo cp -a amd amd-ucode amdtee /usr/lib/firmware/
    
  3. 更新initramfs:

    1
    
    sudo update-initramfs -u
    
  4. 重新启动。

在Linux Mint 22.2上的恢复过程,以防新微码出现问题,取自:

  • 在启动期间访问grub菜单(如果在启动期间看不到grub菜单,请在启动系统后立即按住左Shift键);
  • 将高亮/光标移动到要使用的内核/启动选项,然后按e键进行编辑;
  • 使用光标键找到以linux开头的行。必须在该行的末尾添加单词dis_ucode_ldr
  • Ctrl+x启动系统。微码更新将被跳过。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计