跳到主要内容

U-Boot 镜像格式与启动命令对照

启动命令必须与镜像格式匹配。初学阶段很多错误都来自把 ImagezImageuImage、FIT image 混用。

镜像常见文件名常见平台启动命令
ARM64 raw kernelImageARM64booti
ARM compressed kernelzImage32-bit ARMbootz
legacy U-Boot imageuImage多平台旧系统bootm
FIT image.itb产品化系统bootm
EFI application*.efiUEFI 启动bootefi
boot scriptboot.scrU-Boot scriptsource

ARM64 不使用 initramfs:

# [U-Boot]
booti ${kernel_addr_r} - ${fdt_addr_r}

ARM64 使用 initramfs:

# [U-Boot]
booti ${kernel_addr_r} ${ramdisk_addr_r}:${ramdisk_size} ${fdt_addr_r}

FIT:

# [U-Boot]
bootm ${fit_addr}

legacy uImage

# [U-Boot]
bootm ${kernel_addr_r}

boot script:

# [U-Boot]
load mmc 0:1 ${scriptaddr} /boot/boot.scr
source ${scriptaddr}

指定 FIT 配置:

# [U-Boot]
bootm ${fit_addr}#conf-name
注意

不要只根据文件名判断格式。必要时使用 filemkimage -ldumpimage -l 或 U-Boot 启动命令的错误信息确认。

主机侧查看命令

# [Host]
file Image uImage fit.itb boot.scr
mkimage -l fit.itb
mkimage -l boot.scr
dumpimage -l fit.itb