Linux 更新處理器微代碼 CPU microcode

來源:互聯網
上載者:User

Linux 更新處理器微代碼 CPU microcode
Linux 更新處理器微代碼 CPU microcode簡單記錄Kernel 配置

當前Linux kernel 中microcode 模組已提供Intel/AMD CPU更新介面, 配置以下參數啟用此模組:

CONFIG_MICROCODE=yCONFIG_MICROCODE_INTEL=yCONFIG_MICROCODE_AMD=yCONFIG_MICROCODE_OLD_INTERFACE=yCONFIG_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=yCONFIG_MICROCODE_AMD_EARLY=yCONFIG_MICROCODE_EARLY=y
microcode更新

確認當前待更新microcode CPU 版本及步進等資訊:

cat /proc/cpuinfo  |grep "model\|microcode\|stepping\|family" |head -n 5

 

cpu family      : 6model           : 45model name      : Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHzstepping        : 7microcode       : 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 initrdcd initrdmkdir -p kernel/x86/microcode# Intel CPU檔案名稱為 GenuineIntel.bin; AMD CPU 檔案名稱為 AuthenticAMD.bincp /lib/firmware/intel-ucode/06-2d-07 kernel/x86/microcode/GenuineIntel.binfind . | cpio -o -H newc >../ucode.cpiocd ..cat ucode.cpio /boot/initrd.img > initrd-ucode.img

修改grub配置參數,重啟即可完成更新.

initrd initrd-ucode.img

更新完成

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

RHEL/CentOS 7 在系統安裝時會自動更新當前CPU microcode, 用的是方式2&方式3共存方式, 所有CPU microcode都包含在microcode_ctl中:

cat /usr/lib/systemd/system/microcode.service[Unit]Description=Load CPU microcode updateAfter=basic.targetConditionVirtualization=false[Service]Type=oneshotRemainAfterExit=noExecStart=/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.kernelkernel/x86kernel/x86/microcodekernel/x86/microcode/GenuineIntel.binearly_cpio36 blocks

其他Linux發行版未測試,相信應該也是一樣.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.