凌云实验室推出的ARM Linux物联网网关开发板IGKBoard(IoT Gateway Kit Board)项目源码
guowenxue
2022-10-09 c6bbc9540d9cfe010611843592f2e06fdad79bda
yocto/meta-igkboard/honister/recipes-kernel/linux/linux-imx_5.15.bbappend
@@ -1,5 +1,5 @@
# Copyright (C) 2022 LingYun IoT System Studio
# Released under the GPLv2 license
# Released under the GPLv2 license
#
# SPDX-License-Identifier: GPLv2
#
@@ -12,11 +12,7 @@
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}"
# base: meta-imx/meta-bsp/recipes-kernel/linux/linux-imx_5.15.bb
# https://source.codeaurora.org/external/imx/linux-imx/tag/?h=lf-5.15.32-2.0.0
SRCREV = "fa6c3168595c02bd9d5366fcc28c9e7304947a3d"
LOCALVERSION = "-lf-5.15.32-2.0.0"
@@ -25,10 +21,70 @@
KERNEL_DANGLING_FEATURES_WARN_ONLY = "1"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += " file://linux-imx-lf-5.15.32-2.0.0.patch "
SRC_URI += " file://linux-imx-lf-5.15.32-2.0.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 ${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}/
}