bootargs
bootargs 保存着 uboot 传递给 Linux 内核的参数。
bootargs 环境变量设置:
EMMC 启动:setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
参数 | 含义 |
---|---|
console=ttymxc0 | 设置 linux 终端,串口 1 的设备文件是/dev/ttymxc0 |
115200 | 设置串口的波特率 |
root=/dev/mmcblk1p2 | 根文件系统存放在 mmcblk1 设备的分区 2 ,即EMMC 的分区 2 。/dev/mmcblkx(x=0~n) 表示 mmc 设备,而/dev/mmcblkxpy(x=0~n,y=1~n) 表示 mmc 设备 x 的分区 y |
rootwait | 表示等待 mmc 设备初始化完成以后再挂载,否则的话 mmc 设备还没初始化完成就挂载根文件系统会出错的。 |
rw | 表示根文件系统是可以读写的,不加 rw 的话可能无法在根文件系统中进行写操作,只能进行读操作。 |
网络启动:
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.137.18:/home/pjw/linux/nfs/rootfs,proto=tcp rw ip=192.168.137.20:192.168.137.18:192.168.1.1:255.255.255.0::eth0:off'
参数 | 含义 |
---|---|
console=ttymxc0 | 设置 linux 终端,串口 1 的设备文件是/dev/ttymxc0 |
115200 | 设置串口的波特率 |
root=/dev/nfs | 根文件系统存放在 nfs 挂载目录 |
nfsroot=192.168.137.18:/home/pjw/linux/nfs/rootfs | 服务器 IP 地址:根文件系统存放路径 |
proto=tcp rw | 使用 TCP 协议 |
rw | 表示挂载的根文件系统是可以读写的 |
ip=192.168.137.20 | 客户端 IP 地址 |
192.168.137.18:192.168.1.1:255.255.255.0 | 服务器 IP 地址,网关地址,子网掩码 |
eth0 | 设备名 |
off | 自动配置,一般不使用,所以设置为 off。 |
bootcmd
bootcmd 保存着 uboot 默认命令。
bootcmd 环境变量设置:
EMMC 启动:setenv bootcmd 'mmc dev 1; fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000;'
网络启动:setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000;'
参数 | 含义 |
---|---|
mmc dev 1 | 切换到 EMMC |
fatload mmc 1:1 0x80800000 zImage | 读取 zImage 到 0x80800000 处 |
fatload mmc 1:1 0x83000000 imx6ull-14x14-evk.dtb | 读取设备树到 0x83000000 处 |
bootz 0x80800000 - 0x83000000 | 启动 Linux |
从 EMMC 启动根文件系统:
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
saveenv
从网络启动根文件系统:
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.137.18:/home/pjw/linux/nfs/rootfs,proto=tcp rw ip=192.168.137.20:192.168.137.18:192.168.1.1:255.255.255.0::eth0:off'
saveenv
从 EMMC 启动 Linux 系统:
ls mmc 1:1 //检查一下 EMMC 的分区 1 中有没有 zImage 文件和设备树文件
setenv bootcmd 'mmc dev 1; fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000;'
saveenv
从网络启动 Linux 系统(使用TFTP文件夹中的镜像文件 zImage 和设备树):
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000'
saveenv