如何在Linux上安裝Intel微程式碼韌體
微程式碼就是由 Intel/AMD 提供的 CPU 韌體。Linux 的核心可以在引導時更新 CPU 韌體,而無需 BIOS 更新。處理器的微碼儲存在記憶體中,在每次啟動系統時,核心可以更新這個微碼。這些來自 Intel/AMD 的微碼的更新可以去修復 bug 或者使用補丁來防範 bug。
如果你是一個 Linux 系統管理方面的新手,如何在 Linux 上使用命令列方式去安裝或者更新 Intel/AMD CPU 的微碼韌體呢?
如何檢視當前的微碼狀態
以 root 使用者執行下列命令:
# dmesg | grep microcode
輸出如下:
注意,你的 CPU 有可能出現沒有可用的微碼更新的情況。這時它的輸出可能是如下這樣的:
[ 0.952699] microcode: sig=0x306a9, pf=0x10, revision=0x1c [ 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 命令/apt-get 命令:
sudo apt-get install intel-microcode
命令執行成功後,需要重啟伺服器,以啟用微程式碼的更新。重啟以後,我們再次執行 dmesg 命令,可以看到輸出已經變為:
[ 0.000000] microcode: microcode updated early to revision 0x1c, date = 2015-02-26 [ 1.604672] microcode: sig=0x306a9, pf=0x10, revision=0x1c [ 1.604976] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
如果你是 CentOS 系列的系統,需要安裝的對應的包名為 linux-firmware 和 microcode_ctl。
如何更新/安裝從 Intel 網站上下載的微碼
只有在你的 CPU 製造商建議這麼做的時候,才可以使用下列的方法去更新/安裝微碼,除此之外,都應該使用上面的方法去更新。大多數 Linux 發行版都可以通過包管理器來維護、更新微碼。使用包管理器的方法是經過測試的,對大多數使用者來說是最安全的方式。
如何為 Linux 安裝 Intel 處理器微碼塊(20180108 釋出)
首先通過 AMD 或 Intel 網站 去獲取最新的微碼韌體。在本示例中,我有一個名稱為 ~/Downloads/microcode-20180108.tgz
的檔案(不要忘了去驗證它的檢驗和),它的用途是去防範 meltdown/Spectre
bug。先使用 tar
命令去提取它:
$ mkdir firmware $ cd firmware $ tar xvf ~/Downloads/microcode-20180108.tgz $ ls -l
輸出如下:
drwxr-xr-x 2 vivek vivek 4096 Jan 8 12:41 intel-ucode -rw-r--r-- 1 vivek vivek 4847056 Jan 8 12:39 microcode.dat -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 的用於客戶機和資料中心伺服器上的系統。不要在 Intel Broadwell 和 Haswell CPU 上應用 20180108 版本。儘可能使用軟體包管理器方式。
檢查一下,確儲存在 /sys/devices/system/cpu/microcode/reload
。然後需要用 cp 命令拷貝 intel-ucode
目錄下的所有檔案到 /lib/firmware/intel-ucode/
下面:
sudo cp -v intel-ucode/* /lib/firmware/intel-ucode/
你只需要將 intel-ucode
這個目錄整個拷貝到 /lib/firmware/
目錄下即可。然後在重新載入介面中寫入 1
去重新載入微碼檔案:
# echo 1 > /sys/devices/system/cpu/microcode/reload
更新現有的 initramfs,以便於下次啟動時它能通過核心來載入:
$ sudo update-initramfs -u $ sudo reboot
重啟後通過以下的命令驗證微碼是否已經更新:
# dmesg | grep microcode
到此為止,就是更新處理器微碼的全部步驟。如果一切順利的話,你的 Intel CPU 的韌體將已經是最新的版本了。
相關文章
- 如何在 Linux 上安裝/更新 Intel 微碼韌體LinuxIntel
- 在 Intel NUC 上安裝 LinuxIntelLinux
- 如何在 Linux 上安裝應用程式Linux
- 如何在Mac上設定韌體密碼Mac密碼
- 如何在 Linux 上安裝 JavaLinuxJava
- 如何在Chrome OS上安裝Linux應用程式ChromeLinux
- 如何在 Ubuntu 18.04 上更新韌體Ubuntu
- 如何在 Linux 上使用 dnf 命令安裝軟體包?Linux
- 如何在 VirtualBox 上安裝 Kali LinuxLinux
- 如何在 Rocky Linux 上安裝 Apache Kafka?LinuxApacheKafka
- 如何在 Linux 上安裝 Elasticsearch 和 KibanaLinuxElasticsearch
- 如何在 Linux 上安裝 MariaDB 或 MySQLLinuxMySql
- 如何在 Ubuntu Linux 上安裝 IntelliJ IDEAUbuntuLinuxIntelliJIdea
- 如何在 Linux 上安裝/解除安裝一個檔案中列出的軟體包?Linux
- 如何在ubuntu[linux] 上用docker安裝SqlserverUbuntuLinuxDockerSQLServer
- 教你如何在 Linux 系統上安裝 JavaLinuxJava
- 如何在 Ubuntu 和其他 Linux 上安裝 NetbeansUbuntuLinuxBean
- 如何在 Kali Linux 上安裝 SSH 服務Linux
- 如何在LInux上安裝並執行JenkinsLinuxJenkins
- 看黑客如何在5分鐘內在筆記本上安裝一個韌體後門黑客筆記
- 如何在Ubuntu 16.10上安裝ResourceSpace程式Ubuntu
- 如何在 Linux 中安裝微軟的 .NET Core SDKLinux微軟
- 如何在 Linux 上安裝並啟用 Flatpak 支援?Linux
- 如何在 Linux 上使用 snap 安裝 Spotify(聲破天)Linux
- 如何在Ubuntu 22.04上安裝Linux 核心 詳細教程!UbuntuLinux
- 如何在 GNU Linux 上透過 Nvm 安裝 Node 和 Npm?LinuxNPM
- 如何在 Fedora 30 Server 上安裝 LEMP(Linux、Nginx、MariaDB、PHP)ServerLinuxNginxPHP
- 如何在LibreELEC上安裝Entware?
- 如何在 Ubuntu 上安裝 VirtualBoxUbuntu
- 如何在 Ubuntu 上安裝 MongoDBUbuntuMongoDB
- 如何在 MacOS 上安裝 KibanaMac
- 如何在 MacOS 上安裝 ElasticsearchMacElasticsearch
- 如何在Windows上安裝DockerWindowsDocker
- 如何在Linux上安裝一個開源VPN伺服器Linux伺服器
- 如何在 Arch Linux 上安裝和設定 KDE 桌面環境?Linux
- 如何在Linux中安裝Ncurses庫Linux
- 如何在Linux 中安裝 Python 3.10LinuxPython
- linux 上安裝kapacitorLinux