From f77a7065244a491e882ab42990f5318460a036c9 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Mon, 29 Jan 2024 15:31:15 +0800
Subject: [PATCH] Kernel:Defconfig:IGKBoard-IMX8MP:Update file system support
---
images/build.sh | 85 ++++++++++++++++++++++++++++--------------
1 files changed, 56 insertions(+), 29 deletions(-)
diff --git a/images/build.sh b/images/build.sh
index 2045cb8..e51ee5d 100755
--- a/images/build.sh
+++ b/images/build.sh
@@ -10,7 +10,13 @@
PRFX_PATH=$PRJ_PATH/install
# binaries finally install path if needed
-INST_PATH=/tftp
+#INST_PATH=/tftp
+
+# compress system image or not
+COMPRESS=yes
+
+# download taballs path
+TARBALL_PATH=$PRJ_PATH/tarballs
# config file path
CONF_FILE=$TOP_PATH/config.json
@@ -85,6 +91,8 @@
{
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 BSP_URL=`jq -r ".bsp.giturl" $CONF_FILE`
+ export DIS_TYPE=`jq -r ".system.distro" $CONF_FILE | tr 'A-Z' 'a-z'`
export DIS_VER=`jq -r ".system.version" $CONF_FILE | tr 'A-Z' 'a-z'`
export IMAGE_SIZE=`jq -r ".system.imgsize" $CONF_FILE | tr 'A-Z' 'a-z'`
export BOOT_SIZE=`jq -r ".system.bootsize" $CONF_FILE | tr 'A-Z' 'a-z'`
@@ -95,8 +103,8 @@
export ROOTFS=rootfs-${DIS_VER}
export UBOOT_BINPATH=$TOP_PATH/bootloader/install/
export KERNEL_BINPATH=$TOP_PATH/kernel/install/
- export ROOTFS_TARPATH=$TOP_PATH/images/tarballs/
export ROOTFS_YCTPATH=$TOP_PATH/yocto/install/
+ export IMAGE_NAME=${DIS_TYPE}-${DIS_VER}-${BSP_VER}.img
if [[ $BOARD =~ mx8ulp ]] || [[ $BOARD =~ mx8mq ]] || [[ $BOARD =~ mx8mm ]] ; then
export UBOOT_OFFSET_SECTOR=66
@@ -111,38 +119,53 @@
{
cd $PRJ_PATH
- SRCS=$ROOTFS
+ if [ -d $ROOTFS/bin ] ; then
+ pr_info "$ROOTFS fetched already"
+ return ;
+ fi
- for src in $SRCS
- do
- if [ -d $ROOTFS/bin ] ; then
- pr_info "$src fetched already"
- continue
- fi
+ if [[ $DIS_TYPE == yocto ]] ; then
+ TAR_TYPE=tar.zst
+ else
+ TAR_TYPE=tar.xz
+ fi
- for tarball in $ROOTFS_TARPATH/rootfs*${DIS_VER}.tar.*
- do
- if [ -s $tarball ] ; then
- pr_warn "Decompress $ROOTFS from tarballs"
- mkdir -p $ROOTFS
- do_unpack $tarball $ROOTFS
- break;
- fi
- done
+ # Decompress the rootfs form Yocto build install path
+ if [[ $DIS_TYPE == yocto ]] ; then
- for tarball in $ROOTFS_YCTPATH/rootfs.tar.*
+ for tarball in $ROOTFS_YCTPATH/*.${TAR_TYPE}
do
if [ -s $tarball ] ; then
pr_warn "Decompress $ROOTFS from yocto install path"
mkdir -p $ROOTFS
do_unpack $tarball $ROOTFS
- break;
+ return ;
fi
done
+ fi
- done
+ tarball=rootfs-${DIS_TYPE}-${DIS_VER}.${TAR_TYPE}
- if [ ! -d $ROOTFS ] ; then
+ if [[ $BSP_URL =~ github.com ]] ; then
+
+ pr_error "INFO: Please download $tarball and decompress it to folder '$PRJ_PATH/$ROOTFS'"
+
+ else
+
+ pr_info "INFO: download $tarball form $BSP_URL"
+
+ mkdir -p $TARBALL_PATH
+
+ # Download source code packet
+ if [ ! -s $TARBALL_PATH/$tarball ] ; then
+ wget $BSP_URL/${BOARD}/rootfs/$tarball -P $TARBALL_PATH
+ fi
+
+ # decompress source code packet
+ do_unpack $TARBALL_PATH/$tarball $ROOTFS
+ fi
+
+ if [ ! -d $ROOTFS/bin ] ; then
pr_error "Fetch rootfs $ROOTFS failed"
exit ;
fi
@@ -157,8 +180,6 @@
function build_image()
{
- export IMAGE_NAME=$BOARD-$DIS_VER.img
-
# Uboot size set be 10MB and deployed in 64th sector on eMMC/TFCard
UBOOT_SIZE=10
@@ -205,7 +226,7 @@
cp -af $ROOTFS/* ${MNT_POINT}
sync && umount ${MNT_POINT}
- pr_warn "Build $BOARD-$BSP_VER-$DIS_VER system image done"
+ pr_warn "Build system image $IMAGE_NAME done"
}
function exit_handler()
@@ -243,17 +264,22 @@
{
cd $PRJ_PATH
+ if [[ `echo $COMPRESS | tr 'A-Z' 'a-z'` == "yes" ]] ; then
+ pr_info "Start bzip2 compress $IMAGE_NAME"
+ rm -f $IMAGE_NAME.bz2
+ bzip2 $IMAGE_NAME
+ fi
+
mkdir -p $PRFX_PATH
+ mv $IMAGE_NAME* $PRFX_PATH
cp $UBOOT_BINPATH/u-boot-${BOARD}.imx $PRFX_PATH
- mv $IMAGE_NAME $PRFX_PATH
if [[ -n "$INST_PATH" && -w $INST_PATH ]] ; then
pr_info "install bootloader and system image to '$INST_PATH'"
cp $PRFX_PATH/u-boot-${BOARD}.imx $INST_PATH
- cp $PRFX_PATH/$IMAGE_NAME $INST_PATH
+ cp $PRFX_PATH/$IMAGE_NAME* $INST_PATH
fi
}
-
function do_clean()
{
@@ -262,6 +288,7 @@
rm -rf $PRJ_PATH/$d
done
+ rm -rf $PRJ_PATH/tarballs
rm -rf $PRFX_PATH
rm -f *.img
}
@@ -285,7 +312,7 @@
exit;
fi
-pr_warn "Build $BOARD-$BSP_VER-$DIS_VER system image"
+pr_warn "Build system image $IMAGE_NAME"
trap 'exit_handler' EXIT
--
Gitblit v1.9.1