diff --git a/mkimg_gpt.sh b/mkimg_gpt.sh old mode 100644 new mode 100755 index 20e02ba..9ebf3d4 --- a/mkimg_gpt.sh +++ b/mkimg_gpt.sh @@ -13,6 +13,9 @@ set -euo pipefail IFS=$'\n\t' +DEVICE_PATH=device/rockchip/orangepi5ultra +KERNEL_PATH=device/rockchip/orangepi5ultra-kernel + # Helper: print error and cleanup exit_with_error() { echo "ERROR: $*" >&2 @@ -42,7 +45,7 @@ for PART in boot system vendor; do fi done -UBOOT_BIN=device/rockchip/orangepi5ultra-kernel/u-boot-rockchip.bin +UBOOT_BIN=${KERNEL_PATH}/u-boot-rockchip.bin if [ ! -f "${UBOOT_BIN}" ]; then exit_with_error "Missing U-Boot: ${UBOOT_BIN}" fi @@ -117,8 +120,20 @@ if [ ! -b "/dev/mapper/${LOOPDEV}p1" ]; then fi # --- Copy images into partitions --- -echo "Writing boot image to p1 (FAT partition)..." -sudo dd if="${ANDROID_PRODUCT_OUT}/boot.img" of="/dev/mapper/${LOOPDEV}p1" bs=1M conv=notrunc status=progress +echo "Creating FAT32 filesystem on p1 (boot partition)..." +sudo mkfs.vfat -F 32 -n "boot" "/dev/mapper/${LOOPDEV}p1" + +# Mount the boot partition and copy kernel/boot files +BOOT_MOUNT=$(mktemp -d) +sudo mount "/dev/mapper/${LOOPDEV}p1" "${BOOT_MOUNT}" +sudo cp ${KERNEL_PATH}/Image "${BOOT_MOUNT}/" +sudo cp ${KERNEL_PATH}/rk3588-orangepi-5-ultra.dtb "${BOOT_MOUNT}/" +sudo cp ${KERNEL_PATH}/boot.scr "${BOOT_MOUNT}/" +sudo cp ${KERNEL_PATH}/android-sdcard.dtbo "${BOOT_MOUNT}/" +sudo cp "${ANDROID_PRODUCT_OUT}/ramdisk.img" "${BOOT_MOUNT}/" +sudo cp ${KERNEL_PATH}/config.txt "${BOOT_MOUNT}/" +sudo umount "${BOOT_MOUNT}" +rmdir "${BOOT_MOUNT}" echo "Writing system image to p2 (raw dd)." # Use conv=notrunc so we don't shrink partition image area; status=progress for visibility