凌云实验室推出的ARM Linux物联网网关开发板IGKBoard(IoT Gateway Kit Board)项目源码
guowenxue
2023-03-30 73a47a99a3f9e0e5552a082bdbf7c00cadb82797
yocto/build.sh
@@ -2,16 +2,24 @@
# This shell script used to build yocto for igkbaord
BOARD=igkboard
VERSION=honister
# https://wiki.yoctoproject.org/wiki/Releases
# Version should be: hardknott(3.3) honister(3.4) kirkstone(4.0)
VERSION=kirkstone
# i.MX BSP release version:
# https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX
BSPVER=lf-5.15.71-2.2.0
PACKDIR=`pwd`/yocto_packets
BUILDIR=$BOARD
WORKDIR=`pwd`/workspace-${VERSION}
YOCTO_SRC=imx-yocto-bsp
PRJ_PATH=${WORKDIR}/${YOCTO_SRC}
PRJ_PATH=`pwd`
WORKDIR=${PRJ_PATH}/${VERSION}-${BSPVER}
SRV_URL=http://weike-iot.com:2211/yocto/
YOCTO_TAR=${YOCTO_SRC}-${VERSION}.tar.xz
SRV_URL=http://master.iot-yun.club:2211/imx/bsp/yocto/
#SRV_URL=http://127.0.0.1:2211/imx/bsp/yocto/
YOCTO_TAR=imx-yocto-bsp-${VERSION}.tar.xz
set -e
@@ -71,56 +79,63 @@
function do_fetch()
{
    if [ -d $YOCTO_SRC ] ; then
        pr_warn "$YOCTO_SRC fetched already."
    if [ -d ${WORKDIR}/sources/meta-imx/ ] ; then
        pr_warn "Yocto ${VERSION} fetched already."
        return 0;
    fi
    if [ ! -f tarballs/$YOCTO_TAR ] ; then
   mkdir -p tarballs/ && cd tarballs
   wget $SRV_URL/$YOCTO_TAR
    fi
    cd $WORKDIR
    do_unpack tarballs/$YOCTO_TAR
    pr_info "start fetch Yocto ${VERSION}"
    cd ${PRJ_PATH}
    if [ ! -f tarballs/$YOCTO_TAR ] ; then
        mkdir -p tarballs/ && cd tarballs
        wget $SRV_URL/$YOCTO_TAR
    fi
    cd ${PRJ_PATH}
    do_unpack tarballs/$YOCTO_TAR
    mv imx-yocto-bsp $WORKDIR
}
function do_patch()
{
    if [ -d ${PRJ_PATH}/sources/meta-${BOARD} ] ; then
        pr_warn "$YOCTO_SRC patch already."
    if [ -d ${WORKDIR}/sources/meta-${BOARD} ] ; then
        pr_warn "Yocto ${VERSION} patch already."
        return 0;
    fi
    cd ${PRJ_PATH}/sources
    cp -af ${WORKDIR}/../${VERSION}/meta-${BOARD} .
    pr_info "start patch Yocto ${VERSION}"
    sed -i "s|^DL_DIR.*|DL_DIR ?= \"${PACKDIR}\"|g"  meta-${BOARD}/conf/local.conf
    cd ${WORKDIR}/sources
    cp -af ${WORKDIR}/../meta-${BOARD}/${VERSION}-${BSPVER} meta-${BOARD}
    cd ${PRJ_PATH}
    cd ${WORKDIR}
}
function do_build()
{
    TARGET=linuxsys-image
    pr_warn "Build ${YOCTO_SRC} for ${TARGET}."
    pr_warn "Build Yocto ${VERSION} for ${TARGET}."
    cd ${PRJ_PATH}
    cd ${WORKDIR}
    if [ -f ${BOARD}/conf/local.conf ] ; then
        pr_info "$YOCTO_SRC source poky."
   source sources/poky/oe-init-build-env ${BOARD}
    if [ -f ${BUILDIR}/conf/local.conf ] ; then
        pr_info "Yocto ${VERSION} source poky."
        source sources/poky/oe-init-build-env ${BUILDIR}
    else
        pr_info "$YOCTO_SRC source meta."
        MACHINE=${BOARD} source sources/meta-${BOARD}/tools/${BOARD}-setup.sh -b ${BOARD}
        pr_info "Yocto ${VERSION} source meta."
        MACHINE=${BOARD} source sources/meta-${BOARD}/tools/${BOARD}-setup.sh -b ${BUILDIR}
    fi
    bitbake linuxsys-image
    sed -i "s|^DL_DIR.*|DL_DIR ?= \"${PACKDIR}\"|g" conf/local.conf
    cd ${PRJ_PATH}
    #bitbake -c clean u-boot-imx linux-imx ${TARGET}
    bitbake ${TARGET}
    cd ${WORKDIR}
}
@@ -131,13 +146,13 @@
    cd $WORKDIR
    set -x
    ls $WORKDIR/imx-yocto-bsp/${BOARD}/tmp/deploy/images/igkboard/
    ls $WORKDIR/${BUILDIR}/tmp/deploy/images/${BOARD}/
    set +x
}
function do_clean()
{
    pr_warn "Clean ${YOCTO_SRC} source code"
    pr_warn "Clean Yocto ${VERSION} source code"
    rm -rf $WORKDIR
}
@@ -179,9 +194,6 @@
done
#defualt do build action
mkdir -p $WORKDIR
cd $WORKDIR
do_fetch
do_patch