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"