U-boot boot命令
Uboot 的核心工作是引导 Linux内核,针对不同的内核镜像,Uboot 提供了不同的 boot 指令,如下:
命令 | 描述 | 内核镜像 |
---|---|---|
boot | 读取环境变量 bootcmd 来引导内核镜像 | |
booti | 引导 ARM64 内核镜像 | Image |
bootm | 引导 u-boot自定义的内核镜像 | uImage |
bootz | 引导 ARM 内核镜像 | zImage |
bootefi | 引导 ARM64 压缩内核镜像 | Image.gz |
启动Linux内核之前,首先要将 Linux 内核镜像文件拷贝到 DDR内存 中,如果使用到设备树的话,设备树文件也要加载到内存中。可以从 EMMC 、 NAND 、U盘和硬盘等存储设备中将 Linux 镜像和设备树文件加载到内存中,也可以通过网络 nfs 或者 tftp 将 Linux 镜像文件和设备树文件下载到内存中。不管用那种方法,只要能将 Linux 内核镜像和设备树文件存到内存中就行,然后使用 上面的命令启动镜像文件。
bootm 命令
bootm 命令用来引导 Uboot 自定义的内核镜像 (uImage)。命令格式如下:
bootm addr [initrd[:size]] [fdt]
参数说明:
- addr:kernel Image文件所在的物理内存地址,必选
- [initrd[:size]]:若使用了ramdisk,这个参数表示 initrd文件内存中的地址和大小size。若不指定,使用“-”代替即可
- fdt: 设备树dtb文件在物理内存中的地址,在ARM64中,必选
booti 命令
booti 是 bootm 命令的一个子集,可用于执行位于内存中的ARM64 kernel Image(Image),其格式如下:
booti addr [initrd[:size]] [fdt]
boot 命令
boot 命令也是用来启动 Linux 系统的,只是 boot 会读取环境变量 bootcmd 来启动 Linux 系统.
bootcmd 是一个很重要的环境变量,可以通过setenv/saveenv命令来进行设置,设置成功后,就可以通过boot直接启动系统了。