SM8550/SM8650: Add generate boot.img file

Remove grub and dtb
This commit is contained in:
tiopex
2026-01-29 22:34:41 +01:00
parent 1d8c83c8e9
commit 7a656ea09d
11 changed files with 74 additions and 104 deletions

View File

@@ -73,13 +73,13 @@
<SDM845 mkimage_options="grub,dtb" dtb_prefix="qcom">
<file short="odin" full="AYN Odin" rotation="3">sdm845-ayn-odin</file>
</SDM845>
<SM8250 mkimage_options="grub,dtb,abl" dtb_prefix="qcom">
<SM8250 mkimage_options="abl" dtb_prefix="qcom">
<file short="rp5" full="Retroid Pocket 5" rotation="3">sm8250-retroidpocket-rp5</file>
<file short="rpflip2" full="Retroid Pocket Flip2" rotation="3">sm8250-retroidpocket-flip2</file>
<file short="rpmini" full="Retroid Pocket Mini" rotation="1">sm8250-retroidpocket-rpmini</file>
<file short="rpminiv2" full="Retroid Pocket Mini V2" rotation="1">sm8250-retroidpocket-rpminiv2</file>
</SM8250>
<SM8550 mkimage_options="grub,dtb,abl" dtb_prefix="qcom">
<SM8550 mkimage_options="abl" dtb_prefix="qcom">
<file short="odin2" full="AYN Odin2">qcs8550-ayn-odin2</file>
<file short="odin2portal" full="AYN Odin2 Portal">qcs8550-ayn-odin2portal</file>
<file short="odin2mini" full="AYN Odin2 Mini">qcs8550-ayn-odin2mini</file>
@@ -89,7 +89,7 @@
<file short="pocketevo" full="AYANEO Pocket EVO">qcs8550-ayaneo-pocketevo</file>
<file short="pocketds" full="AYANEO Pocket DS">qcs8550-ayaneo-pocketds</file>
</SM8550>
<SM8650 mkimage_options="grub,dtb,abl" dtb_prefix="qcom">
<SM8650 mkimage_options="abl" dtb_prefix="qcom">
<file short="pockets2" full="AYANEO Pocket S2">sm8650-ayaneo-ps2</file>
<file short="pocketfit" full="KONKR Pocket FIT">sm8650-konkr-pf</file>
</SM8650>

View File

@@ -16,38 +16,6 @@ fi
# mount $BOOT_ROOT rw
mount -o remount,rw $BOOT_ROOT
#if [ -f "$SYSTEM_ROOT/usr/share/bootloader/EFI/BOOT/bootaa64.efi" ]; then
# mkdir -p $BOOT_ROOT/EFI/BOOT
# echo "Updating EFI..."
# cp $SYSTEM_ROOT/usr/share/bootloader/EFI/BOOT/bootaa64.efi $BOOT_ROOT/EFI/BOOT
#fi
if [ -d "$SYSTEM_ROOT/usr/share/bootloader/boot/grub" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Updating grub dtbs..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/*.dtb $BOOT_ROOT/boot/grub
fi
if [ -f "$SYSTEM_ROOT/usr/share/bootloader/boot/grub/grub.cfg" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Updating grub.cfg..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/grub.cfg $BOOT_ROOT/boot/grub
fi
if [ -f "$SYSTEM_ROOT/usr/share/bootloader/boot/grub/dejavu-mono.pf2" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Updating dejavu-mono.pf2..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/dejavu-mono.pf2 $BOOT_ROOT/boot/grub
fi
if [ -f "$SYSTEM_ROOT/usr/share/bootloader/boot/grub/grubenv" ]; then
if [ ! -f "$BOOT_ROOT/boot/grub/grubenv" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Installing grubenv..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/grubenv $BOOT_ROOT/boot/grub
fi
fi
if [ -d "$SYSTEM_ROOT/usr/share/bootloader/rocknix_abl" ]; then
mkdir -p $BOOT_ROOT/rocknix_abl
echo "Updating ROCKNIX ABL on SD..."

View File

@@ -36,7 +36,7 @@
EXTRA_CMDLINE="quiet rootwait console=tty0"
# Bootloader to use (syslinux / u-boot)
BOOTLOADER="arm-efi"
BOOTLOADER="qcom-abl"
# Adreno GPU family
GRAPHIC_DRIVERS="freedreno"

View File

@@ -16,38 +16,6 @@ fi
# mount $BOOT_ROOT rw
mount -o remount,rw $BOOT_ROOT
if [ -f "$SYSTEM_ROOT/usr/share/bootloader/EFI/BOOT/bootaa64.efi" ]; then
mkdir -p $BOOT_ROOT/EFI/BOOT
echo "Updating EFI..."
cp $SYSTEM_ROOT/usr/share/bootloader/EFI/BOOT/bootaa64.efi $BOOT_ROOT/EFI/BOOT
fi
if [ -d "$SYSTEM_ROOT/usr/share/bootloader/boot/grub" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Updating grub dtbs..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/*.dtb $BOOT_ROOT/boot/grub
fi
if [ -f "$SYSTEM_ROOT/usr/share/bootloader/boot/grub/grub.cfg" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Updating grub.cfg..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/grub.cfg $BOOT_ROOT/boot/grub
fi
if [ -f "$SYSTEM_ROOT/usr/share/bootloader/boot/grub/dejavu-mono.pf2" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Updating dejavu-mono.pf2..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/dejavu-mono.pf2 $BOOT_ROOT/boot/grub
fi
if [ -f "$SYSTEM_ROOT/usr/share/bootloader/boot/grub/grubenv" ]; then
if [ ! -f "$BOOT_ROOT/boot/grub/grubenv" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Installing grubenv..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/grubenv $BOOT_ROOT/boot/grub
fi
fi
if [ -d "$SYSTEM_ROOT/usr/share/bootloader/rocknix_abl" ]; then
mkdir -p $BOOT_ROOT/rocknix_abl
echo "Updating ROCKNIX ABL on SD..."

View File

@@ -37,7 +37,7 @@
EXTRA_CMDLINE="quiet rootwait console=tty0 allow_mismatched_32bit_el0 fw_devlink.strict=1 pcie_ports=compat irqaffinity=0-2 cgroup.memory=nokmem,nosocket nosoftlockup"
# Bootloader to use (syslinux / u-boot)
BOOTLOADER="arm-efi"
BOOTLOADER="qcom-abl"
# Adreno GPU family
GRAPHIC_DRIVERS="freedreno"

View File

@@ -16,38 +16,6 @@ fi
# mount $BOOT_ROOT rw
mount -o remount,rw $BOOT_ROOT
if [ -f "$SYSTEM_ROOT/usr/share/bootloader/EFI/BOOT/bootaa64.efi" ]; then
mkdir -p $BOOT_ROOT/EFI/BOOT
echo "Updating EFI..."
cp $SYSTEM_ROOT/usr/share/bootloader/EFI/BOOT/bootaa64.efi $BOOT_ROOT/EFI/BOOT
fi
if [ -d "$SYSTEM_ROOT/usr/share/bootloader/boot/grub" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Updating grub dtbs..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/*.dtb $BOOT_ROOT/boot/grub
fi
if [ -f "$SYSTEM_ROOT/usr/share/bootloader/boot/grub/grub.cfg" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Updating grub.cfg..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/grub.cfg $BOOT_ROOT/boot/grub
fi
if [ -f "$SYSTEM_ROOT/usr/share/bootloader/boot/grub/dejavu-mono.pf2" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Updating dejavu-mono.pf2..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/dejavu-mono.pf2 $BOOT_ROOT/boot/grub
fi
if [ -f "$SYSTEM_ROOT/usr/share/bootloader/boot/grub/grubenv" ]; then
if [ ! -f "$BOOT_ROOT/boot/grub/grubenv" ]; then
mkdir -p $BOOT_ROOT/boot/grub
echo "Installing grubenv..."
cp $SYSTEM_ROOT/usr/share/bootloader/boot/grub/grubenv $BOOT_ROOT/boot/grub
fi
fi
if [ -d "$SYSTEM_ROOT/usr/share/bootloader/rocknix_abl" ]; then
mkdir -p $BOOT_ROOT/rocknix_abl
echo "Updating ROCKNIX ABL on SD..."

View File

@@ -24,7 +24,7 @@
EXTRA_CMDLINE="rootwait quiet video=efifb:off console=tty0 irqaffinity=0-1 cgroup.memory=nokmem,nosocket nosoftlockup"
# Bootloader to use (syslinux / u-boot)
BOOTLOADER="arm-efi"
BOOTLOADER="qcom-abl"
# Adreno GPU family
GRAPHIC_DRIVERS="freedreno"

View File

@@ -16,6 +16,7 @@ PKG_STAMP="${KERNEL_TARGET} ${KERNEL_MAKE_EXTRACMD}"
PKG_PATCH_DIRS="${LINUX} mainline ${DEVICE} default"
[[ "${DEVICE}" == RK* ]] && PKG_PATCH_DIRS+=" mainline-rockchip"
[[ "${DEVICE}" == SM* ]] && PKG_DEPENDS_TARGET+=" mkbootimg:host"
case ${DEVICE} in
RK3588)
@@ -331,7 +332,26 @@ make_target() {
makeinstall_target() {
mkdir -p ${INSTALL}/.image
cp -p arch/${TARGET_KERNEL_ARCH}/boot/${KERNEL_TARGET} System.map .config Module.symvers ${INSTALL}/.image/
cp -p System.map .config Module.symvers ${INSTALL}/.image/
if [ "${BOOTLOADER}" != "qcom-abl" ]; then
cp -p arch/${TARGET_KERNEL_ARCH}/boot/${KERNEL_TARGET} ${INSTALL}/.image/
else
gzip -c "arch/${TARGET_KERNEL_ARCH}/boot/${KERNEL_TARGET}" > "${INSTALL}/.image/kernel.gz"
for dtb in "arch/${TARGET_KERNEL_ARCH}/boot/dts/"**/*.dtb; do
if [ -f ${dtb} ]; then
cat "$dtb" >> "${INSTALL}/.image/kernel.gz"
fi
done
echo -n "dummy" > "${INSTALL}/.image/ramdisk"
python3 "${TOOLCHAIN}/mkbootimg/mkbootimg.py" \
--kernel "${INSTALL}/.image/kernel.gz" --ramdisk "${INSTALL}/.image/ramdisk" \
--kernel_offset 0x00000000 --ramdisk_offset 0x00000000 --tags_offset 0x00000000 \
--os_version 12.0.0 --os_patch_level "$(date '+%Y-%m')" --header_version 0 \
--cmdline "boot=LABEL=${DISTRO_BOOTLABEL} disk=LABEL=${DISTRO_DISKLABEL} ${EXTRA_CMDLINE}" \
-o "${INSTALL}/.image/${KERNEL_TARGET}" || { exit 1; }
fi
kernel_make INSTALL_MOD_PATH=${INSTALL}/$(get_kernel_overlay_dir) modules_install
rm -f ${INSTALL}/$(get_kernel_overlay_dir)/lib/modules/*/build

View File

@@ -0,0 +1,17 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2025 ROCKNIX (https://github.com/ROCKNIX)
PKG_NAME="mkbootimg"
PKG_VERSION="d2bb0af5ba6d3198a3e99529c97eda1be0b5a093"
PKG_LICENSE="GPL"
PKG_SITE="https://android.googlesource.com/platform/system/tools/mkbootimg"
PKG_URL="${PKG_SITE}.git"
PKG_LONGDESC="mkbootimg: Creates kernel boot images for Android"
PKG_TOOLCHAIN="manual"
PKG_DEPENDS_HOST="toolchain Python3:host"
makeinstall_host() {
mkdir -p ${TOOLCHAIN}/mkbootimg
cp -r gki/ mkbootimg.py $TOOLCHAIN/mkbootimg/
}

View File

@@ -0,0 +1,11 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2024 ROCKNIX (https://github.com/ROCKNIX)
PKG_NAME="qcom-abl"
PKG_VERSION="1.0"
PKG_LICENSE="GPL"
PKG_SITE="https://rocknix.org/"
PKG_URL=""
PKG_DEPENDS_TARGET="toolchain"
PKG_SECTION="virtual"
PKG_LONGDESC="Meta package for installing qcom-abl kernel image"

View File

@@ -132,7 +132,7 @@ alias mmd='mmd -i "${IMG_TMP}/part1.fat"'
# create filesystem on part1
echo "image: creating filesystem on part1..."
if [ "${BOOTLOADER}" = "syslinux" -o "${BOOTLOADER}" = "bcm2835-bootloader" -o "${BOOTLOADER}" = "u-boot" -o "${BOOTLOADER}" = "arm-efi" ]; then
if [ "${BOOTLOADER}" = "syslinux" -o "${BOOTLOADER}" = "bcm2835-bootloader" -o "${BOOTLOADER}" = "u-boot" -o "${BOOTLOADER}" = "arm-efi" -o "${BOOTLOADER}" = "qcom-abl" ]; then
mkfs.vfat -F 32 -S 512 -s 32 -i "${UUID_SYSTEM//-/}" -n "${DISTRO_BOOTLABEL}" "${IMG_TMP}/part1.fat" >"${SAVE_ERROR}" 2>&1 || show_error
fi
sync
@@ -276,6 +276,24 @@ elif [ "${BOOTLOADER}" = "arm-efi" ]; then
mcopy "${RELEASE_DIR}/target/KERNEL.md5" "::/${KERNEL_NAME}.md5"
mcopy "${RELEASE_DIR}/target/SYSTEM.md5" ::/SYSTEM.md5
elif [ "${BOOTLOADER}" = "qcom-abl" ]; then
# create bootloader configuration
echo "image: creating bootloader configuration... (qcom-abl)"
if [ -f "${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/bootloader/mkimage" ]; then
. "${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/bootloader/mkimage"
elif [ -f "${PROJECT_DIR}/${PROJECT}/bootloader/mkimage" ]; then
. "${PROJECT_DIR}/${PROJECT}/bootloader/mkimage"
else
echo "image: skipping qcom-abl. no mkimage script found"
fi
# copy files
echo "image: copying files to part1..."
mcopy "${TARGET_IMG}/${BUILD_NAME}.kernel" "::/${KERNEL_NAME}"
mcopy "${TARGET_IMG}/${BUILD_NAME}.system" ::/SYSTEM
mcopy "${RELEASE_DIR}/target/KERNEL.md5" "::/${KERNEL_NAME}.md5"
mcopy "${RELEASE_DIR}/target/SYSTEM.md5" ::/SYSTEM.md5
fi # bootloader
# run fsck