From d021abeaa072b5ec0cdd8a410e86b7965401b5c5 Mon Sep 17 00:00:00 2001 From: zzh <838331105@qq.com> Date: Tue, 21 Apr 2026 14:13:17 +0800 Subject: [PATCH] modify partition --- target/configs/d211_demo128_nand_defconfig | 8 +++ target/d211/common/env.txt | 2 +- target/d211/demo128_nand/image_cfg.json | 16 ++++-- .../demo128_nand/rootfs_overlay/etc/fstab | 11 ++++ .../rootfs_overlay/etc/init.d/S01ubivol | 55 +++++++++++++++++++ 5 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 target/d211/demo128_nand/rootfs_overlay/etc/fstab create mode 100755 target/d211/demo128_nand/rootfs_overlay/etc/init.d/S01ubivol diff --git a/target/configs/d211_demo128_nand_defconfig b/target/configs/d211_demo128_nand_defconfig index 81c05fd64..258c21c92 100644 --- a/target/configs/d211_demo128_nand_defconfig +++ b/target/configs/d211_demo128_nand_defconfig @@ -17,6 +17,14 @@ BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin" BR2_TARGET_ROOTFS_UBI=y BR2_TARGET_ROOTFS_UBIFS_MAX_SIZE=0x4000000 BR2_TARGET_ROOTFS_UBIFS_OPTS="-F" +BR2_TARGET_USERFS1=y +BR2_TARGET_USERFS1_NAME="system" +BR2_TARGET_USERFS1_TYPE_UBIFS=y +BR2_TARGET_USERFS1_OVERLAY="target/$(LUBAN_CHIP_NAME)/$(LUBAN_BOARD_NAME)/system" +BR2_TARGET_USERFS2=y +BR2_TARGET_USERFS2_NAME="data" +BR2_TARGET_USERFS2_TYPE_UBIFS=y +BR2_TARGET_USERFS2_OVERLAY="target/$(LUBAN_CHIP_NAME)/$(LUBAN_BOARD_NAME)/data" BR2_GENERATE_BURNER_IMAGE=y BR2_GENERATE_IMAGE_AUTO_CALCULATE_SIZE=y BR2_PACKAGE_OPENSBI_FW_TEXT_BASE=0x47FE0000 diff --git a/target/d211/common/env.txt b/target/d211/common/env.txt index d2f8df84c..0ee5f8707 100644 --- a/target/d211/common/env.txt +++ b/target/d211/common/env.txt @@ -63,7 +63,7 @@ set_nand_mtdargs=env delete mtdparts set_nand_bootargs=run set_nand_mtdargs; \ run set_commonargs; \ - setenv bootargs ${bootargs} mtdparts=${MTD} ubi.mtd=${ubi_rootfs_mtd} root=${nand_root} rootfstype=${nand_rootfstype} + setenv bootargs ${bootargs} mtdparts=${MTD} ubi.mtd=${ubi_rootfs_mtd} ubi.mtd=11 root=${nand_root} rootfstype=${nand_rootfstype} set_nand_bootargs_recovery=run set_nand_mtdargs; \ run set_commonargs_recovery; \ diff --git a/target/d211/demo128_nand/image_cfg.json b/target/d211/demo128_nand/image_cfg.json index c0afe0c49..26cbac812 100644 --- a/target/d211/demo128_nand/image_cfg.json +++ b/target/d211/demo128_nand/image_cfg.json @@ -13,7 +13,7 @@ "kernel": { "size": "12m" }, "recovery": { "size": "16m" }, "ubiroot": { - "size": "218m", + "size": "64m", "ubi": { // Volume in UBI device "rootfs": { "size": "-" }, }, @@ -21,7 +21,8 @@ "ubisystem": { "size": "-", "ubi": { // Volume in UBI device - "user": { "size": "-" }, + "system": { "size": "8m" }, + "data": { "size": "-" }, }, }, } @@ -103,10 +104,15 @@ "attr": ["ubi", "required"], "part": ["ubiroot:rootfs"] }, - "app": { - "file": "user*.ubifs", + "system": { + "file": "system*.ubifs", "attr": ["ubi", "optional"], - "part": ["ubisystem:user"] + "part": ["ubisystem:system"] + }, + "data": { + "file": "data*.ubifs", + "attr": ["ubi", "optional"], + "part": ["ubisystem:data"] }, }, }, diff --git a/target/d211/demo128_nand/rootfs_overlay/etc/fstab b/target/d211/demo128_nand/rootfs_overlay/etc/fstab new file mode 100644 index 000000000..75c2c3e56 --- /dev/null +++ b/target/d211/demo128_nand/rootfs_overlay/etc/fstab @@ -0,0 +1,11 @@ +# +/dev/root / ext2 rw,noauto 0 1 +proc /proc proc defaults 0 0 +devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0 +tmpfs /dev/shm tmpfs mode=0777 0 0 +tmpfs /tmp tmpfs mode=1777 0 0 +tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0 +sysfs /sys sysfs defaults 0 0 + +ubi1:system /system ubifs ro,defaults 0 0 +ubi1:data /data ubifs defaults 0 0 diff --git a/target/d211/demo128_nand/rootfs_overlay/etc/init.d/S01ubivol b/target/d211/demo128_nand/rootfs_overlay/etc/init.d/S01ubivol new file mode 100755 index 000000000..2b9478759 --- /dev/null +++ b/target/d211/demo128_nand/rootfs_overlay/etc/init.d/S01ubivol @@ -0,0 +1,55 @@ +#!/bin/sh +# +# Auto-create and mount UBI volumes for system and data partitions +# + +start() { + echo "Initializing UBI volumes..." + + # Check if ubi1 device exists + if [ ! -e /dev/ubi1 ]; then + echo "ubi1 device not found, skipping..." + return 0 + fi + + # Create mount points + mkdir -p /system /data + + # Mount system (read-only) + if ! mountpoint -q /system; then + echo "Mounting /system..." + mount -t ubifs -o ro ubi1:system /system 2>/dev/null || echo "Failed to mount /system" + fi + + # Mount data (read-write) + if ! mountpoint -q /data; then + echo "Mounting /data..." + mount -t ubifs ubi1:data /data 2>/dev/null || echo "Failed to mount /data" + fi + + echo "UBI volumes initialized" +} + +stop() { + echo "Unmounting UBI volumes..." + umount /data 2>/dev/null + umount /system 2>/dev/null +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + stop + start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit 0