Das U-Boot 是兩個都第一階段和第二階段引導程序,作為 IBM-PC 中的 FSBL,它必須適合第一階段446字節(或更少)位於第一個扇區的 MBR 之前。
還有一個 1.5 階段引導程序,它使用 FSBL 代碼從磁碟讀取 31,744 位元組並跳到它(扇區 1 到 62,因為 DOS 相容的第一個分割區可以從磁區 63 開始)。我相信U-Boot不是這樣的。
我不是在尋找 UEFI 也不是 kexec,我寧願它不需要 coreboot 或其他引導程式程式碼,我有讀這是可能的,但沒有人說清楚如何。
我應該使用哪個配置? Chromebook Link 還是 Edison?它會產生一個 446 位元組的區塊放入 MBR 中嗎?我應該在扇區 1 到 62 放一些東西嗎?我相信它不適合 1.5 階段,它如何在磁碟中找到其餘部分?
答案1
雖然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 階段與系統設計不同第一/第二階段引導程式術語。