From a01b5c9f91adaee088a817861603a5dbe14775c2 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 01 Nov 2024 02:40:28 +0000
Subject: [PATCH] rootfs patch

---
 mk-rootfs.sh |   60 +++++++++++++++++-------------------------------------------
 1 files changed, 17 insertions(+), 43 deletions(-)

diff --git a/mk-rootfs.sh b/mk-rootfs.sh
index f5d70a8..7b09976 100755
--- a/mk-rootfs.sh
+++ b/mk-rootfs.sh
@@ -1,54 +1,28 @@
 #!/bin/bash -e
-#TARGET_ROOTFS_DIR=/home/data/rootfs/rk356x/ubuntu20-lxde/lxde_ubuntu20_rootfs
-#TARGET_ROOTFS_DIR=/home/data/rootfs/rk356x/debian10/rk3568_likong
-#TARGET_ROOTFS_DIR=/home/data/rootfs/rk3399/rk3588_ubuntu22_lite
-TARGET_ROOTFS_DIR=/home/data/rootfs/rk3588/ubuntu20.04_6A23
-#TARGET_ROOTFS_DIR=/home/data/rootfs/rk3588/debian11_5.10
-MOUNTPOINT=./temp
-ROOTFSIMAGE=rootfs.ext4
-OUT=$PWD/tools/linux/Linux_Pack_Firmware/rockdev/Image/
+
+#TARGET_ROOTFS_DIR=./binary
+TARGET_ROOTFS_DIR=/home/data/rootfs/rk3588/ubuntu18.04_xen/rootfs
+ROOTFSIMAGE=rockdev/rootfs.ext4
+
 
 echo Making rootfs!
 
-if [ -e ${ROOTFSIMAGE} ]; then 
-	rm ${ROOTFSIMAGE}
-fi
-if [ -e ${MOUNTPOINT} ]; then 
-	rm -r ${MOUNTPOINT}
+if [ -e ${ROOTFSIMAGE} ]; then
+	sudo rm ${ROOTFSIMAGE}
 fi
 
-# Create directories
-mkdir ${MOUNTPOINT}
-dd if=/dev/zero of=${ROOTFSIMAGE} bs=1M count=0 seek=4200
+#for script in ./post-build.sh ../device/rockchip/common/post-build.sh; do
+#	[ -x $script ] || continue
+#	sudo $script "$(realpath "$TARGET_ROOTFS_DIR")"
+#done
 
-finish() {
-	sudo umount ${MOUNTPOINT} || true
-	echo -e "\e[31m MAKE ROOTFS FAILED.\e[0m"
-	exit -1
-}
+# Apparent size + maxium alignment(file_count * block_size) + maxium journal size
+IMAGE_SIZE_MB=$(( $(sudo du --apparent-size -sm ${TARGET_ROOTFS_DIR} | cut -f1) + \
+	$(sudo find ${TARGET_ROOTFS_DIR} | wc -l) * 4 / 1024 + 64 ))
 
-echo Format rootfs to ext4
-mkfs.ext4 ${ROOTFSIMAGE}
+# Extra 10%
+IMAGE_SIZE_MB=$(( $IMAGE_SIZE_MB * 103 / 100 ))
 
-echo Mount rootfs to ${MOUNTPOINT}
-sudo mount  ${ROOTFSIMAGE} ${MOUNTPOINT}
-trap finish ERR
-
-echo Copy rootfs to ${MOUNTPOINT}
-sudo cp -rvfp ${TARGET_ROOTFS_DIR}/*  ${MOUNTPOINT}
-sync
-
-
-echo Umount rootfs
-sudo umount ${MOUNTPOINT}
+sudo mkfs.ext4 -d ${TARGET_ROOTFS_DIR} ${ROOTFSIMAGE} ${IMAGE_SIZE_MB}M
 
 echo Rootfs Image: ${ROOTFSIMAGE}
-
-e2fsck -p -f ${ROOTFSIMAGE}
-resize2fs -M ${ROOTFSIMAGE}
-
-#[ ! -d ${OUT} ] && mkdir ${OUT}
-cp $ROOTFSIMAGE ${OUT}
-
-unlink $ROOTFSIMAGE
-cd ..

--
Gitblit v1.6.2