Uboot version:
U-Boot 2017.03 (Jun 03 2020 - 13:12:42 +0800)
uboot 常用的指令:
=> mmc list
FSL_SDHC: 0
FSL_SDHC: 1 (eMMC)
=> ext2ls
ext2ls - list files in a directory (default /)
Usage:
ext2ls <dev[:part]> [directory]
- list files from ‘dev’ on ‘interface’ in a ‘directory’
=> ext2ls mmc 0:2 /
SD 卡中分区是2的地方的根目录, 实际上就是百问网通过buildroot制作的文件系统所在的分区。
=> ext2ls mmc 1:2 /
eMMC中分区是2的地方的根目录, 实际上就是百问网通过buildroot制作的文件系统所在的分区。
在uboot默认的环境参数中, 一直都是优先从emmc中启动的。所以,如果想要从sd卡中启动文件系统, 就需要修改uboot的环境参数:
默认的环境参数如下所示:
mmcdev=1
mmcpart=2
mmcroot=/dev/mmcblk1p2 rootwait rw
如果修改了环境参数想要保存就需要使用saveenv 参数。
从eMMC中启动的时候,无需任何修改, 只需要将正确的镜像文件烧录到开发板的emmc中就行。
从SD 卡中启动的时候, 就需要修改环境参数。
setenv mmcdev 0
setenv mmcroot /dev/mmcblk0p2 rootwait rw
这个时候默认就会从blk0 也就是SD 卡的分区启动文件系统。
如果需要从NFS启动网络文件系统的话就需要使用另外的指令
setenv serverip 192.168.5.11 //设置服务器的IP
setenv ipaddr 192.168.5.9 //设置开发板的IP
setenv netargs setenv bootargs console=tty1 console=ttymxc0,115200 root=/dev/nfs ip=192.168.5.9:192.168.5.1::255.255.255.1 nfsroot=192.168.5.11:/home/book/nfs_rootfs,v3,tcp
run netboot //启动网络根文件系统
这个过程中会遇到一些其他的问题, 可以参考我之前的回复和创建的话题: