diff --git a/board/phytium/post-image.sh b/board/phytium/post-image.sh index 53996cb63bfa6a608f295cf3e39d18e917aa095f..a2e5ca2c9bf40eb94d0cc65b1e56c443d0eb01ff 100755 --- a/board/phytium/post-image.sh +++ b/board/phytium/post-image.sh @@ -2,7 +2,23 @@ BOARD_DIR="$(dirname $0)" +GENIMAGE_CFG_SRC=$(grep '^BR2_ROOTFS_POST_SCRIPT_ARGS=' ${BR2_CONFIG} | sed -n 's/.*-c \([^ ]*\).*/\1/p' | sed 's/"//g') +CFG_FILE=$(basename "$GENIMAGE_CFG_SRC") +GENIMAGE_CFG="${BOARD_DIR}/$CFG_FILE" +if [ -z "${GENIMAGE_CFG}" ]; then + echo "Error: Cannot extract genimage config from BR2_ROOTFS_POST_SCRIPT_ARGS" >&2 + exit 1 +fi + +PARTITION_UUID=$(uuidgen) + +cp -f "${GENIMAGE_CFG}" "${GENIMAGE_CFG}.bak" + +sed -i "s/partition-uuid = \"[^\"]*\"/partition-uuid = \"${PARTITION_UUID}\"/g" "${GENIMAGE_CFG}" +echo "✅ Updated partition UUID in ${GENIMAGE_CFG} to: ${PARTITION_UUID}" + cp -f ${BOARD_DIR}/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg +sed -i "s/root=PARTUUID=\"[^\"]*\"/root=PARTUUID=\"${PARTITION_UUID}\"/g" "${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg" if grep -Eq "^BR2_ROOTFS_INITRAMFS=y$" ${BR2_CONFIG} && grep -Eq "^BR2_ROOTFS_SKELETON_CUSTOM=y$" ${BR2_CONFIG}; then ROOTFS_DIR=${BINARIES_DIR}/rootfs diff --git a/support/scripts/genimage.sh b/support/scripts/genimage.sh index 459207c624a1167f37e98e89946faa5da2e16df3..8dc297a5176534ee2f11bd9204c18bc7fb2e9798 100755 --- a/support/scripts/genimage.sh +++ b/support/scripts/genimage.sh @@ -47,6 +47,7 @@ genimage \ --outputpath "${BINARIES_DIR}" \ --config "${GENIMAGE_CFG}" +mv "${GENIMAGE_CFG}".bak "${GENIMAGE_CFG}" if [ -e ${BINARIES_DIR}/disk.img ]; then 7zr a ${BINARIES_DIR}/disk.img.7z ${BINARIES_DIR}/disk.img