1# Copyright (C) 2019, Fuzhou Rockchip Electronics Co., Ltd 2# Released under the MIT license (see COPYING.MIT for the terms) 3 4inherit python3-dir 5 6DEPENDS:append = " openssl-native lz4-native ${PYTHON_PN}-native" 7 8LINUX_VERSION_EXTENSION ?= "-rockchip-${LINUX_KERNEL_TYPE}" 9 10PATCHPATH = "${THISDIR}/${BPN}_${LINUX_VERSION}" 11inherit auto-patch 12 13KCONFIG_MODE ?= "--alldefconfig" 14 15# Make sure we use /usr/bin/env ${PYTHON_PN} for scripts 16do_patch:append() { 17 for s in `grep -rIl python ${S}/scripts`; do 18 sed -i -e '1s|^#!.*python[23]*|#!/usr/bin/env ${PYTHON_PN}|' $s 19 done 20} 21 22do_compile:prepend() { 23 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${STAGING_LIBDIR_NATIVE} 24} 25 26do_compile_kernelmodules:prepend() { 27 export PKG_CONFIG_DIR="${STAGING_DIR_NATIVE}${libdir_native}/pkgconfig" 28 export PKG_CONFIG_PATH="$PKG_CONFIG_DIR:${STAGING_DATADIR_NATIVE}/pkgconfig" 29 export PKG_CONFIG_LIBDIR="$PKG_CONFIG_DIR" 30 export PKG_CONFIG_SYSROOT_DIR="" 31 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${STAGING_LIBDIR_NATIVE} 32} 33 34# Hack for rockchip style images 35KERNEL_IMAGETYPES:append = \ 36 "${@' boot.img zboot.img' if d.getVar('ROCKCHIP_KERNEL_IMAGES') == '1' else ''}" 37python () { 38 if not d.getVar('KERNEL_DEVICETREE'): 39 raise bb.parse.SkipPackage('KERNEL_DEVICETREE is not specified!') 40 41 if d.getVar('ROCKCHIP_KERNEL_IMAGES'): 42 # Use rockchip stype target, which is '<dts(w/o suffix)>.img' 43 d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', ' ' + d.getVar('KERNEL_DEVICETREE').replace('rockchip/', '').replace('.dtb', '.img')); 44} 45 46do_kernel_metadata:prepend() { 47 # Force regenerating defconfig 48 rm -f ${WORKDIR}/defconfig 49 50 # Support defconfig fragments 51 cd "${S}/arch/${ARCH}/configs" 52 if [ ! -f "${KBUILD_DEFCONFIG}" ]; then 53 DEFCONFIGS="rockchip_linux_defconfig ${SOC_FAMILY}_linux.config" 54 [ "$KBUILD_DEFCONFIGS" ] || KBUILD_DEFCONFIGS="$DEFCONFIGS" 55 56 echo "Merging $KBUILD_DEFCONFIGS into $KBUILD_DEFCONFIG..." 57 cat ${KBUILD_DEFCONFIGS:-$CONFIGS} > ${KBUILD_DEFCONFIG} || true 58 fi 59 cd - 60} 61 62# Link rockchip style images 63do_install:prepend() { 64 for image in $(ls "${B}/" | grep ".img$"); do 65 ln -rsf ${B}/${image} ${B}/arch/${ARCH}/boot/ 66 done 67 68 if [ "${ROCKCHIP_KERNEL_COMPRESSED}" = "1" ]; then 69 if [ -r "${B}/zboot.img" ]; then 70 ln -rsf ${B}/zboot.img ${B}/arch/${ARCH}/boot/boot.img 71 fi 72 fi 73} 74