启明云端分享|SSD20X 如何使用SD卡根文件系统

提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考。同时也用心整理了乐鑫及星宸科技的新产品、新方案的主要特点及应用!希望你能第一时间了解并快速用上好的方案和产品!


前言

在这里插入图片描述

SSD20X平台下,我们使用spi-nand/spi-nor Flash作为启动盘,容量一般为128/256/512MB。如果我们的文件系统大小超出了Flash的容量,将遇到困难,一个场景是我们想要在SSD20X上运行较完备ubuntu系统(后面我们会介绍如何在SSD20X上运行它)。而SD卡的容量足够大(以GB为单位),可以解决Flash容量限制问题。

大概的做法是将uboot和kernel放置在flash中,然后把我们较大的根文件系统放置在SD卡里面。之所以不能把uboot和kernel也放置在SD卡里,是因为SSD20X仅支持从spi-flash启动,让kernel起来后再挂载SD卡中的文件系统,这也意味着,我们可以使用容量更小的Flash,16MB也足够了。


一、制作SD卡文件系统

我们需要先准备一个文件系统:


> # mkdir sd_rootfs
> 
> # cd sd_rootfs
> 
> # cp ../project/image/output/rootfs/* ./ -rf
> 
> # cp ../project/image/output/customer/ . -rf
> 
> # cp ../project/image/output/appconfigs/ . -rf
> 
> # cp ../project/image/output/miservice/config/ . -rf
> 
> # tar -cvf rootfs.tar ./*

编写一个脚本,实现一键制作完成:

# touch make_sd_rootfs.sh

#!/bin/sh

PWD=$(pwd)

images_dir=${PWD}/images_for_mksdcard

if [ "$1" == "" ]; then

echo "!!!!!!!!!!!! usage: sudo ./make_sd_rootfs.sh /dev/sdb !!!!!!!!!!!"

exit 0

fi

sfdisk ${1}

mkfs.ext3 -F -j ${1}1

mkdir tmp_rootfs

mount -t ext3 ${1}1 tmp_rootfs

tar -xvf ./rootfs.tar -C tmp_rootfs

umount tmp_rootfs

rm -rf tmp_rootfs

# chmod a+x make_sd_rootfs.sh

把SD卡接入到ubuntu中,假设SD卡被识别为/dev/sdb,则执行:

# sudo ./make_sd_rootfs.sh /dev/sdb

等待制作完成。
在这里插入图片描述
本地验证:

# sudo mount /dev/sdb1 /mnt

# sudo umount /mnt

在这里插入图片描述
制作完成,将SD卡取出并插入入到开发板的SD卡座上。


二、KERNEL支持EXT2/3/4

需要确保kernel支持EXT2/3/4:

# ARCH=arm make menuconfig

File systems  --->

<*> The Extended 3 (ext3) filesystem

如果没有支持,需重新配置并更新kernel。


三、设置bootargs

重新设置bootargs,使root指向SD卡中的文件系统所在分区,这样kernel起来后会挂载SD卡中的文件系统,并作为根目录:


```bash
SigmaStar # setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rw init=/linuxrc rootwait=1 LX_MEM=0x3f00000 mma_heap=mma_heap_name0,miu=0,sz=0xa00000 mma_memblock_remove=1 highres=off mmap_reserved=fb,miu=0,sz=0x300000,max_start_off=0x3300000,max_end_off=0x3600000 mtdparts=nand0:384k@1280k(IPL0),384k(IPL1),384k(IPL_CUST0),384k(IPL_CUST1),768k(UBOOT0),768k(UBOOT1),256k(ENV),256k(ENV1),0x20000(KEY_CUST),0x60000(LOGO),0x500000(KERNEL),0x500000(RECOVERY),-(UBI)


SigmaStar # saveenv

4、开始使用

重新上电后,可以看到SD卡中的文件系统已经被正确挂载了,并且空间足够大。
在这里插入图片描述

# mount

在这里插入图片描述

# df -h

在这里插入图片描述
这样我们就有更多空间来做更多的事情了。

在开发过程中,你也可以选择7寸彩屏开发板进行开发
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值