From 2d06fac60fa2f038585d01a04ea4f65282d9f0ce Mon Sep 17 00:00:00 2001 From: Jared Ravetch Date: Wed, 20 Dec 2017 14:02:12 -0800 Subject: [PATCH 1/2] Updated install to emmc script --- rock64_install_to_emmc.sh | 116 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 rock64_install_to_emmc.sh diff --git a/rock64_install_to_emmc.sh b/rock64_install_to_emmc.sh new file mode 100644 index 0000000..4333128 --- /dev/null +++ b/rock64_install_to_emmc.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +set -eo pipefail + +if [[ "$(id -u)" -ne "0" ]]; then + echo "This script requires root." + exit 1 +fi + +echo "Rock64 Release Installer!" +echo "(C) 2017. Kamil TrzciƄski (https://ayufan.eu)." +echo "" + +usage() { + echo "Usage:" + echo "$ $0 [version]" + echo "" + echo "Systems:" + echo " - jessie-minimal (https://github.com/ayufan-rock64/linux-build/releases)" + echo " - jessie-openmediavault (https://github.com/ayufan-rock64/linux-build/releases)" + echo " - stretch-minimal (https://github.com/ayufan-rock64/linux-build/releases)" + echo " - xenial-i3 (https://github.com/ayufan-rock64/linux-build/releases)" + echo " - xenial-mate (https://github.com/ayufan-rock64/linux-build/releases)" + echo " - xenial-minimal (https://github.com/ayufan-rock64/linux-build/releases)" + echo "" + echo "Version:" + echo " - latest will be used if version is not defined" + exit 1 +} + +if [[ $# -ne 1 ]] && [[ $# -ne 2 ]]; then + usage +fi + +case $(findmnt / -n -o SOURCE) in + /dev/mmcblk0p7) + DISK=/dev/mmcblk0 + NAME=emmc + ;; + + /dev/mmcblk1p7) + DISK=/dev/mmcblk1 + NAME=sd + ;; + + *) + echo "Unknown disk for /" + exit 1 + ;; +esac + +case "$1" in + jessie-minimal|jessie-openmediavault|stretch-minimal|xenial-i3|xenial-mate|xenial-minimal) + REPO="ayufan-rock64/linux-build" + PREFIX="$1-rock64-" + SUFFIX="-[0-9]*-arm*.img.xz" + ARCHIVER="xz -d" + ;; + + *) + echo "Unknown system: $1" + echo "" + usage + ;; +esac + +VERSION="$2" + +if [[ -z "$VERSION" ]]; then + VERSION=$(curl -f -sS https://api.github.com/repos/$REPO/releases/latest | jq -r ".tag_name") + if [ -z "$VERSION" ]; then + echo "Latest release was not for $1." + echo "Please go to: https://github.com/$REPO/releases/latest" + exit 1 + fi + + echo "Using latest release: $VERSION from https://github.com/$REPO/releases." +fi + +NAME="$PREFIX$VERSION$SUFFIX" +NAME_SAFE="${NAME//./\\.}" +VERSION_SAFE="${VERSION//./\\.}" + +echo "Looking for download URL..." +DOWNLOAD_URL=$(curl -f -sS https://api.github.com/repos/$REPO/releases | \ + jq -r ".[].assets | .[].browser_download_url" | \ + ( grep -o "https://github\.com/$REPO/releases/download/$VERSION_SAFE/$NAME_SAFE" || true)) + +if [[ -z "$DOWNLOAD_URL" ]]; then + echo "The download URL for $NAME not found". + echo "Look at https://github.com/$REPO/releases for correct versions." + exit 1 +fi + +echo "Doing this will overwrite all data stored on eMMC." + +while true; do + echo "Type YES to continue or Ctrl-C to abort." + read CONFIRM + if [[ "$CONFIRM" == "YES" ]]; then + break + fi +done + +echo "" +echo "Using $DOWNLOAD_URL..." +echo "Umounting..." +umount -f /dev/mmcblk0* || true +echo "" + +echo "Downloading and writing to /dev/mmcblk0..." +curl -L -f "$DOWNLOAD_URL" | $ARCHIVER | dd bs=30M of=/dev/mmcblk0 +sync +echo "" + +echo "Done." From 22a79953abc1293398a669674c2ae81c0f2011c4 Mon Sep 17 00:00:00 2001 From: jravetch Date: Fri, 16 Mar 2018 08:18:50 -0700 Subject: [PATCH 2/2] Fix arm name --- rock64_install_to_emmc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rock64_install_to_emmc.sh b/rock64_install_to_emmc.sh index 4333128..3f98881 100644 --- a/rock64_install_to_emmc.sh +++ b/rock64_install_to_emmc.sh @@ -53,7 +53,7 @@ case "$1" in jessie-minimal|jessie-openmediavault|stretch-minimal|xenial-i3|xenial-mate|xenial-minimal) REPO="ayufan-rock64/linux-build" PREFIX="$1-rock64-" - SUFFIX="-[0-9]*-arm*.img.xz" + SUFFIX="-[0-9]*-arm64.img.xz" ARCHIVER="xz -d" ;;