新塘linux启动过程,NUC972调试笔记之NAND分区调整新增

新增需求如下:

1.增加 tmpfs 文件系统格式的 /var 分区,大小2M

2.新增 ubi分区,/data,大小30M

1.通过boot分区,如下所示:

原始分区结构如下:

可以看到原始分区一个以mtd=1作为root的ubi0:rootfs分区作为root rootfs大小是0x7900000,以偏移0x700000开始计算。

074d1bd2eba02eb5385de29998bd05e6.png

做如下分区修改:

新增一个以mtd=2作为data的ubi1:data分区作为data data大小是0x1E00000,以偏移0x6200000开始,这里注意下原先的rootfs分区大小变化了,这是因为该nand总共大小只有128M,因此若需要新增一个分区大小30M的,就必须把原先的rootfs减小了。可见现在rootfs分区大小为0x5B00000,以同样以偏移0x700000开始计算。

a5ba7c1f6a11e9f9878e2aa0ecc71cca.png

以上只是把nand进行mtd分区了,因此在开机log中和开机后可以做如下查看:

03bc7854d99093b513ebc1da479eae87.png

9e954dba06f990dbc700329e6f5c2e95.png

开始进行ubifs格式分区挂载:

ubiattach /dev/ubi_ctrl -m 2

ubimkvol /dev/ubi1 -N data -s 27262976

mount -t ubifs ubi1_0 /data

ps:粗略解释下上述命令含义,详情可参考后附参考众链接。

ubiattach /dev/ubi_ctrl -m 2 : -m 2 就是使用mtd=2的分区

ubimkvol /dev/ubi1 -N data -s 27262976 : 创建ubi1设备名叫data,大小是27262976

mount -t ubifs ubi1_0 /data : 将ubifs格式的ubi1_0设备挂载到data

这里注意几点:分区大小要和配置的uboot环境变量大小以及制作的文件系统大小相等,切不可文件系统大小大于分区大小。

ubifs文件系统制作时候的命令可参考如下:

#这里需要注意-c选项的参数,这里480意为60M(60M=480=60*1024/128=480)

mkfs.ubifs -F -x lzo -m 2048 -e 126976 -c 480 -o rootfs_ubifs.img -d ./rootfs #60M

#这里rootfs_ubinize.cfg文件是ubinize命令所需的参数之一,意为rootfs分区的配置文件用来生成ubi文件系统镜像,详情如后:

ubinize -o ubi_ln.img -m 2048 -p 131072 -O 2048 -s 2048 rootfs_ubinize.cfg

94189bb103c2d4fed6e0a2fdd5cea809.png

dc9b5b3df268de9a0cd5f7c7637ac73d.png

这里的vol_size需要注意是size,很多网文说可以直接写xxM,如 vol_size=60M,这里实测是不行的必须换算成size,即60M=62914560=6010241024

挂载完成:

可用mount 和 df -h 查看如下:

cddfa29dfdc4869e2033ca7ac721fef3.png

9e863d99951c30490081aa2242e622d4.png

这里另附下tmpfs分区的新增,如下所示:

/bin/mount tmpfs /var -t tmpfs -o size=2M

最终效果如下:

1c20922319cbf0256c948f722d9b2f04.png

这里说明下:实际分出来的data是30M,好像看网上说ubi实际好像会小点,这里有明白的大佬望不吝赐教。

参考资料:

1.【Linux】【驱动】MTD分区表信息解析方法分析

2.u-boot中添加mtdparts支持以及Linux的分区设置

3.u-boot中nand相关命令使用---- ubi, ubifsls, ubifsmount, ubifsumount

4.NUC972 MTD分区详解(UBI error: vtbl_check: too large reserved_pebs 824, good PEBs 512 错误分析)

5.UBI分区挂载

6.UBIFS分区挂载

7.挂载ubifs文件系统分区

8.UBI error: ubi_create_volume: cannot create volume 1, error -28

9.Ubifs文件系统和mkfs.ubifs以及ubinize工具的用法

10.Linux下的tmpfs文件系统(/dev/shm)

11.【Linux】tmpfs简介及增加方式

12.[AndroidO] [RK3399] – Rockchip 平台 parameter.txt 文件详解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值