guowenxue
2024-01-26 2334ec8814e13e011b70a192541a65d70e63243a
yocto/build.sh
@@ -25,7 +25,7 @@
CONF_FILE=$TOP_PATH/config.json
# Download path
DL_PATH="/srv/yocto_packets/"
#DL_PATH="/srv/yocto_packets/"
# shell script will exit once get command error
set -e
@@ -97,31 +97,52 @@
    export BOARD=`jq -r ".bsp.board" $CONF_FILE | tr 'A-Z' 'a-z'`
    export BSP_VER=`jq -r ".bsp.version" $CONF_FILE | tr 'A-Z' 'a-z'`
    export YCT_VER=`jq -r ".system.version" $CONF_FILE | tr 'A-Z' 'a-z'`
    export BSP_URL=`jq -r ".bsp.giturl" $CONF_FILE`
    export YCT_BOARD=`echo $BOARD| cut -d- -f1`
    export YCT_META=meta-$YCT_BOARD
    export YCT_PATH=$PRJ_PATH/$YCT_VER-$BSP_VER
    export YCT_SRC=$YCT_VER-$BSP_VER
    export YCT_PATH=$PRJ_PATH/$YCT_SRC
    export BUILD_DIR=${BOARD}
}
function do_fetch()
{
    cd $PRJ_PATH
    mkdir -p $YCT_PATH && cd $YCT_PATH
    if [ ! -d $YCT_SRC/sources ] ; then
    if [ ! -d sources ] ; then
        if [[ $BSP_URL =~ github.com ]] ; then
        pr_info "start repo fetch Yocto $YCT_VER source code"
            pr_info "start repo fetch Yocto $YCT_VER source code"
        if ! command -v repo > /dev/null 2>&1 ; then
            curl https://storage.googleapis.com/git-repo-downloads/repo > repo
            chmod a+x repo
            export PATH=$YCT_PATH:$PATH
            mkdir -p $YCT_PATH && cd $YCT_PATH
            if ! command -v repo > /dev/null 2>&1 ; then
                curl https://storage.googleapis.com/git-repo-downloads/repo > repo
                chmod a+x repo
                export PATH=$YCT_PATH:$PATH
            fi
            BSP_VER=`echo $BSP_VER | sed 's/lf/imx/'`
            repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-$YCT_VER -m $BSP_VER.xml
            repo sync && rm -f repo
        else
            pr_info "start download fetch Yocto $YCT_VER source code"
            mkdir -p $TARBALL_PATH
            # Download source code packet
            if [ ! -s $TARBALL_PATH/$YCT_SRC.tar.xz ] ; then
                wget $BSP_URL/bsp/$BSP_VER/$YCT_SRC.tar.xz -P $TARBALL_PATH
            fi
            # decompress source code packet
            do_unpack $TARBALL_PATH/$YCT_SRC.tar.xz
        fi
        BSP_VER=`echo $BSP_VER | sed 's/lf/imx/'`
        repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-$YCT_VER -m $BSP_VER.xml
        repo sync && rm -f repo
    else
        pr_warn "Yocto $YCT_VER source code fetched already"
@@ -164,22 +185,30 @@
function do_install()
{
    IMAGE_NAME=yocto-${YCT_VER}-${BSP_VER}.wic
    ROOTFS_TAR=rootfs-yocto-${YCT_VER}.tar.zst
    cd $YCT_PATH
    echo ""
    pr_info "Yocto($YCT_VER) installed to '$PRFX_PATH'"
    mkdir -p ${PRFX_PATH}
    cp $YCT_PATH/$BUILD_DIR/tmp/deploy/images/$BOARD/$BB_TARGET-$BOARD.wic ${PRFX_PATH}/
    cp $YCT_PATH/$BUILD_DIR/tmp/deploy/images/$BOARD/$BB_TARGET-$BOARD.tar.zst ${PRFX_PATH}/
    cp $YCT_PATH/$BUILD_DIR/tmp/deploy/images/$BOARD/imx-boot ${PRFX_PATH}/u-boot-${BOARD}.imx
    cp $YCT_PATH/$BUILD_DIR/tmp/deploy/images/$BOARD/$BB_TARGET-$BOARD.wic ${PRFX_PATH}/$IMAGE_NAME
    cp $YCT_PATH/$BUILD_DIR/tmp/deploy/images/$BOARD/$BB_TARGET-$BOARD.tar.zst ${PRFX_PATH}/$ROOTFS_TAR
    if [[ $BOARD =~ mx6ull ]] ; then
        cp $YCT_PATH/$BUILD_DIR/tmp/deploy/images/$BOARD/u-boot-${BOARD}.imx ${PRFX_PATH}/u-boot-${BOARD}.imx
    else
        cp $YCT_PATH/$BUILD_DIR/tmp/deploy/images/$BOARD/imx-boot ${PRFX_PATH}/u-boot-${BOARD}.imx
    fi
    cd ${PRFX_PATH}/
    if [[ `echo $COMPRESS | tr 'A-Z' 'a-z'` == "yes" ]] ; then
        pr_info "Start bzip2 compress $BB_TARGET-$BOARD.wic"
        rm -f $BB_TARGET-$BOARD.wic.bz2
        bzip2 $BB_TARGET-$BOARD.wic
        pr_info "Start bzip2 compress $IMAGE_NAME"
        rm -f $IMAGE_NAME.bz2
        bzip2 $IMAGE_NAME
    fi
    chmod a+x u-boot-${BOARD}.imx
@@ -188,9 +217,9 @@
    if [ -n "$INST_PATH" -a -w $INST_PATH ] ; then
        pr_info "Start copy Yocto system images to $INST_PATH"
        cp u-boot-${BOARD}.imx       $INST_PATH
        cp $BB_TARGET-$BOARD.wic*    $INST_PATH
        cp $BB_TARGET-$BOARD.tar.zst $INST_PATH
        cp u-boot-${BOARD}.imx $INST_PATH
        cp $IMAGE_NAME*        $INST_PATH
        cp $ROOTFS_TAR         $INST_PATH
        ls ${INST_PATH} && echo ""
    fi