Boot

如何在 x86 IBM-PC 中安裝 Das U-Boot legacy boot?

  • October 20, 2021

Das U-Boot既是第一階段也是第二階段引導載入程序,作為 IBM-PC 中的 FSBL,它必須適合第一扇區中 MBR 之前的前446 個字節(或更少)。

還有一個 1.5 階段的引導載入程序,它使用 FSBL 程式碼從磁碟讀取 31,744 字節並跳轉到它(扇區 1 到 62,因為 DOS 兼容的第一個分區可以從扇區 63 開始)。我相信U-Boot不是這樣的。

我不是在尋找 UEFI 也不是 kexec,我寧願如果它不需要 coreboot 或其他引導載入程式碼,我已經讀過它是可能的,但沒有人明確說明如何。

我應該使用哪個配置?Chromebook Link 還是 Edison?它會生成一個 446 字節的塊來放入 MBR 嗎?我應該在扇區 1 到 62 中放一些東西嗎?我相信它不適合 1.5 階段,如何在磁碟中找到其餘部分?

雖然 U-Boot 支持 x86硬體,但它不包括對 x86 BIOS韌體的支持。

因此,在傳統 x86 PC 上使用 U-Boot 的第一步是用您自己的自定義韌體替換 BIOS,其中包括 U-Boot 的第一階段。

完成此操作後,舊的 BIOS 引導約定(例如從第一個硬碟的塊 #0 載入 446 字節引導程式碼)將不再適用,而將使用 U-Boot 的約定。

當然,更換 BIOS 要求您的自定義韌體首先必須能夠處理系統晶片組的初始化,以及在冷啟動後測試和啟用 RAM。在 PC 硬體上,這可能是比您預期的更大的挑戰,因為晶片組程式文件可能並不容易適用於所有 PC 晶片組。

U-Boot 不是 BIOS 兼容的引導載入程序,也不是 BIOS 的簡單替代品;當它的文件說它支持 x86 時,這只意味著 U-Boot 可以很容易地與在定制硬體上使用 x86 處理器的硬體項目集成。

看起來您可能將 GRUB Legacy(第一階段、第二階段、階段 1.5)的特定術語與引導載入程序的更通用的系統設計術語混淆了。

在系統設計意義上,在以執行 Linux 為目標的傳統 x86 PC 上,BIOS是第一階段引導載入程序:它被安排在 ROM(或快閃記憶體 EEPROM)中,作為處理器在冷復位後首先執行的操作, 它的工作是初始化必要的硬體並從一個固定的或其他明確定義的位置載入一個相對緊湊的程序。

在系統設計意義上,整個 GRUB 將是一個第二階段的引導載入程序。GRUB Legacy 也分為稱為“階段”的組件,但這些只是 GRUB 的內部劃分,旨在解決遺留 BIOS 限制;GRUB 階段與系統設計第一/第二階段引導載入程序術語不同。

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