From 65e1b5a28394ef15fb2939850e154aaa7695e666 Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Wed, 15 Dec 2021 21:14:54 +0800 Subject: [PATCH] update image build shell script --- bsp/images/build.sh | 101 ++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 85 insertions(+), 16 deletions(-) diff --git a/bsp/images/build.sh b/bsp/images/build.sh index 76377d6..9e38993 100755 --- a/bsp/images/build.sh +++ b/bsp/images/build.sh @@ -18,7 +18,9 @@ # PRJ_PATH=`pwd` -IMAGE_PATH=${PRJ_PATH}/bin/ +PRJ_NAME=`basename ${PRJ_PATH}` + +IMAGE_PATH=${PRJ_PATH}/boot/ BOARD=imx6ull @@ -48,7 +50,7 @@ BOOT_SIZE=100 -IMG_UBOOT=${IMAGE_PATH}/u-boot-imx6ull-emmc.imx +IMG_UBOOT=${PRJ_PATH}/u-boot-imx6ull-emmc.imx IMG_KERNEL=${IMAGE_PATH}/zImage IMG_DTB=${IMAGE_PATH}/imx6ull-emmc.dtb ROOTFS_TAR=${TAR_PATH}/rootfs_${ROOTFS}.tar.bz2 @@ -59,30 +61,29 @@ set -u set -e -if [ `id -u` != 0 ] ; then - echo "ERROR: This shell script must run as root" - exit 0; -fi - -trap 'exit_handler' EXIT function exit_handler() { echo "Shell script exit now, do some clean work" echo "" + set +e + mountpoint $MNT_POINT > /dev/null 2>&1 if [ $? == 0 ] ; then + echo "umount ${MNT_POINT}" umount ${MNT_POINT} fi rm -rf ${MNT_POINT} if [ -L /dev/mapper/${LOOP_DEV}p1 ] ; then + echo "kpartx -dv /dev/${LOOP_DEV}" kpartx -dv /dev/${LOOP_DEV} fi losetup -a | grep "${LOOP_DEV}" > /dev/null 2>&1 if [ $? == 0 ] ; then + echo "losetup -d /dev/${LOOP_DEV}" losetup -d /dev/${LOOP_DEV} fi } @@ -168,18 +169,86 @@ umount ${MNT_POINT} } -mkdir -p ${MNT_POINT} +function do_distclean() +{ + printf "\n\n -- do distclean in `basename ${PRJ_PATH}` --\n\n" -generate_image + rm -f *${BOARD}* + rm -rf boot/*Image* + rm -rf boot/overlays/ + rm -rf boot/*${BOARD}* + exit 0; +} -format_partition +function do_image() +{ + mkdir -p ${MNT_POINT} -install_sysimg + generate_image -install_rootfs + format_partition -cp ${IMG_UBOOT} . -bzip2 ${IMAGE_NAME} + install_sysimg -rm -rf ${MNT_POINT} + install_rootfs + msg_banner " bzip2 compress system image " + rm -f ${IMAGE_NAME}*.bz2 + bzip2 ${IMAGE_NAME} + + rm -rf ${MNT_POINT} + + printf "\n\n -- generate system image done --\n\n" +} + +function do_root() +{ + echo "" + if [[ $1 == "yes" ]] && [ `id -u` != 0 ] ; then + echo "ERROR: This action must run as root!" + echo "" + exit; + elif [[ $1 != "yes" ]] && [ `id -u` == 0 ] ; then + echo "ERROR: This action cannot run as root!" + echo "" + exit; + fi +} + +function do_usage() +{ + echo "" + echo "Usage:" + echo " $0 [-b] [-c] [-h]" + echo " -b: download and build $PRJ_NAME" + echo " -c: clean all the source code" + echo " -h: show this help message" + echo "" + echo " WARNNING: This shell script must run as sudo" + echo "" + exit; +} + +trap 'exit_handler' EXIT + +while getopts "bch" OPTNAME +do + case "${OPTNAME}" in + "b") + break; + ;; + + "c") + do_root "yes" + do_distclean + ;; + + "*") + do_usage + ;; + esac +done + +do_root "yes" +do_image +exit; -- Gitblit v1.9.1