触觉智能分享|SSD20X 使用SD卡根文件系统

触觉智能 深圳触觉智能科技有限公司



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卡中的文件系统,并作为根目录:

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


开始使用

重新上电后,可以看到SD卡中的文件系统已经被正确挂载了,并且空间足够大。

# mount


# df -h

现在,我们有更多空间来做更多的事情了。


分享

收藏

点赞

在看


X 提交 下一题

查看更多