如何在 Linux 上安装 Intel 微代码固件
· · 182 次点击 ·
·
开始浏览
微代码就是由 Intel/AMD 提供的 CPU 固件。Linux 的内核可以在引导时更新 CPU 固件,而无需 BIOS 更新。处理器的微码保存在内存中,在每次启动系统时,内核可以更新这个微码。这些来自 Intel/AMD 的微码的更新可以去修复 bug 或者使用补丁来防范 bug。
如果你是一个 Linux 系统管理方面的新手,如何在 Linux 上使用命令行方式去安装或者更新 Intel/AMD CPU 的微码固件呢?
如何查看当前的微码状态以 root 用户运行下列命令:
# dmesg | grep microcode
输出如下:
注意,你的 CPU 有可能出现没有可用的微码更新的情况。这时它的输出可能是如下这样的:
[ 0.952699] microcode: sig=0x306a9, pf=0x10, revision=0x1c [ 0.952773] microcode: Microcode Update Driver: v2.2.
如何在 Linux 上使用包管理器去安装微码固件更新
对于运行在 x86/amd64 架构的 CPU 上的 Linux 系统,Linux 自带了工具去更改或者部署微码固件。在 Linux 上安装 AMD 或者 Intel 的微码固件的过程如下:
打开终端应用程序
Debian/Ubuntu Linux 用户推输入:sudo apt install intel-microcode
CentOS/RHEL Linux 用户输入:sudo yum install microcode_ctl
对于流行的 Linux 发行版,这个包的名字一般如下 :
microcode_ctl 和 linux-firmware —— CentOS/RHEL 微码更新包
intel-microcode —— Debian/Ubuntu 和衍生发行版的适用于 Intel CPU 的微码更新包
amd64-microcode —— Debian/Ubuntu 和衍生发行版的适用于 AMD CPU 的微码固件
linux-firmware —— 适用于 AMD CPU 的 Arch Linux 发行版的微码固件(你不用做任何操作,它是默认安装的)
intel-ucode —— 适用于 Intel CPU 的 Arch Linux 发行版微码固件
microcode_ctl 、linux-firmware 和 ucode-intel —— Suse/OpenSUSE Linux 微码更新包
警告 :在某些情况下,微码更新可能会导致引导问题,比如,服务器在引导时被挂起或者自动重置。以下的步骤是在我的机器上运行过的,并且我是一个经验丰富的系统管理员。对于由此引发的任何硬件故障,我不承担任何责任。在做固件更新之前,请充分评估操作风险!
示例
在使用 Intel CPU 的 Debian/Ubuntu Linux 系统上,输入如下的 apt 命令/apt-get 命令:
sudo apt-get install intel-microcode
命令执行成功后,需要重启服务器,以激活微代码的更新。重启以后,我们再次执行 dmesg 命令,可以看到输出已经变为:
[ 0.000000] microcode: microcode updated early to revision 0x1c, date = 2015-02-26 [ 1.604672] microcode: sig=0x306a9, pf=0x10, revision=0x1c [ 1.604976] microcode: Microcode Update Driver: v2.01 tigran@aivazian.fsnet.co.uk , Peter Oruba
如果你是 CentOS 系列的系统,需要安装的对应的包名为 linux-firmware 和 microcode_ctl。
如何更新/安装从 Intel 网站上下载的微码只有在你的 CPU 制造商建议这么做的时候,才可以使用下列的方法去更新/安装微码,除此之外,都应该使用上面的方法去更新。大多数 Linux 发行版都可以通过包管理器来维护、更新微码。使用包管理器的方法是经过测试的,对大多数用户来说是最安全的方式。
如何为 Linux 安装 Intel 处理器微码块(20180108 发布)首先通过 AMD 或 Intel 网站 去获取最新的微码固件。在本示例中,我有一个名称为 ~/Downloads/microcode-20180108.tgz 的文件(不要忘了去验证它的检验和),它的用途是去防范 meltdown/Spectre bug。先使用 tar 命令去提取它:
$ mkdir firmware $ cd firmware $ tar xvf ~/Downloads/microcode-20180108.tgz $ ls -l
输出如下:
drwxr-xr-x 2 vivek vivek 4096 Jan 8 12:41 intel-ucode -rw-r--r-- 1 vivek vivek 4847056 Jan 8 12:39 microcode.dat -rw-r--r-- 1 vivek vivek 1907 Jan 9 07:03 releasenote
我只在 CentOS 7.x/RHEL 7.x、Debian 9.x 和 Ubuntu 17.10 上测试了以下的操作。如果你没有找到 /sys/devices/system/cpu/microcode/reload 文件的话,旧版本的内核也许不能使用此方法更新。
请注意,在应用了固件更新之后,有一些客户遇到了系统重启现象。特别是对于那些运行 Intel Broadwell 和 Haswell CPU 的用于客户机和数据中心服务器上的系统。不要在 Intel Broadwell 和 Haswell CPU 上应用 20180108 版本。尽可能使用软件包管理器方式。
检查一下,确保存在 /sys/devices/system/cpu/microcode/reload。然后需要用 cp 命令拷贝 intel-ucode 目录下的所有文件到 /lib/firmware/intel-ucode/ 下面:
sudo cp -v intel-ucode/* /lib/firmware/intel-ucode/
你只需要将 intel-ucode 这个目录整个拷贝到 /lib/firmware/ 目录下即可。然后在重新加载接口中写入 1 去重新加载微码文件:
# echo 1 /sys/devices/system/cpu/microcode/reload
更新现有的 initramfs,以便于下次启动时它能通过内核来加载:
$ sudo update-initramfs -u $ sudo reboot
重启后通过以下的命令验证微码是否已经更新:
# dmesg | grep microcode
到此为止,就是更新处理器微码的全部步骤。如果一切顺利的话,你的 Intel CPU 的固件将已经是最新的版本了。
182 次点击
加入收藏
相关文章
- 搞定安装Linux系统:一键搞定!(linux安装包一键)
- PHP在Linux上安装:轻松快捷(php安装包linux)
- 检测Linux服务端口状态的方法(查看linux服务端口)
- 安装Linux环境的PHP扩展指南(linux安装php扩展)
- 深入浅出 Linux 代码管理(linux代码管理)
- 探索Linux下的防火墙现状(linux怎么看防火墙)
- Linux下看什么代码有趣(linux看代码)
- 快速简易安装SS Linux(sslinux安装)
- 完美体验:安装Linux虚拟机12(安装linux虚拟机12)
- 『使用Linux创建虚拟硬盘』(linux虚拟硬盘)
- 安装实现Linux系统自由定制:字体库安装方法(linux系统字体库)
- 教程安装JDK:Linux环境视频教程(linux安装jdk视频)
- Linux分支:探索多样性的新世界(linux的分支)
- Linux系统下安装NS2(linux安装ns2)
- 微软能否放弃 Windows 转向 Linux?
- 万能驱动掌握必备!Linux下使用技巧大揭秘(万能驱动linux)
- 深入理解Linux内核NFS:网络文件系统的运作原理和应用(linux内核nfs)
- 探究Linux下硬盘速度的优化方法(linux硬盘速度)
- Linux 权限管理:使用 chmod 命令(linux更改权限命令)
- Linux搭建Hadoop: 快速搭建大数据科学实验室(linux搭建hadoop)
- 从零开始:Linux系统恢复(linux系统恢复)
- 释放Linux磁盘空间的优雅方式(释放linux磁盘空间)
- Linux 已安装软件的探索之旅(linux已安装的软件)
- 解密云中的Linux——解开云计算的谜团(linux云计算达内)
- Exploring the Vast Landscape of Linux Network Resources(linux网络资源)
- 「深入解析」Linux系统调用C:从底层代码到实际应用(linux系统调用c)
- Linux安装Yum:轻松开启丰富应用之旅(linux 中安装yum)
- Linux ADB安装指南:快速简单、轻松上手!(linux adb 安装)