linuxOS_AP06/device/rockchip/common/scripts/mk-ramboot.sh
2025-06-03 12:28:32 +08:00

59 lines
1.4 KiB
Bash
Executable File

#!/bin/bash -e
RK_SCRIPTS_DIR="${RK_SCRIPTS_DIR:-$(dirname "$(realpath "$0")")}"
RK_SDK_DIR="${RK_SDK_DIR:-$RK_SCRIPTS_DIR/../../../..}"
TARGET_DIR="$1"
TARGET_IMG="$TARGET_DIR/ramboot.img"
RAMDISK_IMG="$2"
ITS="$3"
KERNEL_IMG="${4:-$RK_SDK_DIR/$RK_KERNEL_IMG}"
KERNEL_DTB="${5:-$RK_SDK_DIR/$RK_KERNEL_DTB}"
SECOND_IMG="${6:-$RK_SDK_DIR/kernel/resource.img}"
if [ ! -r "$RAMDISK_IMG" ]; then
echo "Need $RAMDISK_IMG to pack $TARGET_IMG"
exit 1
fi
if [ ! -r "$KERNEL_IMG" ] || [ ! -r "$KERNEL_DTB" ] || \
[ ! -r "$SECOND_IMG" ]; then
echo -e "\e[35m"
echo "Build kernel for packing $TARGET_IMG"
echo -e "\e[0m"
"$RK_SCRIPTS_DIR/mk-kernel.sh"
KERNEL_IMG="$RK_KERNEL_IMG"
KERNEL_DTB="$RK_KERNEL_DTB"
SECOND_IMG="$RK_SDK_DIR/kernel/resource.img"
fi
mkdir -p "$TARGET_DIR"
cd "$TARGET_DIR"
ln -rsf "$RAMDISK_IMG" ramdisk.img
ln -rsf "$KERNEL_IMG" kernel.img
ln -rsf "$KERNEL_DTB" kernel.dtb
ln -rsf "$SECOND_IMG" second.img
# Force using compressed ramdisk
case "$(realpath ramdisk.img)" in
*.gz | *.bz | *.bz2 | *.xz | *.squashfs) ;;
*)
ln -f ramdisk.img ramdisk.img.orig
gzip -f -9 ramdisk.img
ln -sf ramdisk.img.gz ramdisk.img
;;
esac
echo "Packing $TARGET_IMG..."
if [ -r "$ITS" ]; then
ln -rsf "$ITS" ramboot.its
"$RK_SCRIPTS_DIR/mk-fitimage.sh" ramboot.img ramboot.its kernel.img \
kernel.dtb second.img ramdisk.img
else
"$RK_SDK_DIR/kernel/scripts/mkbootimg" --kernel kernel.img \
--ramdisk ramdisk.img --second second.img -o ramboot.img
fi