凌云实验室推出的ARM Linux物联网网关开发板IGKBoard(IoT Gateway Kit Board)项目源码
guowenxue
2023-06-28 fe3873a5423e587161941ba833bfbd266cc37f6a
yocto/build.sh
@@ -2,17 +2,26 @@
# This shell script used to build yocto for igkbaord
BOARD=igkboard
VERSION=honister
PACKDIR=`pwd`/yocto_packets
# https://wiki.yoctoproject.org/wiki/Releases
# Version should be: hardknott(3.3) honister(3.4) kirkstone(4.0)
YCT_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
BSP_VERSION=lf-5.15.71-2.2.0
#PACKDIR=`pwd`/yocto_packets
PACKDIR=/srv/yocto_packets/
BUILDIR=$BOARD
WORKDIR=`pwd`/workspace-${VERSION}
YOCTO_SRC=imx-yocto-bsp
PRJ_PATH=${WORKDIR}/${YOCTO_SRC}
PRJ_PATH=`pwd`
WORKDIR=${PRJ_PATH}/${YCT_VERSION}-${BSP_VERSION}
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=${YCT_VERSION}-${BSP_VERSION}.tar.xz
set -e
@@ -72,55 +81,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 ${YCT_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 ${YCT_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 ${YCT_VERSION} patch already."
        return 0;
    fi
    cd ${PRJ_PATH}/sources
    cp -af ${WORKDIR}/../${VERSION}/meta-${BOARD} .
    pr_info "start patch Yocto ${YCT_VERSION}"
    cd ${PRJ_PATH}
    cd ${WORKDIR}/sources
    cp -af ${WORKDIR}/../meta-${BOARD}/${YCT_VERSION}-${BSP_VERSION} meta-${BOARD}
    cd ${WORKDIR}
}
function do_build()
{
    TARGET=linuxsys-image
    pr_warn "Build ${YOCTO_SRC} for ${TARGET}."
    pr_warn "Build Yocto ${YCT_VERSION} for ${TARGET}."
    cd ${PRJ_PATH}
    cd ${WORKDIR}
    if [ -f ${BUILDIR}/conf/local.conf ] ; then
        pr_info "$YOCTO_SRC source poky."
   source sources/poky/oe-init-build-env ${BUILDIR}
        pr_info "Yocto ${YCT_VERSION} source poky."
        source sources/poky/oe-init-build-env ${BUILDIR}
    else
        pr_info "$YOCTO_SRC source meta."
        pr_info "Yocto ${YCT_VERSION} source meta."
        MACHINE=${BOARD} source sources/meta-${BOARD}/tools/${BOARD}-setup.sh -b ${BUILDIR}
    fi
    sed -i "s|^DL_DIR.*|DL_DIR ?= \"${PACKDIR}\"|g" conf/local.conf
    #bitbake -c clean u-boot-imx linux-imx ${TARGET}
    bitbake ${TARGET}
    cd ${PRJ_PATH}
    cd ${WORKDIR}
}
@@ -131,13 +148,13 @@
    cd $WORKDIR
    set -x
    ls $WORKDIR/imx-yocto-bsp/${BUILDIR}/tmp/deploy/images/${BOARD}/
    ls $WORKDIR/${BUILDIR}/tmp/deploy/images/${BOARD}/
    set +x
}
function do_clean()
{
    pr_warn "Clean ${YOCTO_SRC} source code"
    pr_warn "Clean Yocto ${YCT_VERSION} source code"
    rm -rf $WORKDIR
}
@@ -179,9 +196,6 @@
done
#defualt do build action
mkdir -p $WORKDIR
cd $WORKDIR
do_fetch
do_patch