当前位置: 首页 > 科技观察

如何在Linux上安装-更新Intel微码固件

时间:2023-03-14 14:42:40 科技观察

如果您是Linux系统管理的新手,如何使用命令行在Linux上安装或更新Intel/AMDCPU的微码固件?Microcode微码是Intel/AMD提供的CPU固件。Linux的内核可以在启动时更新CPU固件,而无需更新BIOS。处理器的微码保存在内存中,内核可以在系统每次启动时更新这个微码。来自Intel/AMD的这些微代码更新可以修复错误或应用补丁来防止错误。这篇文章演示了如何使用包管理器或lntel提供的适用于Linux处理器的微码更新来安装适用于AMD或Intel的微码更新。如何检查当前微码状态以root用户身份运行以下命令:#dmesg|grepmicrocode输出如下:VerifymicrocodeupdateonaCentOSRHELFedoraUbuntuDebianLinux请注意,这里完全有可能是你的CPU没有可用的微码更新的情况。如果是这种情况,其输出可能如下所示:[0.952699]microcode:sig=0x306a9,pf=0x10,revision=0x1c[0.952773]microcode:MicrocodeUpdateDriver:v2.2。如何使用LinuxManager上的软件包安装微码固件更新对于运行在x86/amd64架构CPU上的Linux系统,Linux自带了更改或部署微码固件的工具。在Linux上安装AMD或Intel微码固件的过程如下:打开终端应用程序Debian/UbuntuLinux用户推送类型:sudoaptinstallintel-microcodeCentOS/RHELLinux用户类型:sudoyuminstallmicrocode_ctl对于流行的Linux发行版,这个包的名称一般如下:microcode_ctlandlinux-firmware-CentOS/RHEL微码更新包intel-microcode-IntelCPU微码更新包的Debian/Ubuntu及衍生发行版amd64-microcode-Debian/Ubuntu及衍生版微码固件AMDCPUslinux-firmware-用于AMDCPU的ArchLinux发行版的微码固件(您无需执行任何操作,默认情况下已安装)intel-ucode-ArchLinux发行版微码固件microcode_ctl、linux-firmware和ucode-intelforIntelCPUs—Suse/OpenSUSELinux微码更新包警告:在某些情况下,微码更新可能会导致引导问题,例如,服务器暂停或自动运行开机时自动重置。以下步骤已经在我的机器上运行过,我是一个有经验的系统管理员。对于由此引起的任何硬件故障,我概不负责。更新固件前请充分评估操作风险!示例在具有IntelCPU的Debian/UbuntuLinux系统上,输入以下apt命令/apt-get命令:$sudoapt-getinstallintel-microcode示例输出如下:HowtoinstallIntelmicrocodefirmwareLinuxYoumustrestartthe服务器激活微码更新:$sudoreboot重启后检查微码状态:#dmesg|grep'microcode'示例输出如下:[0.000000]microcode:microcodeupdatedearlytorevision0x1c,date=2015-02-26[1.604672]microcode:sig=0x306a9,pf=0x10,revision=0x1c[1.604976]microcode:微码更新驱动:v2.01,PeterOruba如果您使用的是RHEL/CentOS系统,使用yum命令尝试安装或更新以下两个包:$sudoyuminstalllinux-固件microcode_ctl$sudoreboot$sudodmesg|grep'microcode'如何更新/安装从Intel网站下载的微码只有您的CPU制造商建议这样做,您才可以使用以下方法更新/安装微码,否则,您应该使用上述方法更新。大多数Linux发行版都可以通过包管理器维护和更新微码。对于大多数用户来说,使用包管理器的方法是经过测试且最安全的方法。如何为Linux安装Intel处理器微码块(20180108发布)首先去AMD或者Intel官网获取最新的微码固件。在这个例子中,我有一个名为~/Downloads/microcode-20180108.tgz的文件(不要忘记验证它的校验和),它的目的是防止崩溃/幽灵漏洞。首先使用tar命令解压:$mkdirfirmware$cdfirmware$tarxvf~/Downloads/microcode-20180108.tgz$ls-l示例输出如下:drwxr-xr-x2vivekvivek4096Jan812:41intel-ucode-rw-r--r--1vivekvivek4847056Jan812:39microcode.dat-rw-r--r--1vivekvivek1907Jan907:03releasenote我只在CentOS7.x/RHEL、7.x/Debian9.x和Ubuntu17.10测试了以下操作。如果您找不到/sys/devices/system/cpu/microcode/reload文件,则与较旧发行版一起提供的较旧内核可能无法使用此方法。参见下面的讨论。请注意,一些客户在应用固件更新后遇到系统重启的情况。特别适用于为客户端和数据中心服务器运行IntelBroadwell和HaswellCPU的系统。不要在IntelBroadwell和HaswellCPU上应用版本20180108。尽可能使用包管理器方法。检查以确保/sys/devices/system/cpu/microcode/reload存在:$ls-l/sys/devices/system/cpu/microcode/reload必须使用cp命令复制intel-ucode目录下的所有文件到/lib/firmware/intel-ucode/下:$sudocp-vintel-ucode/*/lib/firmware/intel-ucode/你只需要将整个intel-ucode目录复制到/lib/firmware/目录下即可.然后在reload界面写入1,重新加载微码文件:#echo1>/sys/devices/system/cpu/microcode/reload更新已有的initramfs,以便内核在下次启动时加载:$sudoupdate-initramfs-u$sudoreboot重新启动后,通过以下命令验证微码是否已更新:#dmesg|grepmicrocode至此,就是更新处理器微码的所有步骤了。如果一切顺利,您的IntelCPU的固件将已经是最新的。