
1、工具
所需命令位于allbins/tools/mtd-utils和allbins/tools/squashfskit下，将这两个目录添加到PATH环境变量里。

2、squashfs文件系统
只读文件系统使用squashfs文件系统，在nandflash上会进行ubinize

使用rootfs_mksqushfs_demo.sh打包，第一个参数是输出文件，第二个参数是打包的目录，第三个参数是卷名，第四个参数为ubi参数，注意要用双引号
./rootfs_mksqushfs_demo.sh  ap_oem.img  oemfs oem "-m 0x1000 -p 0x40000 -s 0x1000 -Q 1024"
会生成ap_oem.img文件

挂载：
通过cat /proc/mtd查询oem分区编号，假定分区编号是12，ubiattach后ubi设备是ubi2，挂载点是/mnt/oem
ubiattach /dev/ubi_ctrl -m 12
ubiblock -c /dev/ubi2_0
mount  -t squashfs  -o ro  /dev/ubilbock2_0   /mnt/oem
或者使用板侧的ubi_mount.sh脚本挂载，脚本会自动查询分区名和ubi设备号
第一个参数是挂载点，第二个参数是mtd分区名，第三个参数为ubi卷名，第四个参数是文件系统类型
/sbin/ubi_mount.sh  /mnt/oem     oem      vol_oem     squashfs


3、ubifs文件系统
ubifs用于可写分区，使用ubinize-cfg.sh打包，下面以oemdata为例

创建一个oemdata.cfg，内容如下：
[vol_oemdata]
mode=ubi
vol_id=1
vol_size=1MiB
vol_type=dynamic
vol_name=vol_oemdata
vol_flags=autoresize

使用ubinize-cfg.sh脚本，第一个参数为输出文件，第二个参数为cfg文件，第三个参数为ubi参数，注意要用双引号
./ubinize-cfg.sh ap_oemdata.img  oemdata.cfg  "-m 0x800 -p 0x20000 -s 0x800 -Q 1024"
会生成ap_oemdata.img文件

挂载：
通过cat /proc/mtd查询oem分区编号，假定分区编号是13，ubiattach后ubi设备是ubi3，挂载点是/mnt/oemdata
ubiattach /dev/ubi_ctrl -m 13
mount  -t  ubifs -o rw,noatime  ubi3_0   /mnt/oemdata
或者使用板侧的ubi_mount.sh脚本挂载，脚本会自动查询分区名和ubi设备号
第一个参数是挂载点，第二个参数是mtd分区名，第三个参数为ubi卷名，第四个参数是文件系统类型，可以不输入，默认是ubifs
/sbin/ubi_mount.sh  /mnt/oemdata     oemdata      vol_oemdata

ubifs默认挂载参数是rw,noatime,如果要修改挂载选项，使用UBI_MNT_OPT环境变量
export UBI_MNT_OPT=rw,noatime,sync
/sbin/ubi_mount.sh  /mnt/oemdata     oemdata      vol_oemdata

4、ab系统判断
调用ab_bootinfo命令，命令返回1是系统a，命令返回2是系统b。
ab_bootinfo
if [ $? -eq 1 ]; then
  /sbin/ubi_mount.sh  /mnt/oem     oem      vol_oem     squashfs
else
  /sbin/ubi_mount.sh  /mnt/oem     oem2     vol_oem     squashfs
fi


