把 U-Boot 从 QEMU 迁移到开发板
QEMU 教会你通用启动模型,但开发板会引入真实硬件细节。本章帮助你把 QEMU 中学到的知识迁移过去,同时避免把模拟环境的假设误当成硬件事实。
最容易踩的坑是:把 QEMU 中“被简化掉的东西”误认为真 实硬件也不存在。QEMU 让你专注学习 U-Boot proper,而开发板还要面对 Boot ROM、SPL、DDR、pinmux、电源和固件打包。
1. 哪些知识可以迁移
可以直接迁移的能力包括:
- 阅读 U-Boot 启动日志。
- 使用
help、version、bdinfo、printenv。 - 理解地址变量和加载流程。
- 手动加载 kernel、DTB、initramfs。
- 设置
bootargs。 - 拆分启动脚本。
- 使用 Standard Boot 排查启动项。
这些能力是通用的。
2. 哪些经验不能照搬
不能直接照搬:
- QEMU 的 DRAM 起始地址。
-bios u-boot.bin的加载方式。virtio 0:1设备编号。console=ttyAMA0。/dev/vda2rootfs。- QEMU 用户网络的
10.0.2.2。 - QEMU 自动生成或传入设备树的方式。
这些都是平台相关事实,换到开发板必须重新确认。