![如何在 x86 IBM-PC 中安装 Das U-Boot 传统启动?](https://linux22.com/image/191920/%E5%A6%82%E4%BD%95%E5%9C%A8%20x86%20IBM-PC%20%E4%B8%AD%E5%AE%89%E8%A3%85%20Das%20U-Boot%20%E4%BC%A0%E7%BB%9F%E5%90%AF%E5%8A%A8%EF%BC%9F.png)
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 阶段与系统设计不同第一/第二阶段引导加载程序术语。