101 lines
4.3 KiB
PHP
101 lines
4.3 KiB
PHP
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"
|