Linux 更新处理器微代码 CPU microcode

时间:2018-01-12 20:28来源:未知 作者:Linux先生 举报 点击:
当前Linux kernel 中microcode 模块已提供Intel/AMD CPU更新接口, 配置以下参数启用此模块:
  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
  
  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] (http://www.kooct.com/048/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发行版未测试,重庆幸运农场开到晚上几点:相信应该也是一样.
推荐内容
重庆幸运农场开奖结果 重庆市彩票中心 线上购买重庆幸运农场 中福在线幸运农场 全天时时彩计划
3d走势图带连线 家庭农场logo 重庆幸运农场推测技巧 幸运农场胆码计划 幸运农场珠海网
幸运农场网上投注 重庆幸运农场几点开奖 双色球幸运杀号器 重庆快乐十分遗漏 农场水果连连看4
忠县到石柱汽车 2元彩票网杀号定胆 重庆幸运农场开奖系统 幸运农场20170622041期 幸运农场上午几点开奖
大乐透走势图浙江 山东十一选五前一 体育彩票7位数 赌场风云粤语 湖南幸运赛车视频
上海时时乐今天走式 2012广西快乐十分直播 下注时时彩软件 陕西快乐十分追号 重庆快乐10分走势图
广东体彩快中彩开奖结果查询 天天三张牌时时乐 秒速时时彩有什么技巧 威客赚钱是真的吗 北京赛车pk10下载
黑龙江快乐十分最新开奖结果 湖南幸运赛车彩票 快乐十分任三稳赚技巧 幸运飞艇有什么规律 幸运小飞艇开奖链接