mirror of
https://github.com/OpenSolo/OpenSolo.git
synced 2025-05-02 07:34:33 +02:00
builder.sh: better error handling from matt.
This commit is contained in:
parent
251d55a341
commit
b2af2666fb
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# USAGE: builder.sh -a GIT_ACCOUNT -r GIT_REPO -b GIT_BRANCH
|
# USAGE: builder.sh -a GIT_ACCOUNT -r GIT_REPO -b GIT_BRANCH -b BUILD_MACHINE
|
||||||
|
|
||||||
# EXAMPLE: builder.sh -a OpenSolo -r 3dr-arm-yocto-bsp -b Master
|
# EXAMPLE: builder.sh -a OpenSolo -r 3dr-arm-yocto-bsp -b Master
|
||||||
# These are also the defaults that will be used if options are not specified
|
# These are also the defaults that will be used if options are not specified
|
||||||
@ -12,15 +12,24 @@
|
|||||||
GIT_ACCOUNT=OpenSolo
|
GIT_ACCOUNT=OpenSolo
|
||||||
GIT_REPO=3dr-arm-yocto-bsp
|
GIT_REPO=3dr-arm-yocto-bsp
|
||||||
GIT_BRANCH=master
|
GIT_BRANCH=master
|
||||||
|
BUILD_MACHINE=both
|
||||||
|
|
||||||
|
# Check if the build directory is there. If not, setup steps were skipped or messed up.
|
||||||
|
if [ ! -d "/solo-build" ]; then
|
||||||
|
echo "No build directory. Did you skip all the other steps?"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Check command line options for git account, repo, and branch.
|
# Check command line options for git account, repo, and branch.
|
||||||
while getopts a:r:b: option
|
while getopts a:r:b:m: option
|
||||||
do
|
do
|
||||||
case ${option}
|
case ${option}
|
||||||
in
|
in
|
||||||
a) GIT_ACCOUNT=${OPTARG};;
|
a) GIT_ACCOUNT=${OPTARG};;
|
||||||
r) GIT_REPO=${OPTARG};;
|
r) GIT_REPO=${OPTARG};;
|
||||||
b) GIT_BRANCH=${OPTARG};;
|
b) GIT_BRANCH=${OPTARG};;
|
||||||
|
m) BUILD_MACHINE=$${OPTARG};;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -41,40 +50,74 @@ echo
|
|||||||
#Do it.
|
#Do it.
|
||||||
cd /solo-build
|
cd /solo-build
|
||||||
repo init -u https://github.com/$GIT_ACCOUNT/$GIT_REPO.git -b $GIT_BRANCH
|
repo init -u https://github.com/$GIT_ACCOUNT/$GIT_REPO.git -b $GIT_BRANCH
|
||||||
repo sync
|
if [ ! $? -eq 0 ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
repo sync --force-sync
|
||||||
|
|
||||||
|
if [ ! $? -eq 0 ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
export MACHINE=imx6solo-3dr-1080p
|
export MACHINE=imx6solo-3dr-1080p
|
||||||
EULA=1 source ./setup-environment build
|
EULA=1 source ./setup-environment build
|
||||||
|
|
||||||
# -k means continue-after-error-for-as-much-as-possible
|
if [ ! $? -eq 0 ]
|
||||||
MACHINE=imx6solo-3dr-1080p bitbake 3dr-solo -k
|
then
|
||||||
MACHINE=imx6solo-3dr-artoo bitbake 3dr-controller -k
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# other options/examples, how to build just one bit, such as the pixhawk firmware from OpenSolo/meta-3dr/recipes-firmware/pixhawk/pixhawk-firmware_1.3.1.bb :
|
#TIP: how to build just one bit, such as the pixhawk firmware from OpenSolo/meta-3dr/recipes-firmware/pixhawk/pixhawk-firmware_1.3.1.bb :
|
||||||
# assuming you've run the 'export MACHINE...' and 'source ./setup...' commands first, and are in /solo-build/build/ folder as a result:
|
#assuming you've run the 'export MACHINE...' and 'source ./setup...' commands first, and are in /solo-build/build/ folder as a result:
|
||||||
#bitbake -c clean pixhawk-firmware
|
#bitbake -c clean pixhawk-firmware
|
||||||
#bitbake pixhawk-firmware
|
#bitbake pixhawk-firmware
|
||||||
#or verbose:
|
#or verbose:
|
||||||
#bitbake pixhawk-firmware -v
|
#bitbake pixhawk-firmware -v
|
||||||
|
#TIP: -k means continue-after-error-for-as-much-as-possible
|
||||||
|
|
||||||
|
MACHINE=imx6solo-3dr-1080p bitbake 3dr-solo -c clean -f -k
|
||||||
|
if [ ! $? -eq 0 ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
MACHINE=imx6solo-3dr-artoo bitbake 3dr-controller -c clean -f -k
|
||||||
|
if [ ! $? -eq 0 ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
MACHINE=imx6solo-3dr-1080p bitbake 3dr-solo
|
||||||
|
if [ ! $? -eq 0 ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
MACHINE=imx6solo-3dr-artoo bitbake 3dr-controller
|
||||||
|
if [ ! $? -eq 0 ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#TIPS:
|
||||||
# Copy the relevant files to a date/time stamped completed directory in the git repo folder for easy access (on git ignore list).
|
# Copy the relevant files to a date/time stamped completed directory in the git repo folder for easy access (on git ignore list).
|
||||||
# Make an MD5sum of each as is required for the Solo and Controller to accept the files.
|
# Make an MD5sum of each as is required for the Solo and Controller to accept the files.
|
||||||
# The tar.gz and the MD5 go directly in the /log/updates/ directory on the solo and/or controller.
|
# The tar.gz and the .md5 go directly in the /log/updates/ directory on the solo and/or controller.
|
||||||
NEW_DIR=/vagrant/"completed_$(date +%F_%H-%M)"
|
NEW_DIR=/vagrant/"completed_$(date +%F_%H-%M)"
|
||||||
mkdir -p $NEW_DIR
|
mkdir -p $NEW_DIR
|
||||||
cp /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-1080p/3dr-solo.tar.gz $NEW_DIR
|
|
||||||
cp /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-artoo/3dr-controller.tar.gz $NEW_DIR
|
|
||||||
cd $NEW_DIR
|
cd $NEW_DIR
|
||||||
|
|
||||||
|
cp /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-1080p/3dr-solo.tar.gz $NEW_DIR
|
||||||
md5sum 3dr-solo.tar.gz > 3dr-solo.tar.gz.md5
|
md5sum 3dr-solo.tar.gz > 3dr-solo.tar.gz.md5
|
||||||
|
|
||||||
|
cp /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-artoo/3dr-controller.tar.gz $NEW_DIR
|
||||||
md5sum 3dr-controller.tar.gz > 3dr-controller.tar.gz.md5
|
md5sum 3dr-controller.tar.gz > 3dr-controller.tar.gz.md5
|
||||||
|
|
||||||
echo
|
|
||||||
echo "*****************************"
|
|
||||||
echo "Completed tar.gz and md5 checksum files for Solo and/or Controller are in a date-time stamped directory in your github directory."
|
|
||||||
ls -lh $NEW_DIR
|
ls -lh $NEW_DIR
|
||||||
|
|
||||||
echo
|
|
||||||
echo
|
echo
|
||||||
echo "All build files located in below directories of the Vagrant virtual machine (squashfs, uImage, kernel, u-boot, dtb file, initramfs, rootfs.cpio, etc)"
|
echo "All build files located in below directories of the Vagrant virtual machine (squashfs, uImage, kernel, u-boot, dtb file, initramfs, rootfs.cpio, etc)"
|
||||||
echo /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-1080p/
|
echo /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-1080p/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user