凌云实验室推出的ARM Linux物联网网关开发板IGKBoard(IoT Gateway Kit Board)项目源码
guowenxue
2022-10-29 325f1949a4672d0936e406fc75c3b26446a40f18
yocto/meta-igkboard/hardknott/recipes-kernel/linux/linux-imx_5.10.bbappend
@@ -12,23 +12,79 @@
require recipes-kernel/linux/linux-yocto.inc
SRCBRANCH = "lf-5.15.y"
KERNEL_SRC = "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https;branch=${SRCBRANCH}"
KBRANCH = "${SRCBRANCH}"
SRC_URI = "${KERNEL_SRC}"
# https://source.codeaurora.org/external/imx/uboot-imx/tag/?h=lf-5.10.52-2.1.0
SRCREV = "1c0116f3da250c5a52858c53efb8b38c0963f477"
# base: meta-imx/meta-bsp/recipes-kernel/linux/linux-imx_5.10.bb
# https://source.codeaurora.org/external/imx/linux-imx/tag/?h=lf-5.10.52-2.1.0
SRCREV = "a11753a89ec610768301d4070e10b8bd60fde8cd"
LOCALVERSION = "-lf-5.10.52-2.1.0"
LINUX_VERSION = "5.10.52"
KERNEL_DANGLING_FEATURES_WARN_ONLY = "1"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += " file://linux-imx-lf-5.10.52-2.1.0.patch "
SRC_URI += " file://linux-imx-lf-5.10.52-2.1.0.patch \
             file://config-lcd.txt \
             file://config-nolcd.txt \
           "
PATCHTOOL = "patch"
do_copy_defconfig_append() {
    cp ${S}/arch/arm/configs/igkboard_defconfig ${WORKDIR}/defconfig
    cp ${S}/arch/arm/configs/igkboard_defconfig ${B}/.config
}
KERNEL_DTC_FLAGS = "-@"
KERNEL_DEVICETREE2 ?= ""
KERNEL_DEVICETREE2:igkboard = " \
    overlays/cam.dtbo \
    overlays/can1.dtbo \
    overlays/can2.dtbo \
    overlays/i2c1.dtbo \
    overlays/lcd.dtbo \
    overlays/nbiot-4g.dtbo \
    overlays/pwm7.dtbo \
    overlays/pwm8.dtbo \
    overlays/spi1.dtbo \
    overlays/uart2.dtbo \
    overlays/uart3.dtbo \
    overlays/uart4.dtbo \
    overlays/uart7.dtbo \
    overlays/w1.dtbo \
"
# compile dtbo file, refer to: poky/meta/classes/kernel-devicetree.bbclass
do_compile:append() {
    if [ -n "${KERNEL_DTC_FLAGS}" ]; then
        export DTC_FLAGS="${KERNEL_DTC_FLAGS}"
    fi
    for dtbf in ${KERNEL_DEVICETREE2}; do
        dtb=`normalize_dtb "$dtbf"`
        oe_runmake $dtb CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
    done
}
# install to linux kernel package
FILES:${KERNEL_PACKAGE_NAME}-devicetree += "/${KERNEL_IMAGEDEST}/overlays/*.dtbo"
do_install:append() {
    for dtbf in ${KERNEL_DEVICETREE2}; do
        dtb=`normalize_dtb "$dtbf"`
        install -d ${D}/${KERNEL_IMAGEDEST}/overlays
        install -m 0644 ${B}/arch/arm/boot/dts/$dtb ${D}/${KERNEL_IMAGEDEST}/$dtb
    done
    install -m 0644 ${WORKDIR}/config-lcd.txt ${D}/${KERNEL_IMAGEDEST}/
    install -m 0644 ${WORKDIR}/config-nolcd.txt ${D}/${KERNEL_IMAGEDEST}/
}
# install to deploy images path
do_deploy:append(){
    for dtbf in ${KERNEL_DEVICETREE2}; do
        dtb=`normalize_dtb "$dtbf"`
        install -d ${deployDir}/overlays
        install -m 0644 ${B}/arch/arm/boot/dts/$dtb ${deployDir}/$dtb
    done
    install -m 0644 ${WORKDIR}/config-lcd.txt ${deployDir}/
    install -m 0644 ${WORKDIR}/config-nolcd.txt ${deployDir}/
}