Firefly开源社区

打印 上一主题 下一主题

[Linux] 制作工厂烧录固件,定制userdata分区问题

23

积分

0

威望

0

贡献

技术小白

积分
23

制作工厂烧录固件,定制userdata分区问题

发表于 2022-2-21 20:25:07      浏览:4198 | 回复:9        打印     [复制链接] 楼主
我的应用案例,需要制作工厂烧录固件时,在userdata分区预置一些 私有数据。并且userdata分区要尽可能大

使用了以下2个方式尝试:

1、方式1生成userdata.img
修改了firefly-rk3399-ubuntu.mk
#userdata config
export RK_USERDATA_DIR=userdata_normal
并在userdata_normal目录下放入私有数据

执行./build.sh后,在rockdev下看到了生成的userdata.img

但烧录rockdev/pack下的生成固件后,userdata分区数据下没有看到 我放的私有数据
然后,通过AndroidTool_Release_v2.71单独升级userdata.img后,可以看到userdata分区数据是更新了,但是分区大小不对,没有根据内存大小自动设置。

对于userdata是最后一个分区的情况,但如何生成userdata.img?

2、通过 ff_export_rootfs 导出系统rootfs
   导出rootfs(生成的rootfs中包含了userdata分区的数据)后,通过./build.sh生成新的固件。
   升级后,查看私有数据确实放到了userdata分区。

   但root-ro分区空间大小不对,有几个GB的空间浪费。
   (由于在导出rootfs时,rootfs文件中 包含了userdata分区的数据。因此rootfs文件大小比实际的root-ro更大,最终打包固件时,分区表是根据rootfs文件大小分配rootfs分区的大小。)
================================================
   有谁能告诉一下,该如何解决这个问题?
回复

使用道具 举报

23

积分

0

威望

0

贡献

技术小白

积分
23
发表于 2022-3-7 16:02:52      沙发
895816513 发表于 2022-3-7 15:00
对你的以上方法进行回复:
1.你修改了userdata.img是不可行的
系统上写后,第一次上电会userdata进行格式 ...

你好,可能我没有讲清

我主要的问题是,root-ro的分区有空间浪费。如下:
--------------------------------------------------------------------------------
root@coshipG2000:~# df -h
Filesystem              Size  Used      Avail Use% Mounted on
udev                       1.9G     0        1.9G   0% /dev
tmpfs                      385M  748K  384M  1% /run
/dev/mmcblk1p7   10G     6.6G   3.0G    70% /root-ro
/dev/mmcblk1p8   19G     2.2G   17G     12% /userdata
overlayroot            19G      2.2G   17G    12% /
tmpfs                      1.9G     0        1.9G   0% /dev/shm
tmpfs                      5.0M    4.0K   5.0M  1% /run/lock
tmpfs                      1.9G     0        1.9G   0% /sys/fs/cgroup
tmpfs                      385M     0      385M 0% /run/user/0
---------------------------------------------------------------------------------

root-ro是只读的。对于我来说,意味着,32个G的内存,我有3个G的浪费!!!

然后,我跟踪了一下原因,发现是 在执行ff_export_rootfs时,root-ro这个分区的空间大小,是根据导出的roofs大小生成的。
而,通过ff_export_rootfs导出的rootfs,包含了userdata的数据。最终烧下去后,root-ro中,就有了3个G的没有使用的空间。请帮忙看下,怎样解决我的问题,谢谢!
回复

使用道具 举报

23

积分

0

威望

0

贡献

技术小白

积分
23
发表于 2022-3-8 16:21:05      板凳
895816513 发表于 2022-3-7 17:39
e2fsck -p -f linuxroot.img
resize2fs  -M linuxroot.img

好的,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表