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