You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qemu中ARM Vexpress-A9板U-boot启动报错:FDT和ATAGS未编译

解决U-boot bootz 报错 "FDT and ATAGS support not compiled in"

这个错误的核心原因是你当前使用的U-boot在编译时未启用FDT(扁平设备树)和ATAGS的支持,bootz命令需要这两项功能来向内核传递设备树或启动参数,因此触发错误并导致重置。

具体解决步骤

1. 重新配置U-boot编译选项

进入U-boot源码目录,先加载vexpress-a9的默认配置:

make vexpress_ca9x4_defconfig

打开图形配置界面:

make menuconfig

在菜单中找到以下选项并勾选:

  • Device Tree Control → Enable Device Tree support
  • Boot options → Support for bootz command
  • Boot options → Enable ATAGS support
    注:部分新版本U-boot中,ATAGS选项可能归类在Device Tree Control下,需仔细查找确认

2. 重新编译U-boot

保存配置后,用多线程编译提升速度:

make -j$(nproc)

编译完成后会生成新的u-boot.bin文件。

3. 替换Qemu使用的U-boot镜像

将新编译生成的u-boot.bin替换掉Qemu启动时指定的镜像文件,重新启动Qemu进行测试。

4. 确认bootz命令格式

执行bootz时需遵循正确的参数顺序,比如你已将zImage加载到0x60003000、dtb加载到0x60500000,命令应为:

bootz 0x60003000 - 0x60500000

格式规则:bootz <zImage地址> <initrd地址(无则填-)> <dtb地址>,不要混淆参数顺序。

额外注意事项

  • 检查内核设备树支持:vexpress-a9的内核通常默认支持设备树启动,但如果是自定义编译的内核,需确保启用了CONFIG_OF(Device Tree support)选项。
  • 版本兼容性:虽然已升级至U-boot v2022.01,仍需确保内核版本与U-boot版本匹配,建议使用对应分支的内核以避免兼容性问题。

内容的提问来源于stack exchange,提问作者satish kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:20:14