凌云实验室推出的ARM Linux物联网网关开发板IGKBoard(IoT Gateway Kit Board)项目源码
guowenxue
2023-03-30 9c222f3844cd06ce2d59511a01dcbfca8ad8e762
yocto/build.sh
@@ -2,18 +2,21 @@
# 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
PACKDIR=`pwd`/yocto_packets
#PACKDIR=${HOME}/yocto/yocto_packets
BUILDIR=$BOARD
WORKDIR=`pwd`/workspace-${VERSION}
YOCTO_SRC=imx-yocto-bsp
PRJ_PATH=${WORKDIR}/${YOCTO_SRC}
PRJ_PATH=`pwd`
WORKDIR=${PRJ_PATH}/workspace-${VERSION}
SRV_URL=http://weike-iot.com:2211/yocto/
YOCTO_TAR=${YOCTO_SRC}-${VERSION}.tar.xz
#SRV_URL=http://127.0.0.1:2211/yocto/
YOCTO_TAR=imx-yocto-bsp-${VERSION}.tar.xz
set -e
@@ -73,48 +76,54 @@
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
    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 $WORKDIR
    cd ${PRJ_PATH}
    do_unpack tarballs/$YOCTO_TAR
    cd ${PRJ_PATH}
    mv imx-yocto-bsp workspace-${VERSION}
}
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}"
    cd ${PRJ_PATH}
    cd ${WORKDIR}/sources
    cp -af ${WORKDIR}/../meta-${BOARD}/${VERSION} meta-${BOARD}
    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 ${BUILDIR}/conf/local.conf ] ; then
        pr_info "$YOCTO_SRC source poky."
        pr_info "Yocto ${VERSION} source poky."
        source sources/poky/oe-init-build-env ${BUILDIR}
    else
        pr_info "$YOCTO_SRC source meta."
        pr_info "Yocto ${VERSION} source meta."
        MACHINE=${BOARD} source sources/meta-${BOARD}/tools/${BOARD}-setup.sh -b ${BUILDIR}
    fi
@@ -123,7 +132,7 @@
    #bitbake -c clean u-boot-imx linux-imx ${TARGET}
    bitbake ${TARGET}
    cd ${PRJ_PATH}
    cd ${WORKDIR}
}
@@ -134,13 +143,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 ${VERSION} source code"
    rm -rf $WORKDIR
}
@@ -182,9 +191,6 @@
done
#defualt do build action
mkdir -p $WORKDIR
cd $WORKDIR
do_fetch
do_patch