Linux 更新 CPU microcode

Kernel 配置

当前Linux kernel 中microcode 模块已提供Intel/AMD CPU更新接口, 配置以下参数启用此模块:

CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_MICROCODE_INTEL_LIB=y

此模块提供三种不同的方式接口:
1. /dev/cpu/microcode,通过第三方工具(如microcode_ctl)将microcode中对应当前系统cpu的ucode写入即可更新 ; kernel 3.9以后版本需开启 kernel配置参数保持兼容;

CONFIG_MICROCODE_OLD_INTERFACE=y
  1. sysfs接口,echo 1 > /sys/devices/system/cpu/microcode/reload内核将自动查找/lib/firmware/intel-ucode/目录下基于当前CPU(格式为:family-model-stepping)更新文件并执行更新操作;
  2. EARLY方式,kernel在初始化后,加载混合了microcodecpio与initrdramfs的initrd自动完成更新操作; 需kernel3.9之后版本并开启配置参数:
CONFIG_MICROCODE_INTEL_EARLY=y
CONFIG_MICROCODE_AMD_EARLY=y
CONFIG_MICROCODE_EARLY=y

microcode更新

确认当前待更新microcode CPU 版本及步进等信息:

cat /proc/cpuinfo  |grep "model\|microcode\|stepping\|family" |head -n 5
cpu family      : 6
model           : 45
model name      : Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz
stepping        : 7
microcode       : 0x70a

可知当前CPU ucode 文件为* 06-2d-07*

下载CPU microcode
AMD’s Operating System Research Center.
Intel’s download center.
解压为一个单一文件: microcode.dat

下载[microcode_ctl] (https://fedorahosted.org/microcode_ctl/)

方法一

使用 microcode_ctl 1.7版本中microcode_ctl 直接更新即可:

microcode_ctl -u microcode.dat

方法二

使用 microcode_ctl v2.x intel-microcode2ucode转换工具.

cp microcode.dat /lib/firmware/
cd /lib/fimware
# 解码 microcode.dat 并在当前目录下生成基于`intel-ucode`目录的CPU更新文件
intel-microcode2ucode microcode.dat
# 通知内核自动更新
echo 1 > /sys/devices/system/cpu/microcode/reload 

方法三

已知当前CPU更新文件为06-2d-07, 创建混合initrd:

mkdir initrd
cd initrd
mkdir -p kernel/x86/microcode
# Intel CPU文件名为 GenuineIntel.bin; AMD CPU 文件名为 AuthenticAMD.bin
cp /lib/firmware/intel-ucode/06-2d-07 kernel/x86/microcode/GenuineIntel.bin
find . | cpio -o -H newc >../ucode.cpio
cd ..
cat ucode.cpio /boot/initrd.img > initrd-ucode.img

修改grub配置参数,重启即可完成更新.

initrd initrd-ucode.img

更新完成

cat /proc/cpuinfo  |grep "model\|microcode\|stepping\|family" |head -n 5
cpu family      : 6
model           : 45
model name      : Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz
stepping        : 7
microcode       : 0x710
......

RHEL/CentOS 7 在系统安装时会自动更新当前CPU microcode, 用的是方式2&方式3共存方式, 所有CPU microcode都包含在microcode_ctl中:

cat /usr/lib/systemd/system/microcode.service
[Unit]
Description=Load CPU microcode update
After=basic.target
ConditionVirtualization=false[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/usr/bin/bash -c "echo 1 > /sys/devices/system/cpu/microcode/reload"[Install]
WantedBy=basic.target
cpio -t < initramfs-3.10.0-327.el7.x86_64.img
.
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/GenuineIntel.bin
early_cpio
36 blocks

其他Linux发行版未测试,相信应该也是一样.

参考

https://www.kernel.org/doc/Documentation/x86/early-microcode.txt
https://fedorahosted.org/microcode_ctl/
https://downloadcenter.intel.com/download/26400/Linux-Processor-Microcode-Data-File?v=t
https://fitzcarraldoblog.wordpress.com/2014/11/06/updating-intel-cpu-microcode-from-gentoo-linux/
http://www.timelordz.com/wiki/Microcode
http://manpages.ubuntu.com/manpages/trusty/man8/iucode_tool.8.html

Linux 更新 CPU microcode相关推荐

  1. 使用UEFI BIOS Updater(UBU)来更新CPU微代码

    原文地址:http://www.win-raid.com/t154f16-Tool-Guide-News-quot-UEFI-BIOS-Updater-quot-UBU.html 链接: http:/ ...

  2. linux查看cpu微码命令,下载 Linux * 处理器微码数据文件

    适用于 Linux * 的英特尔处理器微套件软件包 CPU 微码是一种更正现有系统中的特定勘误表的机制. 应用微代码更新的一般首选方法是使用系统 BIOS,但对于英特尔处理器的一部分,这可以在运行时完 ...

  3. linux查cpu和内存配置,Linux查看CPU和内存的配置信息

    CPU配置信息: frank@ubuntu:~/test/python$ cat /proc/cpuinfo processor : #系统中逻辑处理核的编号 vendor_id : GenuineI ...

  4. linux监测cpu 内存,Linux中CPU与内存性能监测.docx

    Linux中CPU与内存性能监测(出处://chenleixing/article/details 在系统维护的过程中,随时可能有需要查看 CPU 使用率内存使用情况的需要,尤其是涉及到JVM,程序调 ...

  5. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1, #cat /proc/stat/  信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s   或者 #vmstat    虚拟内存统 ...

  6. 查看cpu使用率_腾讯游戏开发工程师:Linux 机器 CPU 毛刺问题排查

    作者:jasonzxpan,腾讯 IEG 运营开发工程师 本文排查一个Linux 机器 CPU 毛刺问题,排查过程中不变更进程状态.也不会影响线上服务,最后还对 CPU 毛刺带来的风险进行了分析和验证 ...

  7. Linux 机器 CPU 毛刺问题排查

    作者:jasonzxpan,腾讯 IEG 运营开发工程师 本文排查一个Linux 机器 CPU 毛刺问题,排查过程中不变更进程状态.也不会影响线上服务,最后还对 CPU 毛刺带来的风险进行了分析和验证 ...

  8. linux服务器怎么查看cpu配置信息,linux服务器cpu信息查看详解

    在linux系统中,提供了/proc目录下文件,显示系统的软硬件信息.如果想了解系统中CPU的提供商和相关配置信息,则可以查/proc/cpuinfo.但是此文件输出项较多,不易理解.例如我们想获取, ...

  9. Linux arm cpu topology

    Linux arm cpu topology 目录 Linux arm cpu topology CPU拓扑结构核心结构体 架构实现 init_cpu_topology store_cpu_topol ...

  10. Linux查看CPU核数

    目录 Linux查看CPU核数 1.基础概念 2.查询命令 Linux查看CPU核数 1.基础概念 首先我们需要先了解多CPU多核缓存架构,若只看命令直接看第2部分. 物理CPU:物理CPU就是插在主 ...

最新文章

  1. 基于Matlab的多层BP神经网络在非线性函数拟合中的应用
  2. IC/FPGA校招笔试题分析(一)
  3. VHDL+Verilog良好的代码编写风格(转载)
  4. html判断变量,javascript如何判断变量是否为对象?
  5. 开源个小工具simple-repo
  6. c#仿QQ安全管家事例(附:源码下载)
  7. BizTalk Server 2010 + SQL Server 2008 R2 - 通过集成创造更大价值 [ 上篇 ]
  8. 超视频化到来,你能看到什么?
  9. windows MD5校验命令
  10. 七彩虹固态硬盘 慧荣SM2258XT主控开卡教程,SM2259XT2貌似差不多
  11. 电子负载使用恒电流和恒电阻负载模式的方法
  12. 今年双旦期间简直人品爆棚,晒晒我抽中的趣享付趣号卡
  13. 云计算day12-Kubernetes_K8s
  14. EXCEL表格-VLOOKUP多对一结果匹配方法(通配符)
  15. 如何登录MySQL数据库
  16. Xdebug中文文档-基础特性
  17. 美团点评java开发面试问题
  18. 2020年5月份世界计算机编程语言排行榜
  19. 找一到搜电影的好网站www.kxdy.net
  20. Fidder教程-数据介绍

热门文章

  1. 控制反转与依赖注入概述——Spring IOC/DI(一)
  2. Mac x 10.12.4 如何安装sshfs
  3. oracle9i阻塞,Oracle 9i 整体性能优化概述(zt)
  4. 不同平台安装python的方式一样吗_Python软件的正确安装方式
  5. 凯斯西储大学计算机科学硕士,凯斯西储大学电气工程与计算机科学系
  6. win10打开蓝牙_win10动态锁,只要你离电脑远一点,电脑就自动锁定
  7. java期末考试工程项目_java web 期末项目实验源码20套,自用学习非常不错!
  8. jumpserver 账户被锁定30分钟后_175斤女孩嫌腰粗,每天坚持跳绳30分钟,3个月后令丈夫刮目相看...
  9. php7 aop,php之aop实践
  10. sqlite:WAL模式