QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

熊天琪游戏论坛 - 玩出名堂

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 22|回复: 0

[文本教程] Linux 更新处理器微代码 CPU microcode

[复制链接]
发表于 2018-1-13 02:00:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  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] (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发行版未测试,相信应该也是一样.
[table=98%][/table]
熊天琪的论坛真是太好啦, 我太喜欢熊天琪啦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Loading...

QQ|小黑屋|Archiver|手机版|熊天琪 ( 鄂ICP备14006674号,鄂公网安备42020502000003号 

安全联盟

GMT+8, 2018-4-25 00:11 , Processed in 0.085242 second(s), 27 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表