RK3576-Debian12删除userdata分区

删除userdata分区将剩余的空间全部分配给根目录

说明

目前的Debian分区如下:

bash 复制代码
$ df -h
文件系统        大小  已用  可用 已用% 挂载点
/dev/root        14G  3.7G  9.5G   28% /
devtmpfs        1.9G  8.0K  1.9G    1% /dev
tmpfs           2.0G     0  2.0G    0% /dev/shm
tmpfs           780M  2.1M  778M    1% /run
tmpfs           5.0M   16K  5.0M    1% /run/lock
/dev/mmcblk0p7  104M   12M   84M   13% /oem
/dev/mmcblk0p8   42G  412K   40G    1% /userdata
tmpfs           390M   36K  390M    1% /run/user/1000
tmpfs           390M   28K  390M    1% /run/user/1001

系统在启动的时候,会自动运行 /etc/init.d/resize-disk.sh -> /usr/bin/resize-helper​ 自动扩展分区。

目前的 userdata 分区的容量太大了,导致用户在使用的时候根目录很容易爆满,所以想着删掉 userdata 分区,把所有的容量都给根目录。

目前的各个镜像烧录的分区是这样的:

我们发现 userdata/​ 这个镜像区,是在最后的,所以使用 /etc/init.d/resize-disk.sh -> /usr/bin/resize-helper​ 自动扩展分区时,会自动的给最后的空间扩容,因为无法转换跨区扩容。

SDK修改

parameter.txt

修改 build/3576L6/device/rockchip/.chips/rk3576/parameter.txt​ 中 CMDLINE​ 的参数:

bash 复制代码
# 原本的参数
CMDLINE: 
mtdparts=:0x00002000@0x00004000(uboot),
0x00002000@0x00006000(misc),
0x00020000@0x00008000(boot),
0x00040000@0x00028000(recovery),
0x00010000@0x00068000(backup),
0x01c00000@0x00078000(rootfs),
0x00040000@0x01c78000(oem),-@0x01cb8000(userdata:grow)

# 修改后的参数
CMDLINE: 
mtdparts=:0x00002000@0x00004000(uboot),
0x00002000@0x00006000(misc),
0x00020000@0x00008000(boot),
0x00040000@0x00028000(recovery),
0x00010000@0x00068000(backup),
0x00040000@0x00078000(oem),-@0x000B8000(rootfs:grow)

修改点说明:

  • 将分区的顺序进行了调整,将rootfs 放置在了最后
  • 删除了 userdata 这个参数

rkflash.sh

修改 build/3576L6/device/rockchip/common/scripts/rkflash.sh​ 脚本:

删除掉 userdata.img​ 相关的语句。

diff 复制代码
MISC=$ROCKDEV_DIR/misc.img
ROOTFS=$ROCKDEV_DIR/rootfs.img
- USERDATA=$ROCKDEV_DIR/userdata.img
+ # USERDATA=$ROCKDEV_DIR/userdata.img
UPDATE=$ROCKDEV_DIR/update.img

if [ ! -n "$1" ];then
diff 复制代码
	$UPGRADETOOL di -m $MISC
	$UPGRADETOOL di -oem $OEM
- 	$UPGRADETOOL di -userdata $USERDATA
+	# $UPGRADETOOL di -userdata $USERDATA
	$UPGRADETOOL di -rootfs $ROOTFS
	$UPGRADETOOL rd
fi

if [ $FLASH_TYPE = tb ]
diff 复制代码
	$UPGRADETOOL di -b $BOOT
	$UPGRADETOOL di -oem $OEM
-	$UPGRADETOOL di -userdata $USERDATA
+	# $UPGRADETOOL di -userdata $USERDATA
	$UPGRADETOOL di -rootfs $ROOTFS
fi

if [ $FLASH_TYPE = loader ]
diff 复制代码
if [ $FLASH_TYPE = oem ]
then
	if [ -n "$2" ];then
		OEM=$2
	fi
	echo "flash oem: $OEM"
	$UPGRADETOOL di -oem $OEM
fi

- if [ $FLASH_TYPE = userdata ]
- then
-	 if [ -n "$2" ];then
-		 USERDATA=$2
-	 fi
-	 echo "flash userdata: $USERDATA"
-	 $UPGRADETOOL di -userdata $USERDATA
- fi
+ # if [ $FLASH_TYPE = userdata ]
+ # then
+ # 	if [ -n "$2" ];then
+ # 		USERDATA=$2
+ # 	fi
+ # 	echo "flash userdata: $USERDATA"
+ # 	$UPGRADETOOL di -userdata $USERDATA
+ # fi

if [ $FLASH_TYPE = rootfs ]
then
	if [ -n "$2" ];then
		ROOTFS=$2
	fi

rk3576-package-file

​build/3576L6/tools/linux/Linux_Pack_Firmware/rockdev/rk3576-package-file ​ 此文件是打包 update.img​ 时的分配文件,因为删除了分区和调整了分区的排布,所以需要修改:

diff 复制代码
	#resource	Image/resource.img
	#kernel		Image/kernel.img
	boot		Image/boot.img
	recovery	Image/recovery.img
+	oem		    Image/oem.img
	rootfs		Image/rootfs.img
-	oem		    Image/oem.img
-	userdata	Image/userdata.img
+	#userdata	Image/userdata.img
	# Ҫд��backup�������ļ�����������update.img��
	# SELF �ǹؼ��֣���ʾ�����ļ���update.img������

rkipc.ini

build/3576L6/app/rkipc/src/rk3576_ipc/rkipc.ini​ 是 Rockchip 提供的 **rkipc(Rockchip IPC / IP Camera)**应用的配置文件。rkipc 典型用于:

  • 视频采集、编码(H.264/H.265)
  • 图片抓拍
  • 循环录像 / 事件录像
  • 存储管理(自动清理旧文件)

在其总有一个 [storage]​ 的 /userdata​ 策略是挂载在指定底层块设备分区节点 /dev/mmcblk0p6​,尽量要修改,将 /userdata​ 完全转化为一个目录,不绑定底层块设备分区节点:

diff 复制代码
	[isp.0.auto_focus]
	af_mode = semi-auto
	zoom_level = 0
	focus_level = 0
	
	[storage]
	mount_path = /userdata
-	dev_path = /dev/mmcblk0p6
+	dev_path = 
	free_size_del_min = 500; MB
	free_size_del_max = 1000; MB
	
	[storage.0]
	enable = 0
	folder_name = video0

fstab

​build/3576L6/debian/scripts/rkstage0/02-sys-tweaks/files/fstab​ 文件,是 " 自动挂载分区 " 配置,用来在系统启动时把带有 GPT 分区标签挂载到目录,因为已经删除了 userdata/​ 所以修改这个文件:

diff 复制代码
	/dev/root                       /               ext2    rw,noatime          0       1
	proc                            /proc           proc    defaults            0       0
	/dev/disk/by-partlabel/oem      /oem            ext2    defaults            0       2
-	/dev/disk/by-partlabel/userdata /userdata       ext2    defaults            0       2

效果:

bash 复制代码
$ df -h
文件系统        大小  已用  可用 已用% 挂载点
/dev/root        57G  3.7G   51G    7% /
devtmpfs        1.9G  8.0K  1.9G    1% /dev
tmpfs           2.0G     0  2.0G    0% /dev/shm
tmpfs           780M  2.0M  778M    1% /run
tmpfs           5.0M   16K  5.0M    1% /run/lock
/dev/mmcblk0p6  104M   12M   84M   13% /oem
tmpfs           390M   40K  390M    1% /run/user/1000
tmpfs           390M   28K  390M    1% /run/user/1001

相关推荐
浒畔居5 分钟前
机器学习模型部署:将模型转化为Web API
jvm·数据库·python
M1582276905523 分钟前
四通道全能组网!SG-Canet-410 CAN转以太网网关,破解工业CAN通信瓶颈
linux·运维·服务器
誰能久伴不乏23 分钟前
【Qt实战】工业级多线程串口通信:从底层协议设计到完美收发闭环
linux·c++·qt
一个响当当的名号26 分钟前
lectrue9 索引并发控制
java·开发语言·数据库
liu****30 分钟前
4.Qt窗口开发全解析:菜单栏、工具栏、状态栏及对话框实战
数据库·c++·qt·系统架构
bjxiaxueliang32 分钟前
一文解决蓝牙连接难题:Ubuntu命令行蓝牙强制配对
linux·ubuntu·蓝牙连接命令
三水不滴43 分钟前
Redis缓存更新策略
数据库·经验分享·redis·笔记·后端·缓存
浪客灿心1 小时前
Linux库制作与原理
linux·运维·服务器
bantinghy1 小时前
Nginx基础加权轮询负载均衡算法
服务器·算法·nginx·负载均衡
企鹅侠客1 小时前
第35章—内核解析篇:Redis内存淘汰机制
数据库·redis