Files
BPI-M2C/source_sync_rls_25c/layers/meta-unisoc/recipes-kernel/linux/recovery.inc
T
2026-09-22 09:38:26 +08:00

101 lines
4.3 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
DESCRIPTION = "Recovery image"
SRCREV_FORMAT = "kernel"
KERNEL_IMAGETYPE ?= "Image"
KERNEL_PACKAGE_NAME := "recovery-kernel"
KERNEL_DEPLOYSUBDIR := "recovery"
UNISOC_SUBDIR_RECOVERY := "${KERNEL_DEPLOYSUBDIR}"
PROVIDES += "virtual/recovery-kernel"
KERNEL_IMAGE_BASE_NAME := "recovery"
KERNEL_PATCH_FOR_RECOVERY ?= "${KERNEL_MACHINE_PATCH}"
KERNEL_RECOVERY_DEVICETREE ?= ""
KERNEL_RECOVERY_DEFCONFIG ?= "${KERNEL_DEFCONFIG}"
KERNEL_DEVICETREE := "${KERNEL_RECOVERY_DEVICETREE}"
KBUILD_DEFCONFIG := "${KERNEL_RECOVERY_DEFCONFIG}"
UNISOC_RECOVERY_CMDLINE ?= "${CMDLINE}"
inherit sign_unisoc_binary
UNISOC_SIGN_ENABLE ?= "no"
inherit pythonnative
#inherit kernel
#do_compile[depends] += "recovery-image:do_image_complete"
#DEPENDS += "dtbtool-native mkbootimg-native unisoc-sign-native"
DEPENDS += "unisoc-sign-native"
DEPENDS += "mkkernelimg-native "
normalize_dtb () {
dtb="$1"
if echo $dtb | grep -q '/dts/'; then
bbwarn "$dtb contains the full path to the the dts file, but only the dtb name should be used."
dtb=`basename $dtb | sed 's,\.dts$,.dtb,g'`
fi
echo "$dtb"
}
do_deploy:append() {
##mv ${DEPLOYDIR}//*.dtb ${DEPLOYDIR}/${UNISOC_SUBDIR_RECOVERY}/
for dtbf in ${KERNEL_DEVICETREE}; do
dtb=`normalize_dtb "$dtbf"`
dtb_ext=${dtb##*.}
dtb_base_name=`basename $dtb .$dtb_ext`
ln -sf $dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext $deployDir/recovery-${KERNEL_DTB_LINK_NAME}.$dtb_ext
break
done
if false; then
mkbootimg_dtarg=""
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${STAGING_LIBDIR_NATIVE}"
${STAGING_BINDIR_NATIVE}/dtbTool -o ${DEPLOYDIR}/${UNISOC_SUBDIR_RECOVERY}/dt.img -s ${UNISOC_BOOTIMG_PAGE_SIZE} -p ${B}/scripts/dtc/ ${B}/arch/${ARCH}/boot/dts/`dirname ${KERNEL_DEVICETREE}`/
mkbootimg_dtarg="--dt ${DEPLOYDIR}/${UNISOC_SUBDIR_RECOVERY}/dt.img"
${STAGING_BINDIR_NATIVE}/mkbootimg --kernel ${DEPLOYDIR}/${UNISOC_SUBDIR_RECOVERY}/${KERNEL_IMAGETYPE} \
${UNISOC_MKBOOTIMG_ARGS} \
--ramdisk ${DEPLOY_DIR_IMAGE}/swupdate-image-${MACHINE}.cpio.gz \
--output ${DEPLOYDIR}/recovery.img \
$mkbootimg_dtarg \
--pagesize ${UNISOC_BOOTIMG_PAGE_SIZE} \
--base ${UNISOC_BOOTIMG_KERNEL_BASE} \
--cmdline \
"${UNISOC_RECOVERY_CMDLINE}"
sign_unisoc_bin "${DEPLOYDIR}/recovery.img"
fi
if [ -e "${DEPLOYDIR}/${KERNEL_DEPLOYSUBDIR}/${KERNEL_IMAGETYPE}-${MACHINE}.bin" ] ; then
sign_unisoc_bin "${DEPLOYDIR}/${KERNEL_DEPLOYSUBDIR}/${KERNEL_IMAGETYPE}-${MACHINE}.bin"
fi
if [ -e "${DEPLOYDIR}/${KERNEL_DEPLOYSUBDIR}/recovery-${MACHINE}.dtb" ] ; then
sign_unisoc_bin "${DEPLOYDIR}/${KERNEL_DEPLOYSUBDIR}/recovery-${MACHINE}.dtb"
fi
}
# kernel new packed: Image + ramdisk + dt = kernel.img (boot.img)
# ${PYTHON} ${STAGING_BINDIR_NATIVE}/mkkernelimg.py --kernel ${B}/arch/${ARCH}/boot/${KERNEL_IMAGETYPE} \
# --ramdisk ${DEPLOYDIR}/ramdisk.img \
# --output ${DEPLOYDIR}/kernel.img \
# --dt ${DEPLOYDIR}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb \
# --pagesize ${UNISOC_BOOTIMG_PAGE_SIZE}
do_deploy:append() {
if ${@bb.utils.contains('DISTRO_FEATURES', 'packed-kernel', 'true', 'false', d)}; then
echo "use packed kernel"
echo "This is not an initrd" > ${B}/ramdisk.img
gzip ${B}/ramdisk.img
mv ${B}/ramdisk.img.gz ${DEPLOYDIR}/${KERNEL_DEPLOYSUBDIR}/ramdisk.img
${PYTHON} ${STAGING_BINDIR_NATIVE}/mkkernelimg.py \
--kernel ${B}/arch/${ARCH}/boot/${KERNEL_IMAGETYPE} \
--ramdisk ${DEPLOYDIR}/${KERNEL_DEPLOYSUBDIR}/ramdisk.img \
--output ${DEPLOYDIR}/${KERNEL_DEPLOYSUBDIR}/recovery-kernel.img \
--dt ${DEPLOYDIR}/${KERNEL_DEPLOYSUBDIR}/recovery-${MACHINE}.dtb \
--pagesize ${UNISOC_BOOTIMG_PAGE_SIZE}
else
echo "not use packed kernel"
fi
}
do_deploy[nostamp] = "1"