arm linux嵌入式sd卡启动 并sd卡作为根文件系统

平时最常使用的时候 系统从nandflash启动  当从sd启动的时候,一般用于程序的烧录   

有时候为了需要 文件系统也要从sd卡启动 也就是说 整个系统 都是从sd卡启动

 一、修改启动参数

这里指的了bootenv是从欧冠uEnv.txt加载 所以文件镜像制作的时候 就要把uEnv.txt放进去 和设备树 imag等放在一起  大包镜像

也就是环境变量  uEnv.txt内容如下:

bootargs=console=ttyO0,115200n8 init=/sbin/init noinitrd root=179:2 rw rootdelay=3 rootfstype=ext4 mem=512M vram=12M
bootcmd=fatload mmc 0 ${fdtaddr} am335x-sbc-.dtb;fatload mmc 0 ${loadaddr} zImage;bootz ${loadaddr} - ${fdtaddr}
uenvcmd=boot

改好的  uEnv.txt  要在SD镜像制作的时候一同拷贝到镜像中,然后直接按照正常方式吧SD卡镜像烧录到SD卡,下一步就是在分区,然后在分区中复制进去文件系统

二、SD卡分区

root    :  指的文件系统  我这里是、dev/mmcblk0p2  或者179:2  这个是自己在lubuntu系统中 用fdisk工具分区的

具体的分区,直接参考:https://blog.csdn.net/yj4231/article/details/8537640

 分出   /dev/sdb2 节点

拔掉SD卡重新插上,就会看到了

ls  /dev/sdb*

 uEnv.txt的rootfstype格式 要和格式化sd卡分区的格式一致

 三、拷贝文件系统到SD卡分区

在电脑分区完成后 ,把文件复制到sd卡的时候 一定要   sudo   cp  rootfs/*  /mnt/   -arf    , 否则就会出错

使用如下命令,拷贝,大约十几秒钟

 接下来就是插上SD卡 ,直接可以启动

原文地址:https://www.cnblogs.com/ChenChangXiong/p/11347044.html