Bios

Libre Coreboot 有效載荷?

  • December 14, 2013

如果希望建構一個盡可能去斑點自由的x86伺服器或工作站,那麼此時最好的方法是使用完全免費的 GNU/Linux 發行版之一(gNewSense、Trisquel 等) BIOS 韌體的作業系統和Coreboot。或者我是這麼想的,直到我讀到這句話

在這一點上,Google Chromebook 是唯一預設提供 Coreboot 的商用電腦(雖然是 blobbed,因為英特爾不想發布其微程式碼的原始碼)。這並不理想,我知道,但如果你想使用最新的硬體,沒有更好的選擇(也許我們應該眾籌 Coreboot-libre 的衍生產品,它將主要專注於為 Chromebook 設備提供完全自由的 BIOS 映像,比如 Replicant )。

顯然,就像有非完全免費的 GNU/Linux 發行版一樣,顯然也有非完全免費的 Coreboot有效負載。在這一點上,我應該承認我對 Coreboot 的了解很少。

我想知道:

  1. 選擇主機板時,如何確定哪些負載兼容(反之亦然)?
  2. 完成此操作後,我如何判斷哪些有效載荷是完全自由的?
  3. 我是否在上述任何地方抓住了錯誤的一端?

有效負載通常是獨立於硬體的(但可能存在潛伏的錯誤)。就軟體自由而言,有效負載通常不是問題。

您可以根據需要選擇它們:如果您想啟動“普通”PC 作業系統,SeaBIOS 是最簡單的方法,因為它實現了他們都期望的介面。如果您有任何特殊需求,其他有效負載可能更接近您的需求,或者您可以建構自己的。

coreboot 本身存在兩個“自由”問題:

  1. 英特爾在免費韌體領域不合作。Google通過從英特爾的程式碼創建一個獨立的二進製文件,然後讓 coreboot 使用它來解決這個問題。英特爾現在也效仿並自己提供了這樣的二進製文件(請參閱http://www.intel.com/fsp)。上面的引用具有誤導性:問題不是微碼,而是用於 RAM 初始化的 x86 二進製文件和用於管理引擎的韌體,沒有它,系統實際上無法正常執行,除非採用硬體破解(這會降低電源管理功能)。
  2. 硬體需要各種額外的程式碼或數據進行初始化。這可以是 CPU 的微碼更新;其他微控制器的韌體,其中一些目前已集成在晶片組中;板特定資訊的表格,如校準數據。

您可以繞過其中一些二進製文件,系統將繼續啟動(例如,一些 CPU 微碼更新);對於其他人來說,缺席將導致功能減少,例如沒有 XHCI 韌體的 AMD 晶片組上沒有 XHCI(以及 USB3);如果遺漏一些二進製文件會導致系統無法啟動,例如 Intel 晶片組上的管理引擎或某些 CPU 上的 CPU 微碼更新,它們帶有錯誤的微碼,甚至無法通過引導過程。

coreboot 有一個“blob”儲存庫來將這些東西分開,但由於歷史原因,微碼和其他一些次要二進製文件駐留在主記憶體儲庫中。有計劃改變這一點,目前在http://www.coreboot.org/pipermail/coreboot/2013-December/076822.html進行了討論。

但是,可能的結果是您將被迫使用 blobs 儲存庫來獲得可用的建構,因為其中一些二進製文件在當今的硬體上確實是必需的。

我發現 AMD 更加合作,並且他們的二進製文件對系統的干擾比英特爾所做的要小(除了微碼更新,它們通常是未簽名的,所以如果有足夠的時間,它們可以被逆向工程——但不要等待它)。但他們離 Trisquel 等人所倡導的理想還有很遠的距離。

引用自:https://unix.stackexchange.com/questions/104956