如何执行AMD CPU微码更新(非BIOS更新)?
昨天,我将UEFI/BIOS更新到了最新版本(仅发布约11天)。我的硬件/操作系统摘要如下:
|
|
在BIOS更新后,我立即下载并运行了一个非常流行的脚本来检查CVE缓解状态。您可以从GitHub此处下载。
|
|
结果显示全部为绿色,根据该脚本,目前没有CVE可以被利用。但是,由于我多次运行它,并使用--update-builtin-fwdb选项更新了CPU固件数据库,重新运行后显示:
|
|
我的笔记本电脑CPU是AMD Ryzen 9 7845HX,并且我已安装了amd64-microcode软件包以及linux-firmware软件包。dmesg中仅提到这两行:
|
|
和
|
|
由于我从未处理过这个问题,我想询问是否有可能在不等待可能不会很快发布的新BIOS的情况下更新CPU微码?那么,是否有某种机制可以手动更新CPU微码?如果存在,是否存在任何风险?
答案
amd64-microcode软件包尚未更新以包含最新版本。要将微码更新到最新版本,您可以替换软件包中的文件:
-
克隆上游仓库:
1git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git -
将适当文件复制到软件包中的文件上:
1 2cd linux-firmware sudo cp -a amd amd-ucode amdtee /usr/lib/firmware/ -
更新initramfs:
1sudo update-initramfs -u -
重新启动。
在Linux Mint 22.2上的恢复过程,以防新微码出现问题,取自:
|
|
- 在启动期间访问grub菜单(如果在启动期间看不到grub菜单,请在启动系统后立即按住左Shift键);
- 将高亮/光标移动到要使用的内核/启动选项,然后按
e键进行编辑; - 使用光标键找到以
linux开头的行。必须在该行的末尾添加单词dis_ucode_ldr; - 按
Ctrl+x启动系统。微码更新将被跳过。