加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_运城站长网 (https://www.0359zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux 更新处理器微代码 CPU microcode

发布时间:2022-10-15 12:40:57 所属栏目:Linux 来源:
导读:  Linux 更新处理器微代码 CPU microcode简单记录 Kernel 配置

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

  CONFIG_MICROCODE=y CONFIG_MICROCODE_I
  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/microcodelinux处理器,通过第三方工具(如microcode_ctl)将microcode中对应当前系统cpu的ucode写入即可更新 ; kernel 3.9以后版本需开启 kernel配置参数保持兼容;
 
  CONFIG_MICROCODE_OLD_INTERFACE=y sysfs接口,echo 1 > /sys/devices/system/cpu/microcode/reload内核将自动查找/lib/firmware/intel-ucode/目录下基于当前CPU(格式为:family-model-stepping)更新文件并执行更新操作; 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] () 方法一
 
  使用 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
 

(编辑:开发网_运城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!