歡迎光臨
每天分享高質量文章

如何在 Linux 上安裝/更新 Intel 微碼韌體 | Linux 中國

Linux 的內核可以在引導時更新 CPU 韌體,而無需 BIOS 更新。處理器的微碼儲存在記憶體中,在每次啟動系統時,內核可以更新這個微碼。
— Vivek Gite


致謝
編譯自 | https://www.cyberciti.biz/faq/install-update-intel-microcode-firmware-linux/ 
 作者 | Vivek Gite
 譯者 | qhwdw ? ? ? ? ? 共計翻譯:88 篇 貢獻時間:127 天

如果你是一個 Linux 系統管理方面的新手,如何在 Linux 上使用命令列方式去安裝或者更新 Intel/AMD CPU 的微碼韌體呢?

微碼microcode就是由 Intel/AMD 提供的 CPU 韌體。Linux 的內核可以在引導時更新 CPU 韌體,而無需 BIOS 更新。處理器的微碼儲存在記憶體中,在每次啟動系統時,內核可以更新這個微碼。這些來自 Intel/AMD 的微碼的更新可以去修複 bug 或者使用補丁來防範 bug。這篇文章演示瞭如何使用包管理器或由 lntel 提供的 Linux 處理器微碼更新來安裝 AMD 或 Intel 的微碼更新。

如何檢視當前的微碼狀態

以 root 使用者執行下列命令:

  1. # dmesg | grep microcode

輸出如下:

Verify microcode update on a CentOS RHEL Fedora Ubuntu Debian Linux

請註意,你的 CPU 在這裡完全有可能出現沒有可用的微碼更新的情況。如果是這種情況,它的輸出可能是如下這樣的:

  1. [ 0.952699] microcode: sig=0x306a9, pf=0x10, revision=0x1c

  2. [ 0.952773] microcode: Microcode Update Driver: v2.2.

如何在 Linux 上使用包管理器去安裝微碼韌體更新

對於執行在 x86/amd64 架構的 CPU 上的 Linux 系統,Linux 自帶了工具去更改或者部署微碼韌體。在 Linux 上安裝 AMD 或者 Intel 的微碼韌體的過程如下:

☉ 開啟終端應用程式
☉ Debian/Ubuntu Linux 使用者推輸入:sudo apt install intel-microcode
☉ CentOS/RHEL Linux 使用者輸入:sudo yum install microcode_ctl

對於流行的 Linux 發行版,這個包的名字一般如下 :

◈ microcode_ctl 和 linux-firmware —— CentOS/RHEL 微碼更新包
◈ intel-microcode —— Debian/Ubuntu 和衍生髮行版的適用於 Intel CPU 的微碼更新包
◈ amd64-microcode —— Debian/Ubuntu 和衍生髮行版的適用於 AMD CPU 的微碼韌體
◈ linux-firmware —— 適用於 AMD CPU 的 Arch Linux 發行版的微碼韌體(你不用做任何操作,它是預設安裝的)
◈ intel-ucode —— 適用於 Intel CPU 的 Arch Linux 發行版微碼韌體
◈ microcode_ctl 、linux-firmware 和 ucode-intel —— Suse/OpenSUSE Linux 微碼更新包

警告 :在某些情況下,微碼更新可能會導致引導問題,比如,伺服器在引導時被掛起或者自動重置。以下的步驟是在我的機器上執行過的,並且我是一個經驗豐富的系統管理員。對於由此引發的任何硬體故障,我不承擔任何責任。在做韌體更新之前,請充分評估操作風險!

示例

在使用 Intel CPU 的 Debian/Ubuntu Linux 系統上,輸入如下的 apt 命令[1]/apt-get 命令[2]

  1. $ sudo apt-get install intel-microcode

示例輸出如下:

How to install Intel microcode firmware Linux

你 必須重啟伺服器以啟用微碼[3] 更新:

  1. $ sudo reboot

重啟後檢查微碼狀態:

  1. # dmesg | grep 'microcode'

示例輸出如下:

  1. [ 0.000000] microcode: microcode updated early to revision 0x1c, date = 2015-02-26

  2. [ 1.604672] microcode: sig=0x306a9, pf=0x10, revision=0x1c

  3. [ 1.604976] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba

如果你使用的是 RHEL/CentOS 系統,使用 yum 命令[4] 嘗試去安裝或者更新以下兩個包:

  1. $ sudo yum install linux-firmware microcode_ctl

  2. $ sudo reboot

  3. $ sudo dmesg | grep 'microcode'

如何更新/安裝從 Intel 網站上下載的微碼

只有在你的 CPU 製造商建議這麼做的時候,才可以使用下列的方法去更新/安裝微碼,除此之外,都應該使用上面的方法去更新。大多數 Linux 發行版都可以透過包管理器來維護、更新微碼。使用包管理器的方法是經過測試的,對大多數使用者來說是最安全的方式。

如何為 Linux 安裝 Intel 處理器微碼塊(20180108 釋出)

首先透過 AMD 或 Intel 網站[5] 去獲取最新的微碼韌體。在本示例中,我有一個名稱為 ~/Downloads/microcode-20180108.tgz 的檔案(不要忘了去驗證它的檢驗和),它的用途是去防範 meltdown/Spectre bug。先使用 tar 命令去提取它:

  1. $ mkdir firmware

  2. $ cd firmware

  3. $ tar xvf ~/Downloads/microcode-20180108.tgz

  4. $ ls -l

示例輸出如下:

  1. drwxr-xr-x 2 vivek vivek 4096 Jan 8 12:41 intel-ucode

  2. -rw-r--r-- 1 vivek vivek 4847056 Jan 8 12:39 microcode.dat

  3. -rw-r--r-- 1 vivek vivek 1907 Jan 9 07:03 releasenote

我只在 CentOS 7.x/RHEL、 7.x/Debian 9.x 和 Ubuntu 17.10 上測試瞭如下操作。如果你沒有找到 /sys/devices/system/cpu/microcode/reload 檔案的話,更老的發行版所帶的更老的核心也許不能使用此方法。參見下麵的討論。請註意,在應用了韌體更新之後,有一些客戶遇到了系統重啟現象。特別是對於那些執行 Intel Broadwell 和 Haswell CPU[6] 的用於客戶機和資料中心伺服器上的系統。不要在 Intel Broadwell 和 Haswell CPU 上應用 20180108 版本。盡可能使用軟體包管理器方式。

檢查一下,確儲存在 /sys/devices/system/cpu/microcode/reload

  1. $ ls -l /sys/devices/system/cpu/microcode/reload

你必須使用 cp 命令[7] 複製 intel-ucode 目錄下的所有檔案到 /lib/firmware/intel-ucode/ 下麵:

  1. $ sudo cp -v intel-ucode/* /lib/firmware/intel-ucode/

你只需要將 intel-ucode 這個目錄整個複製到 /lib/firmware/ 目錄下即可。然後在重新載入介面中寫入 1 去重新載入微碼檔案:

  1. # echo 1 > /sys/devices/system/cpu/microcode/reload

更新現有的 initramfs,以便於下次啟動時它能透過核心來載入:

  1. $ sudo update-initramfs -u

  2. $ sudo reboot

重啟後透過以下的命令驗證微碼是否已經更新:

  1. # dmesg | grep microcode

到此為止,就是更新處理器微碼的全部步驟。如果一切順利的話,你的 Intel CPU 的韌體將已經是最新的版本了。

關於作者

作者是 nixCraft 的創始人、一位經驗豐富的系統管理員、Linux/Unix 作業系統 shell 指令碼培訓師。他與全球的包括 IT、教育、國防和空間研究、以及非盈利組織等各行業的客戶一起工作。可以在 Twitter[8]Facebook[9]Google+[10] 上關註他。


via: https://www.cyberciti.biz/faq/install-update-intel-microcode-firmware-linux/

作者:Vivek Gite[12] 譯者:qhwdw 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂