如何從Linux更新BIOS,UEFI或微碼

英特爾XEON E5的模切照片或顯微照片

你知道的 如何更新BIOS 從您的PC? 借助Spectre,Meltdown等漏洞及其在硬件(尤其是CPU)中檢測到的所有變體和其他安全漏洞,您肯定已經讀過很多遍了,其中很多都是通過了解如何更新計算機的BIOS或UEFI來解決的,因為需要對CPU使用的微碼進行更新或補丁,從而改變CPU控制單元的操作方式,因此它不易受到上述威脅的影響。

除了漏洞, 固件可以更新 由於許多其他原因,例如硬件設備的故障,軟件以無法解釋的方式不斷出現錯誤,進行更新以添加一些功能等。 但是正如我所說,由於安全問題在某些情況下非常關鍵,並且與現代微處理器處理某些跳轉,緩存,FPU和推測性執行的方式有關,因此在最近幾個月中,我們聽到這個詞的次數太多了,儘管在其他情況下,它們已在系統的其他部分(例如集成在這些平台中的芯片組或某些安全處理器)中被檢測到...

什麼是固件?

主板的BIOS芯片

我們都非常清楚什麼是硬件(計算機的物理和可觸及的部分,即電子設備)和軟件(不能觸摸的邏輯部分:程序)。 但是在硬件和軟件之間,或更確切地說,在硬件和操作系統的內核之間,還有其他東西: 固件。 固件存在於計算機的所有設備和部件中,從鼠標,光盤驅動器到使用微碼進行操作的GPU和CPU。

那是什麼好吧,你可以這麼說 是代碼,也就是說,軟件,因此是邏輯組件,但這一次它是不可更改的。 它在較低級別上運行,並直接控制電子電路的功能。 該固件在控制器或驅動程序的幫助下,當操作系統的內核命令硬件執行任務時,它將執行該固件。 該程序或代碼已由設備製造商記錄在通常為閃存的存儲器或某種類型的ROM(例如EEPROM)中。

但是本文中最讓我們感興趣的固件之一是 BIOS或UEFI 這是系統的重要組成部分,因為它是非常重要的固件,在設備的啟動和操作過程中具有各種功能。 例如,此代碼負責在啟動過程中激活計算機,檢測有可用操作系統的硬盤驅動器或媒體,執行對組件和外圍設備的其他固件產生干擾的某些檢查,以及在系統啟動時將控制權交給內核開始 ...

為什麼更新它會影響CPU?

CPU針腳

…這與CPU有什麼關係,足夠好了。 原來CPU有 控制單元該控制單元是負責控制微處理器或CPU其餘部分的電路,例如對指令進行解碼並將帶有操作數的數據傳遞到適當的寄存器,然後激活諸如ALU之類的某些功能單元或FPU,並根據正在執行的指令類型對數據執行某些操作。 這些指令又來自當時正在處理的程序或軟件代碼,因為您應該知道,程序由一系列順序指令組成。

可以想像,該控制單元的運行方式是製造商或設計人員創建的。 在某些特定情況下,控制單元可能會進行接線,也就是說,它們通常非常快,但並不十分靈活,因為它們是通過非常特定的電路直接實現的。 另一方面,也存在可編程的電路,也就是說,可以按照一種或多種方式以某種方式工作的“開放”電路。 微碼或固件。 因此,如果我們更改固件或微代碼,則可以製造控制單元,因此CPU可以進行不同的操作或糾正某些錯誤或漏洞。

我不想太技術化,我希望這篇文章能覆蓋盡可能多的人,並且我想說的一切都易於理解...而且在許多機器中,事實證明,此代碼通常集成到 BIOS或UEFI ,儘管有時微代碼可以在每次引導期間由內核更新,將更新或補丁保存在易失性內存(即RAM)中,從而無需更改BIOS / UEFI。

如何從Linux更新BIOS / UEFI?

UEFI ASUS介面

要從Linux或微碼更新BIOS / UEFI,讓我們分解一下 這兩個過程。

在執行微代碼更新之前,擁有一個非常重要的 更新的BIOS / UEFI固件否則可能無法正常工作。 因此,請檢查您的固件供應商的網站,例如Phoenix,Award等,或主板型號的技術支持網站,這些網站通常都包含用於更新這些系統的軟件包。

正如您在上一節有關風險中看到的那樣,更新BIOS / UEFI是一件微妙的事情。 因此,如果您不確定自己在做什麼,我建議您不要這樣做。 如果你想更新 或者您需要它,但是您沒有足夠的知識,請務必諮詢專業人士。 另外,我建議您看一下fwupd,BIOSDisck,Flashrom等項目,它們是非常實用的工具,可以在此過程中為我們提供幫助。

我最喜歡的人之一是 閃存,關於 一個為我們提供工具的包裝 可以識別,讀取,寫入,驗證和擦除閃存芯片。 這不僅用於刷新BIOS / UEFI / CoreBoot,還用於在其他具有可修改固件的設備中修改網卡,GPU等的其他閃存。 它還支持各種操作系統以及各種齒輪和設備以及闆卡的模型。

  • 安裝flashrom軟件包 使用您通常使用的包管理器在分發中進行更改,因為它是最重要分發的存儲庫中的一種工具。
  • 使用 根或sudo,因為要使用它,您需要特權才能變得精緻。
  • 識別固件 我們只需執行以下命令即可使用:
flashrom

  • 我建議你做一個 備份您當前的ROM,以防萬一您發現新的更新無法正常工作並且想要返回。 為了它:
flashrom -r copia_seguridad.bin

  • 是的,我知道 我們有新的ROM 從可靠來源下載的,我們可以使用以下命令進行刷新,例如,如果我們的新更新名為uefi-sm.bin:
flashrom -wv uefi-sm.bin

欲了解更多信息,請參閱手冊 男子閃光.

更新微碼:

要更新我們的CPU的微碼而不用接觸BIOS / UEFI,即在Linux內核中進行簡單的修改,就可以選擇為CPU安裝必要的軟件包。 例如,如果您有現代的AMD CPU,通常情況是 安裝軟件包amd64微碼,對於Intel來說, 英特爾微碼 (如果您使用openSUSE,SUSE,RHEL,CentOS等,則該軟件包稱為 microcode_ctl, 對於Arch intel-ucode或amd-ucode ...),您可以在受信任的網站上找到...(即,如果它是x86機器,如果是ARM或其他機器,請訪問製造商的網站)。 Insisto a pesar de parecer un pesado, no descargues este tipo de paquetes desde fuentes desconocidas, es muy importante. Bien, ahora que ya lo tenemos descargado e instalado, puede que el procedimiento sea diferente en cada distribución y que implique activar algunos paquetes o actualizaciones restringidos como los propietarios…

安裝了這些軟件包,並參考了正確配置的更新的系統設置後,自己的安全更新 如果已檢測到某些嚴重漏洞(例如Spectre,Meltdown等),則安裝操作系統的操作系統將已經包含此類微代碼補丁。

如果需要,可以使用以下方法從發行版中獲取微碼信息:

dmesg | grep microcode

這樣,我們將獲得 微碼詳細信息實際上,如果我們在安裝之前提到的軟件包之前(在安裝之後有必要重新啟動)並在安裝之後執行了此命令,那麼如果已經安裝了可用的更新,我們將看到它向我們顯示了更改。

有時,AMD,英特爾和其他CPU製造商或設計人員會為tarball提供二進制二進製文件,以更新微代碼或固件。 如果您從可靠的地方下載了這些軟件包之一,請遵循發行商提供的說明或查閱自述文件。

更新BIOS之前的危險和提示

回收主板

固件或微碼更新 在大多數情況下,CPU的更新意味著更新由我們擁有的CPU提供程序提供的封閉代碼,封閉的內核驅動程序(二進制Blob)等。 我想澄清一下,因為它的內容和操作方式是未知的,您應該知道這似乎是合乎邏輯的。 原則上,如果您不使用免費硬件,則別無選擇,只能信任您的CPU或主板的製造商或設計者,但是是的,永遠不要從非官方的網站下載微代碼或固件,因為這非常微妙。

實際上不僅 很精緻 出於安全原因,因為您還可能使設備完全無法使用。 即使您是從信譽良好的網站下載固件,在此過程中也可能出問題,例如斷電,這會導致更新安裝和固件完全損壞,這意味著您可能已經在考慮花錢購買一個新的主板。

這就是所謂的術語 hardware語中的磚頭,也就是說,您的硬件就像磚頭一樣,沒有任何實用程序。 因此,我想告訴您要謹慎,如果您決定更新固件或刷新BIOS / EFI,我們將不承擔任何責任。 但是要提防,這並不總是意味著風險,正如我之前告訴您的那樣,不一定總是“觸摸” BIOS / EFI,也有僅在操作系統級別的更新,並不意味著這些風險。 。

希望本教程對您有所幫助,如有任何問題或建議,請不要忘記留下您的 評論...


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   魯本·霍拉西奧·斯佩科尼亞(Ruben Horacio Specogna) 他說:

    您好,早上好,我想在筆記本上安裝xubuntu 14並下載文件,然後進行安裝,但是當它要求從usb密鑰重新啟動時,我輸入了BIOS並在引導菜單中找不到閃存,有人可以提供幫助我,非常感謝您。

  2.   何塞·路易斯·馬特奧 他說:

    朋友你好:

    在我看來,這篇文章對我們中那些比較新手和更害怕的人來說,雖然是“危險的”,但卻是極好的。

    很久以來,我一直在錯過一篇好文章,這使我們了解像我的多功能打印機系統(佳能MG 7150)如何在Wifi上工作。

    對於Linux,我從未充分發揮作用。 我設法通過USB連接打印機,但無法通過WLAN或電纜連接掃描儀。

    這就是為什麼今天我提出這個話題,同時也感謝你向我們提供了與目前一樣高質量的文章; 但與此同時,我希望知道這一點的人能夠使我們更輕鬆地使上述系統正常工作。

    謝謝和親切的問候

  3.   加布里埃爾 他說:

    首先在BIOS中查看是否有MULTIBOOT選項(必須在其中激活),如果沒有,則存在,通常在打開PC時要通過USB引導,您必須按住F8鍵一段時間(在在其他PC上通常是F12),然後會跳出引導菜單,顯示以下選項:硬盤,CD,USB。 如果具有UEFI,則必須使用UEFI選項生成USB,否則無法識別。