IMX6ULL 使用SD卡启动,未烧写根文件系统rootfs.tar.bz2,仍然可以启动,原因是什么?

IMX6ULL 使用SD卡启动,烧写了uboot ,内核, 设备树,未烧写根文件系统rootfs.tar.bz2,仍然可以启动,启动后系统内文件和emmc下一模一样。但此时确实是用的sd卡启动(从uboot的编译时间判断)。原因是什么?

image
从打印信息来看,还是用的emmc启动。但我的拨板开关已经调到sd卡启动了啊?

image

原因是你没有修改 u-boot 文件;

u-boot 默认是引导 emmc 中的文件启动的;
你只要把 emmc 中的 /boot 目录下的 zImage 和 dtb 文件删除实验一下就行了;

从 SD 卡启动的方法:

# 在 uboot 命令行处重新配置环境变量
setenv mmcargs setenv bootargs console=${console},${baudrate} root=/dev/mmcblk0p2 rootwait rw
setenv mmcdev 0
# 启动
boot

针对imx6ull pro,最终完成了SD卡启动。这里记录一下需要修改的uboot环境变量
声明:SD卡为 mmc 0,设置了两个分区,mmc 0:1存放镜像和设备树(为了和环境变量配合,这两个文件需要放在一个名为boot的文件夹下,即${bootdir}/),mmc 0:2存放根文件目录,如下图:


需要修改的环境变量:

loadfdt=ext2load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${bootdir}/${fdt_file}// 修改为
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${bootdir}/${fdt_file}

loadimage=ext2load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${image}// 修改为
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${image}

mmcdev=1//修改为
mmcdev=0
mmcpart=2//修改为
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw //修改为
mmcroot=/dev/mmcblk0p2 rootwait rw
1 个赞