Push update-firmware to legacy-update to make way for new flashing protocol.
This commit is contained in:
parent
2cb5ef6ba9
commit
33b4c3a9b3
159
chip-legacy-update.sh
Executable file
159
chip-legacy-update.sh
Executable file
@ -0,0 +1,159 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPTDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
source $SCRIPTDIR/common.sh
|
||||
|
||||
if ! wait_for_fel; then
|
||||
echo "ERROR: please jumper your CHIP in FEL mode then power on"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
FLASH_SCRIPT=./chip-fel-flash.sh
|
||||
WHAT=buildroot
|
||||
BRANCH=stable
|
||||
|
||||
function require_directory {
|
||||
if [[ ! -d "${1}" ]]; then
|
||||
mkdir -p "${1}"
|
||||
fi
|
||||
}
|
||||
|
||||
function s3_md5 {
|
||||
local URL=$1
|
||||
curl -sLI $URL |grep ETag|sed -e 's/.*"\([a-fA-F0-9]\+\)["-]*.*/\1/;'
|
||||
}
|
||||
|
||||
function cache_download {
|
||||
local DEST_DIR=${1}
|
||||
local SRC_URL=${2}
|
||||
local FILE=${3}
|
||||
|
||||
if [[ -f "${DEST_DIR}/${FILE}" ]]; then
|
||||
echo "${DEST_DIR}/${FILE} exists... comparing to ${SRC_URL}/${FILE}"
|
||||
local S3_MD5=$(s3_md5 ${SRC_URL}/${FILE})
|
||||
local MD5=$(md5sum ${DEST_DIR}/${FILE} | cut -d\ -f1)
|
||||
echo "MD5: ${MD5}"
|
||||
echo "S3_MD5: ${S3_MD5}"
|
||||
if [[ "${S3_MD5}" != "${MD5}" ]]; then
|
||||
echo "md5sum differs"
|
||||
rm ${DEST_DIR}/${FILE}
|
||||
if ! wget -P "${FW_IMAGE_DIR}" "${SRC_URL}/${FILE}"; then
|
||||
echo "download of ${SRC_URL}/${FILE} failed!"
|
||||
exit $?
|
||||
fi
|
||||
else
|
||||
echo "file already downloaded"
|
||||
fi
|
||||
else
|
||||
if ! wget -P "${FW_IMAGE_DIR}" "${SRC_URL}/${FILE}"; then
|
||||
echo "download of ${SRC_URL}/${FILE} failed!"
|
||||
exit $?
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
while getopts "ufdpb:w:B:" opt; do
|
||||
case $opt in
|
||||
u)
|
||||
echo "updating cache"
|
||||
if [[ -d "$FW_IMAGE_DIR" ]]; then
|
||||
rm -rf $FW_IMAGE_DIR
|
||||
fi
|
||||
;;
|
||||
f)
|
||||
echo "fastboot enabled"
|
||||
FLASH_SCRIPT_OPTION="-f"
|
||||
;;
|
||||
B)
|
||||
BUILD="$OPTARG"
|
||||
echo "BUILD = ${BUILD}"
|
||||
;;
|
||||
b)
|
||||
BRANCH="$OPTARG"
|
||||
echo "BRANCH = ${BRANCH}"
|
||||
;;
|
||||
w)
|
||||
WHAT="$OPTARG"
|
||||
echo "WHAT = ${WHAT}"
|
||||
;;
|
||||
d)
|
||||
echo "debian selected"
|
||||
WHAT="debian"
|
||||
;;
|
||||
p)
|
||||
echo "PocketC.H.I.P selected"
|
||||
WHAT="pocketchip"
|
||||
BUILD=123
|
||||
FLASH_SCRIPT=./chip-fel-flash.sh -p
|
||||
;;
|
||||
\?)
|
||||
echo "Invalid option: -$OPTARG" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
FW_DIR="$(pwd)/.firmware"
|
||||
FW_IMAGE_DIR="${FW_DIR}/images"
|
||||
BASE_URL="http://opensource.nextthing.co/chip"
|
||||
S3_URL="${BASE_URL}/${WHAT}/${BRANCH}/latest"
|
||||
|
||||
|
||||
|
||||
if [[ -z "$BUILD" ]]; then
|
||||
ROOTFS_URL="$(wget -q -O- ${S3_URL})" || (echo "ERROR: cannot reach ${S3_URL}" && exit 1)
|
||||
if [[ -z "${ROOTFS_URL}" ]]; then
|
||||
echo "error: could not get URL for latest build from ${S3_URL} - check internet connection"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
ROOTFS_URL="${S3_URL%latest}$BUILD"
|
||||
fi
|
||||
|
||||
case "${WHAT}" in
|
||||
"buildroot")
|
||||
BR_BUILD="$(wget -q -O- ${ROOTFS_URL}/build)"
|
||||
BUILD=${BR_BUILD}
|
||||
ROOTFS_URL="${ROOTFS_URL}/images"
|
||||
BR_URL="${ROOTFS_URL}"
|
||||
;;
|
||||
"debian")
|
||||
BR_BUILD="$(wget -q -O- ${ROOTFS_URL}/br_build)"
|
||||
BR_URL="${BASE_URL}/buildroot/${BRANCH%-gui}/${BR_BUILD}/images"
|
||||
BUILD="$(wget -q -O- ${ROOTFS_URL}/build)"
|
||||
;;
|
||||
"pocketchip")
|
||||
BR_BUILD=123
|
||||
BUILD=123
|
||||
ROOTFS_URL="http://opensource.nextthing.co/pocketchip"
|
||||
BR_URL="$ROOTFS_URL"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "ROOTFS_URL=${ROOTFS_URL}"
|
||||
echo "BUILD=${BUILD}"
|
||||
echo "BR_URL=${BR_URL}"
|
||||
echo "BR_BUILD=${BR_BUILD}"
|
||||
|
||||
require_directory "${FW_IMAGE_DIR}"
|
||||
cache_download "${FW_IMAGE_DIR}" ${ROOTFS_URL} rootfs.ubi
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} sun5i-r8-chip.dtb
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} sunxi-spl.bin
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} sunxi-spl-with-ecc.bin
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} uboot-env.bin
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} zImage
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} u-boot-dtb.bin
|
||||
|
||||
BUILDROOT_OUTPUT_DIR="${FW_DIR}" ${FLASH_SCRIPT} ${FLASH_SCRIPT_OPTION} || echo "ERROR: could not flash" && exit 1
|
||||
|
||||
#if ! wait_for_linuxboot; then
|
||||
# echo "ERROR: could not flash"
|
||||
# exit 1
|
||||
#else
|
||||
# ${SCRIPTDIR}/verify.sh
|
||||
#fi
|
||||
|
||||
exit $?
|
@ -103,57 +103,39 @@ S3_URL="${BASE_URL}/${WHAT}/${BRANCH}/latest"
|
||||
|
||||
|
||||
|
||||
if [[ -z "$BUILD" ]]; then
|
||||
ROOTFS_URL="$(wget -q -O- ${S3_URL})" || (echo "ERROR: cannot reach ${S3_URL}" && exit 1)
|
||||
if [[ -z "${ROOTFS_URL}" ]]; then
|
||||
echo "error: could not get URL for latest build from ${S3_URL} - check internet connection"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -z "$BUILD" ]]; then
|
||||
case "${WHAT}" in
|
||||
"buildroot")
|
||||
if [[ "$BUILD" -lt "74" ]] && [[ "${BRANCH}" == "stable" ]]; then
|
||||
./chip-legacy-update.sh $@ || echo "ERROR: could not flash" && exit 1
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$BUILD" -lt "60" ]] && [[ "${BRANCH}" == "next" ]]; then
|
||||
./chip-legacy-update.sh $@ || echo "ERROR: could not flash" && exit 1
|
||||
exit 0
|
||||
fi
|
||||
;;
|
||||
"debian")
|
||||
if [[ "$BUILD" -lt "47" ]] && [[ "${BRANCH}" == "stable" ]]; then
|
||||
./chip-legacy-update.sh $@ || echo "ERROR: could not flash" && exit 1
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$BUILD" -lt "148" ]] && [[ "${BRANCH}" == "next" ]]; then
|
||||
./chip-legacy-update.sh $@ || echo "ERROR: could not flash" && exit 1
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$BUILD" -lt "4" ]] && [[ "${BRANCH}" == "stable-gui" ]]; then
|
||||
./chip-legacy-update.sh $@ || echo "ERROR: could not flash" && exit 1
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$BUILD" -lt "148" ]] && [[ "${BRANCH}" == "next-gui" ]]; then
|
||||
./chip-legacy-update.sh $@ || echo "ERROR: could not flash" && exit 1
|
||||
exit 0
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
else
|
||||
ROOTFS_URL="${S3_URL%latest}$BUILD"
|
||||
fi
|
||||
|
||||
case "${WHAT}" in
|
||||
"buildroot")
|
||||
BR_BUILD="$(wget -q -O- ${ROOTFS_URL}/build)"
|
||||
BUILD=${BR_BUILD}
|
||||
ROOTFS_URL="${ROOTFS_URL}/images"
|
||||
BR_URL="${ROOTFS_URL}"
|
||||
;;
|
||||
"debian")
|
||||
BR_BUILD="$(wget -q -O- ${ROOTFS_URL}/br_build)"
|
||||
BR_URL="${BASE_URL}/buildroot/${BRANCH%-gui}/${BR_BUILD}/images"
|
||||
BUILD="$(wget -q -O- ${ROOTFS_URL}/build)"
|
||||
;;
|
||||
"pocketchip")
|
||||
BR_BUILD=123
|
||||
BUILD=123
|
||||
ROOTFS_URL="http://opensource.nextthing.co/pocketchip"
|
||||
BR_URL="$ROOTFS_URL"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "ROOTFS_URL=${ROOTFS_URL}"
|
||||
echo "BUILD=${BUILD}"
|
||||
echo "BR_URL=${BR_URL}"
|
||||
echo "BR_BUILD=${BR_BUILD}"
|
||||
|
||||
require_directory "${FW_IMAGE_DIR}"
|
||||
cache_download "${FW_IMAGE_DIR}" ${ROOTFS_URL} rootfs.ubi
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} sun5i-r8-chip.dtb
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} sunxi-spl.bin
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} sunxi-spl-with-ecc.bin
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} uboot-env.bin
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} zImage
|
||||
cache_download "${FW_IMAGE_DIR}" ${BR_URL} u-boot-dtb.bin
|
||||
|
||||
BUILDROOT_OUTPUT_DIR="${FW_DIR}" ${FLASH_SCRIPT} ${FLASH_SCRIPT_OPTION} || echo "ERROR: could not flash" && exit 1
|
||||
|
||||
#if ! wait_for_linuxboot; then
|
||||
# echo "ERROR: could not flash"
|
||||
# exit 1
|
||||
#else
|
||||
# ${SCRIPTDIR}/verify.sh
|
||||
#fi
|
||||
|
||||
exit $?
|
||||
|
Loading…
Reference in New Issue
Block a user