59 lines
1.4 KiB
Bash
Executable File
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
|