天天看点

u-boot操作指令之 BOOT 操作命令BOOT 操作命令

u-boot操作指令之 BOOT 操作命令

  • BOOT 操作命令
    • 1、 bootz 命令
    • 2、 bootm 命令
    • 3、 boot 命令

BOOT 操作命令

uboot 的本质工作是引导 Linux,所以 uboot 肯定有相关的 boot(引导)命令来启动 Linux。常

用的跟 boot 有关的命令有: bootz、 bootm 和 boot。

1、 bootz 命令

要启动 Linux,需要先将 Linux 镜像文件拷贝到 DRAM 中,如果使用到设备树的话也需要

将设备树拷贝到 DRAM 中。可以从 EMMC 或者 NAND 等存储设备中将 Linux 镜像和设备树文件拷贝到 DRAM,也可以通过 nfs 或者 tftp 将 Linux 镜像文件和设备树文件下载到 DRAM 中。不管用那种方法,只要能将 Linux 镜像和设备树文件存到 DRAM 中就行,然后使用 bootz 命令

来启动, bootz 命令用于启动 zImage 镜像文件, bootz 命令格式如下:

命令 bootz 有三个参数, addr 是 Linux 镜像文件在 DRAM 中的位置, initrd 是 initrd 文件在

DRAM 中的地址,如果不使用 initrd 的话使用‘-’代替即可, fdt 就是设备树文件在 DRAM 中

的地址。

u-boot操作指令之 BOOT 操作命令BOOT 操作命令

载 Linux 镜像文件和设备树都准备好了,我们先学习如何通过网络启动 Linux,使用 tftp

命令将 zImage 下载到 DRAM 的 0X80800000 地址处,然后将设备树imx6ull-14x14-emmc-7-800x480-c.dtb下载到 DRAM 中的 0X83000000 地址处,最后之后命令 bootz 启动,命令如下:

tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-emmc-7-800x480-c.dtb
bootz 80800000 – 83000000
           
u-boot操作指令之 BOOT 操作命令BOOT 操作命令

2、 bootm 命令

bootm 和 bootz 功能类似,但是 bootm 用于启动 uImage 镜像文件。如果不使用设备树的话

启动 Linux 内核的命令如下:

bootm addr
           

addr 是 uImage 镜像在 DRAM 中的首地址。如果要使用设备树,那么 bootm 命令和 bootz 一样,命令格式如下:

其中 addr 是 uImage 在 DRAM 中的首地址, initrd 是 initrd 的地址, fdt 是设备树(.dtb)文件

在 DRAM 中的首地址,如果 initrd 为空的话,同样是用“-”来替代。

3、 boot 命令

boot 命令也是用来启动 Linux 系统的,只是 boot 会读取环境变量 bootcmd 来启动 Linux 系

统, bootcmd 是一个很重要的环境变量!其名字分为“boot”和“cmd”,也就是“引导”和“命

令”,说明这个环境变量保存着引导命令,其实就是启动的命令集合,具体的引导命令内容是可

以修改的。比如我们要想使用 tftp 命令从网络启动 Linux 那么就可以设置 bootcmd 为“tftp

80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000”,然后使

用 saveenv 将 bootcmd 保存起来。然后直接输入 boot 命令即可从网络启动 Linux 系统,命令如

下:

setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz
80800000 - 83000000'
saveenv
boot
           
u-boot操作指令之 BOOT 操作命令BOOT 操作命令

前面说过 uboot 倒计时结束以后就会启动 Linux 系统,其实就是执行的 bootcmd 中的启动

命令。只要不修改 bootcmd 中的内容,以后每次开机 uboot 倒计时结束以后都会使用 tftp 命令从网络下载 zImage 和 imx6ull-alientek-emmc.dtb,然后启动 Linux。