From 61393a1287f23a84b1068f12dd2df953cce3dff1 Mon Sep 17 00:00:00 2001 From: zador-blood-stained Date: Mon, 18 Apr 2016 19:20:15 +0300 Subject: [PATCH] Minimize configuration.sh --- build-all.sh | 2 +- configuration.sh | 128 ++++++++++++---------------------------------- debootstrap-ng.sh | 42 ++++----------- debootstrap.sh | 8 +-- 4 files changed, 46 insertions(+), 134 deletions(-) diff --git a/build-all.sh b/build-all.sh index bdcdbf9ffe..ff44bb60b9 100644 --- a/build-all.sh +++ b/build-all.sh @@ -84,7 +84,7 @@ buildall_start=`date +%s` for line in "${buildlist[@]}"; do unset IFS LINUXFAMILY LINUXCONFIG LINUXKERNEL LINUXSOURCE KERNELBRANCH BOOTLOADER BOOTSOURCE BOOTBRANCH \ - CPUMIN CPUMAX UBOOT_VER KERNEL_VER GOVERNOR BOOTSIZE UBOOT_TOOLCHAIN KERNEL_TOOLCHAIN + CPUMIN CPUMAX UBOOT_VER KERNEL_VER GOVERNOR BOOTSIZE UBOOT_TOOLCHAIN KERNEL_TOOLCHAIN PACKAGE_LIST_EXCLUDE read BOARD BRANCH RELEASE BUILD_DESKTOP <<< $line display_alert "Building" "Board: $BOARD Kernel:$BRANCH${RELEASE:+ Release: $RELEASE}${BUILD_DESKTOP:+ Desktop: $BUILD_DESKTOP}" "ext" source $SRC/lib/main.sh diff --git a/configuration.sh b/configuration.sh index bd2651a953..672de8be24 100644 --- a/configuration.sh +++ b/configuration.sh @@ -32,7 +32,6 @@ case $LINUXFAMILY in [[ -z $LINUXCONFIG && $BRANCH == "default" ]] && LINUXCONFIG="linux-"$LINUXFAMILY-"$BRANCH" [[ -z $LINUXCONFIG && $BRANCH != "default" ]] && LINUXCONFIG="linux-sunxi-"$BRANCH # Kernel - KERNEL_DEFAULT='https://github.com/linux-sunxi/linux-sunxi' KERNEL_DEFAULT_BRANCH="sunxi-3.4" KERNEL_DEFAULT_SOURCE="linux-sunxi" @@ -40,24 +39,20 @@ case $LINUXFAMILY in [ "$USE_MAINLINE_GOOGLE_MIRROR" = "yes" ] && KERNEL_DEV='https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable' KERNEL_DEV_BRANCH="" KERNEL_DEV_SOURCE="linux-vanilla" - KERNEL_NEXT='git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git' [ "$USE_MAINLINE_GOOGLE_MIRROR" = "yes" ] && KERNEL_NEXT='https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable' KERNEL_NEXT_BRANCH="v"`wget -qO- https://www.kernel.org/finger_banner | grep "The latest st" | awk '{print $NF}' | head -1` KERNEL_NEXT_SOURCE="linux-vanilla" - # U-boot - UBOOT_DEFAULT="git://git.denx.de/u-boot.git" + BOOTLOADER="git://git.denx.de/u-boot.git" # latest stable v2016.03 broken gmac on sun7i, fixing it for DEFAULT and NEXT #UBOOT_DEFAULT_BRANCH="v"$(git ls-remote git://git.denx.de/u-boot.git | grep -v rc | grep -v "\^" | tail -1 | cut -d "v" -f 2) UBOOT_DEFAULT_BRANCH="v2016.01" UBOOT_DEFAULT_SOURCE="u-boot" - UBOOT_NEXT=$UBOOT_DEFAULT UBOOT_NEXT_BRANCH=$UBOOT_DEFAULT_BRANCH UBOOT_NEXT_SOURCE=$UBOOT_DEFAULT_SOURCE - UBOOT_DEV=$UBOOT_DEFAULT UBOOT_DEV_BRANCH="" - UBOOT_DEV_SOURCE=$UBOOT_DEFAULT_SOURCE + UBOOT_DEV_SOURCE="u-boot-dev" ;; sun8i) @@ -72,11 +67,9 @@ case $LINUXFAMILY in KERNEL_DEV="https://github.com/wens/linux" KERNEL_DEV_BRANCH=h3-emac KERNEL_DEV_SOURCE="linux-sun8i-mainline" - - UBOOT_DEFAULT="git://git.denx.de/u-boot.git" + BOOTLOADER="git://git.denx.de/u-boot.git" UBOOT_DEFAULT_BRANCH="v"$(git ls-remote git://git.denx.de/u-boot.git | grep -v rc | grep -v "\^" | tail -1 | cut -d "v" -f 2) UBOOT_DEFAULT_SOURCE="u-boot" - UBOOT_DEV=$UBOOT_DEFAULT UBOOT_DEV_BRANCH="" UBOOT_DEV_SOURCE=$UBOOT_DEFAULT_SOURCE ;; @@ -88,15 +81,9 @@ case $LINUXFAMILY in KERNEL_NEXT='https://github.com/tobetter/linux' KERNEL_NEXT_BRANCH="odroidxu4-v4.2" KERNEL_NEXT_SOURCE="linux-odroidxu-next" - UBOOT_DEFAULT="https://github.com/hardkernel/u-boot.git" - UBOOT_DEFAULT_BRANCH="odroidxu3-v2012.07" - UBOOT_DEFAULT_SOURCE="u-boot-odroidxu" - UBOOT_NEXT=$UBOOT_DEFAULT - UBOOT_NEXT_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_NEXT_SOURCE=$UBOOT_DEFAULT_SOURCE - UBOOT_DEV=$UBOOT_DEFAULT - UBOOT_DEV_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_DEV_SOURCE=$UBOOT_DEFAULT_SOURCE + BOOTLOADER="https://github.com/hardkernel/u-boot.git" + BOOTBRANCH="odroidxu3-v2012.07" + BOOTSOURCE="u-boot-odroidxu" ;; odroidc1) @@ -106,33 +93,18 @@ case $LINUXFAMILY in KERNEL_NEXT='https://github.com/tobetter/linux' KERNEL_NEXT_BRANCH="odroidxu4-v4.2" KERNEL_NEXT_SOURCE="linux-odroidxu-next" - UBOOT_DEFAULT="https://github.com/hardkernel/u-boot.git" - UBOOT_DEFAULT_BRANCH="odroidc-v2011.03" - UBOOT_DEFAULT_SOURCE="u-boot-odroidc1" - UBOOT_NEXT=$UBOOT_DEFAULT - UBOOT_NEXT_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_NEXT_SOURCE=$UBOOT_DEFAULT_SOURCE - UBOOT_DEV=$UBOOT_DEFAULT - UBOOT_DEV_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_DEV_SOURCE=$UBOOT_DEFAULT_SOURCE + BOOTLOADER="https://github.com/hardkernel/u-boot.git" + BOOTBRANCH="odroidc-v2011.03" + BOOTSOURCE="u-boot-odroidc1" ;; odroidc2) KERNEL_DEFAULT='https://github.com/hardkernel/linux' KERNEL_DEFAULT_BRANCH="odroidc2-3.14.y" KERNEL_DEFAULT_SOURCE="linux-odroidc2" - KERNEL_NEXT='https://github.com/hardkernel/linux' - KERNEL_NEXT_BRANCH="odroidc2-3.14.y" - KERNEL_NEXT_SOURCE="linux-odroidc2-next" - UBOOT_DEFAULT="https://github.com/hardkernel/u-boot.git" - UBOOT_DEFAULT_BRANCH="odroidc2-v2015.01" - UBOOT_DEFAULT_SOURCE="u-boot-odroidc2" - UBOOT_NEXT=$UBOOT_DEFAULT - UBOOT_NEXT_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_NEXT_SOURCE=$UBOOT_DEFAULT_SOURCE - UBOOT_DEV=$UBOOT_DEFAULT - UBOOT_DEV_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_DEV_SOURCE=$UBOOT_DEFAULT_SOURCE + BOOTLOADER="https://github.com/hardkernel/u-boot.git" + BOOTBRANCH="odroidc2-v2015.01" + BOOTSOURCE="u-boot-odroidc2" ;; udoo) @@ -142,15 +114,9 @@ case $LINUXFAMILY in KERNEL_NEXT="https://github.com/patrykk/linux-udoo" KERNEL_NEXT_BRANCH="v4.4.0-6-vivante-5.0.11.p7.3" KERNEL_NEXT_SOURCE="linux-udoo-next" - UBOOT_DEFAULT="https://github.com/UDOOboard/uboot-imx" - UBOOT_DEFAULT_BRANCH="2015.10.fslc-qdl" - UBOOT_DEFAULT_SOURCE="u-boot-udoo" - UBOOT_NEXT=$UBOOT_DEFAULT - UBOOT_NEXT_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_NEXT_SOURCE=$UBOOT_DEFAULT_SOURCE - UBOOT_DEV=$UBOOT_DEFAULT - UBOOT_DEV_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_DEV_SOURCE=$UBOOT_DEFAULT_SOURCE + BOOTLOADER="https://github.com/UDOOboard/uboot-imx" + BOOTBRANCH="2015.10.fslc-qdl" + BOOTSOURCE="u-boot-udoo" ;; neo) @@ -159,15 +125,9 @@ case $LINUXFAMILY in KERNEL_DEFAULT_BRANCH="3.14-1.0.x-udoo" #KERNEL_DEFAULT_SOURCE="linux-udoo-neo" KERNEL_DEFAULT_SOURCE="linux-udoo" - UBOOT_DEFAULT="https://github.com/UDOOboard/uboot-imx" - UBOOT_DEFAULT_BRANCH="2015.04.imx-neo" - UBOOT_DEFAULT_SOURCE="u-boot-neo" - UBOOT_NEXT=$UBOOT_DEFAULT - UBOOT_NEXT_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_NEXT_SOURCE=$UBOOT_DEFAULT_SOURCE - UBOOT_DEV=$UBOOT_DEFAULT - UBOOT_DEV_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_DEV_SOURCE=$UBOOT_DEFAULT_SOURCE + BOOTLOADER="https://github.com/UDOOboard/uboot-imx" + BOOTBRANCH="2015.04.imx-neo" + BOOTSOURCE="u-boot-neo" ;; cubox) @@ -181,45 +141,27 @@ case $LINUXFAMILY in KERNEL_DEV='https://github.com/SolidRun/linux-fslc' KERNEL_DEV_BRANCH="3.14-1.0.x-mx6-sr" KERNEL_DEV_SOURCE="linux-cubox" - UBOOT_DEFAULT="https://github.com/SolidRun/u-boot-imx6" - UBOOT_DEFAULT_BRANCH="imx6" - UBOOT_DEFAULT_SOURCE="u-boot-cubox" - UBOOT_NEXT=$UBOOT_DEFAULT - UBOOT_NEXT_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_NEXT_SOURCE=$UBOOT_DEFAULT_SOURCE - UBOOT_DEV=$UBOOT_DEFAULT - UBOOT_DEV_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_DEV_SOURCE=$UBOOT_DEFAULT_SOURCE + BOOTLOADER="https://github.com/SolidRun/u-boot-imx6" + BOOTBRANCH="imx6" + BOOTSOURCE="u-boot-cubox" ;; - s500) + s500) KERNEL_DEFAULT='https://github.com/LeMaker/linux-actions' KERNEL_DEFAULT_BRANCH="linux-3.10.y" KERNEL_DEFAULT_SOURCE="linux-s500" - UBOOT_DEFAULT="https://github.com/LeMaker/u-boot-actions" - UBOOT_DEFAULT_BRANCH="s500-master" - UBOOT_DEFAULT_SOURCE="u-boot-s500" - UBOOT_NEXT=$UBOOT_DEFAULT - UBOOT_NEXT_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_NEXT_SOURCE=$UBOOT_DEFAULT_SOURCE - UBOOT_DEV=$UBOOT_DEFAULT - UBOOT_DEV_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_DEV_SOURCE=$UBOOT_DEFAULT_SOURCE + BOOTLOADER="https://github.com/LeMaker/u-boot-actions" + BOOTBRANCH="s500-master" + BOOTSOURCE="u-boot-s500" ;; toradex) KERNEL_DEFAULT="git://git.toradex.com/linux-toradex.git" KERNEL_DEFAULT_BRANCH="toradex_imx_3.14.28_1.0.0_ga" KERNEL_DEFAULT_SOURCE="linux-toradex" - UBOOT_DEFAULT="git://git.toradex.com/u-boot-toradex.git" - UBOOT_DEFAULT_BRANCH="2015.04-toradex" - UBOOT_DEFAULT_SOURCE="u-boot-toradex" - UBOOT_NEXT=$UBOOT_DEFAULT - UBOOT_NEXT_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_NEXT_SOURCE=$UBOOT_DEFAULT_SOURCE - UBOOT_DEV=$UBOOT_DEFAULT - UBOOT_DEV_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_DEV_SOURCE=$UBOOT_DEFAULT_SOURCE + BOOTLOADER="git://git.toradex.com/u-boot-toradex.git" + BOOTBRANCH="2015.04-toradex" + BOOTSOURCE="u-boot-toradex" ;; marvell) @@ -234,15 +176,9 @@ case $LINUXFAMILY in [ "$USE_MAINLINE_GOOGLE_MIRROR" = "yes" ] && KERNEL_DEV='https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable' KERNEL_DEV_BRANCH="" KERNEL_DEV_SOURCE="linux-vanilla" - UBOOT_DEFAULT="https://github.com/SolidRun/u-boot-armada38x" - UBOOT_DEFAULT_BRANCH="u-boot-2013.01-15t1-clearfog" - UBOOT_DEFAULT_SOURCE="u-boot-armada" - UBOOT_NEXT=$UBOOT_DEFAULT - UBOOT_NEXT_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_NEXT_SOURCE=$UBOOT_DEFAULT_SOURCE - UBOOT_DEV=$UBOOT_DEFAULT - UBOOT_DEV_BRANCH=$UBOOT_DEFAULT_BRANCH - UBOOT_DEV_SOURCE=$UBOOT_DEFAULT_SOURCE + BOOTLOADER="https://github.com/SolidRun/u-boot-armada38x" + BOOTBRANCH="u-boot-2013.01-15t1-clearfog" + BOOTSOURCE="u-boot-armada" ;; *) @@ -282,12 +218,14 @@ case $ARCH in TARGETS=Image CROSS_COMPILE="$CCACHE aarch64-linux-gnu-" ARCHITECTURE=arm64 + QEMU_BINARY="qemu-aarch64-static" ;; armhf) TARGETS=zImage CROSS_COMPILE="$CCACHE arm-linux-gnueabihf-" ARCHITECTURE=arm + QEMU_BINARY="qemu-arm-static" ;; esac diff --git a/debootstrap-ng.sh b/debootstrap-ng.sh index 2a09eb9e0d..57f96aab8a 100644 --- a/debootstrap-ng.sh +++ b/debootstrap-ng.sh @@ -88,8 +88,7 @@ debootstrap_ng() # stage: cleanup rm -f $CACHEDIR/sdcard/usr/sbin/policy-rc.d - rm -f $CACHEDIR/sdcard/usr/bin/qemu-arm-static - rm -f $CACHEDIR/sdcard/usr/bin/qemu-aarch64-static + rm -f $CACHEDIR/sdcard/usr/bin/$QEMU_BINARY if [[ -x $CACHEDIR/sdcard/sbin/initctl.REAL ]]; then mv -f $CACHEDIR/sdcard/sbin/initctl.REAL $CACHEDIR/sdcard/sbin/initctl fi @@ -138,15 +137,12 @@ debootstrap_ng() create_rootfs_cache() { [[ $BUILD_DESKTOP == yes ]] && local variant_desktop=yes - [[ -n $PACKAGE_LIST_EXCLUDE ]] && local package_exclude="--exclude="${PACKAGE_LIST_EXCLUDE// /,} local packages_hash=$(get_package_list_hash $PACKAGE_LIST) local cache_fname="$CACHEDIR/rootfs/$RELEASE${variant_desktop:+_desktop}-ng-$ARCH.$packages_hash.tgz" local display_name=$RELEASE${variant_desktop:+_desktop}-ng-$ARCH.${packages_hash:0:3}...${packages_hash:29}.tgz if [[ -f $cache_fname ]]; then - local filemtime=$(stat -c %Y $cache_fname) - local currtime=$(date +%s) - local diff=$(( (currtime - filemtime) / 86400 )) - display_alert "Extracting $display_name" "$diff days old" "info" + local date_diff=$(( ($(date +%s) - $(stat -c %Y $cache_fname)) / 86400 )) + display_alert "Extracting $display_name" "$date_diff days old" "info" pv -p -b -r -c -N "$display_name" "$cache_fname" | pigz -dc | tar xp -C $CACHEDIR/sdcard/ else display_alert "Creating new rootfs for" "$RELEASE" "info" @@ -165,20 +161,15 @@ create_rootfs_cache() [[ -z $OUTPUT_DIALOG && $RELEASE != wheezy ]] && local apt_extra_progress="--show-progress -o DPKG::Progress-Fancy=1" display_alert "Installing base system" "Stage 1/2" "info" - eval 'debootstrap --include=locales $package_exclude --arch=$ARCH --foreign $RELEASE $CACHEDIR/sdcard/ $apt_mirror' \ + eval 'debootstrap --include=locales ${PACKAGE_LIST_EXCLUDE:+ --exclude=${PACKAGE_LIST_EXCLUDE// /,}} \ + --arch=$ARCH --foreign $RELEASE $CACHEDIR/sdcard/ $apt_mirror' \ ${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/debootstrap.log'} \ ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Debootstrap (stage 1/2)..." $TTY_Y $TTY_X'} \ ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} [[ ${PIPESTATUS[0]} -ne 0 ]] && exit_with_error "Debootstrap base system first stage failed" - - if [[ $ARCH == *64* ]]; then - cp /usr/bin/qemu-aarch64-static $CACHEDIR/sdcard/usr/bin/ - else - cp /usr/bin/qemu-arm-static $CACHEDIR/sdcard/usr/bin/ - fi - + cp /usr/bin/$QEMU_BINARY $CACHEDIR/sdcard/usr/bin/ # NOTE: not needed? mkdir -p $CACHEDIR/sdcard/usr/share/keyrings/ cp /usr/share/keyrings/debian-archive-keyring.gpg $CACHEDIR/sdcard/usr/share/keyrings/ @@ -195,29 +186,17 @@ create_rootfs_cache() # policy-rc.d script prevents starting or reloading services # from dpkg pre- and post-install scripts during image creation - -cat < $CACHEDIR/sdcard/usr/sbin/policy-rc.d -#!/bin/sh -exit 101 -EOF + printf '#!/bin/sh\nexit 101' > $CACHEDIR/sdcard/usr/sbin/policy-rc.d chmod 755 $CACHEDIR/sdcard/usr/sbin/policy-rc.d - # ported from debootstrap and multistrap for upstart support if [[ -x $CACHEDIR/sdcard/sbin/initctl ]]; then mv $CACHEDIR/sdcard/sbin/start-stop-daemon $CACHEDIR/sdcard/sbin/start-stop-daemon.REAL -cat < $CACHEDIR/sdcard/sbin/start-stop-daemon -#!/bin/sh -echo "Warning: Fake start-stop-daemon called, doing nothing" -EOF + printf '#!/bin/sh\necho "Warning: Fake start-stop-daemon called, doing nothing"' > $CACHEDIR/sdcard/sbin/start-stop-daemon chmod 755 $CACHEDIR/sdcard/sbin/start-stop-daemon fi - if [[ -x $CACHEDIR/sdcard/sbin/initctl ]]; then mv $CACHEDIR/sdcard/sbin/initctl $CACHEDIR/sdcard/sbin/initctl.REAL -cat < $CACHEDIR/sdcard/sbin/initctl -#!/bin/sh -echo "Warning: Fake initctl called, doing nothing" -EOF + printf '#!/bin/sh\necho "Warning: Fake initctl called, doing nothing"' $CACHEDIR/sdcard/sbin/initctl chmod 755 $CACHEDIR/sdcard/sbin/initctl fi @@ -266,8 +245,7 @@ EOF [[ ${PIPESTATUS[0]} -ne 0 ]] && exit_with_error "Installation of Armbian packages failed" # DEBUG: print free space - echo - echo "Free space:" + echo -e "\nFree space:" df -h | grep "$CACHEDIR/" | tee -a $DEST/debug/debootstrap.log # stage: remove downloaded packages diff --git a/debootstrap.sh b/debootstrap.sh index d4b5ef9426..e39f128f50 100644 --- a/debootstrap.sh +++ b/debootstrap.sh @@ -102,11 +102,7 @@ if [ ! -f "$cache_fname" ]; then debootstrap --include=openssh-server $package_exclude --arch=$ARCH --foreign $RELEASE $CACHEDIR/sdcard/ $redir | dialog --backtitle "$backtitle" --title "Debootstrap $DISTRIBUTION $RELEASE base system to image template ..." --progressbox $TTY_Y $TTY_X # we need emulator for second stage -if [[ $ARCH == *64* ]]; then - cp /usr/bin/qemu-aarch64-static $CACHEDIR/sdcard/usr/bin/ - else - cp /usr/bin/qemu-arm-static $CACHEDIR/sdcard/usr/bin/ -fi +cp /usr/bin/$QEMU_BINARY $CACHEDIR/sdcard/usr/bin/ # and keys d=$CACHEDIR/sdcard/usr/share/keyrings/ @@ -265,7 +261,7 @@ KILLPROC=$(ps -uax | pgrep acpid | tail -1); if [ -n "$KILLPROC" ]; then kill -9 # same info outside the image cp $CACHEDIR/sdcard/etc/armbian.txt $CACHEDIR/ sleep 2 -rm -f $CACHEDIR/sdcard/usr/bin/qemu-arm-static $CACHEDIR/sdcard/usr/bin/qemu-aarch64-static +rm -f $CACHEDIR/sdcard/usr/bin/$QEMU_BINARY sleep 2 umount -l $CACHEDIR/sdcard/boot > /dev/null 2>&1 || /bin/true umount -l $CACHEDIR/sdcard/