因此,上面的问题更一般化为:Linux 更新(在 ubuntu、redhat、debian 等上)是否也会更新我的微码?或者我必须手动更新我的 CPU 的微码?
我已经安装了微码包。
谢谢你的回答。
答案1
微码通常针对发行版进行打包。我见过基于 Debian 的发行版(例如 Debian、Ubuntu、Mint)和基于 Red Hat 的发行版(例如 CentOS、Fedora(Red Hat 的上游)和 Scientific Linux,以及不太知名的发行版,例如 Oracle Linux、Amazon Linux 和 CloudLinux)中的微码更新。
TL;DR:是的,微码通常由您的包管理器更新。
答案2
首先,您的 BIOS/UEFI 可能会尝试更新 CPU 微码,这意味着可以通过更新固件来更新它。
实际上,Linux 内核本身就具有执行微代码更新的内置能力,只要这些更新随 Linux 一起分发即可。这通常是一个软件包,例如 linux-firmware。但在 Arch-Linux 等一些发行版中,它被单独划分为 intel-ucode。微代码通常不是自由软件,因此它会因发行版的不同而受到不同的支持和包含。
ArchLinux:intel-ucode
和linux-firmware
Debian 和 Ubuntu:amd64-microcode
以及intel-microcode
Fedora:microcode_ctl
适用于英特尔,还有linux
适用于 amd 和其他公司的软件包。
答案3
有点。一些发行版/处理器可能默认这样做,但在其他发行版/处理器上(例如,带有英特尔硬件的 ArchLinux),您需要安装单独的软件包intel-ucode
并编辑引导加载程序选项以应用更新。
例如对于 GRUB,您需要将 initrd 行更改为:
[...]
echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux.img
[...]
如果您有 AMD 硬件,安装linux-firmware
包就足够了。