diff --git a/common.sh b/common.sh index a3c475233..4dd7c03b8 100644 --- a/common.sh +++ b/common.sh @@ -30,7 +30,7 @@ compile_uboot (){ fi display_alert "Compiling uboot. Please wait." "$VER" "info" - eval ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} ${CROSS_COMPILE}gcc --version | head -1 | tee -a $DEST/debug/install.log + eval ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} ${UBOOT_COMPILER}gcc --version | head -1 | tee -a $DEST/debug/install.log echo cd $SOURCES/$BOOTSOURCEDIR @@ -39,7 +39,7 @@ compile_uboot (){ [[ $LINUXFAMILY == s500 ]] && local MAKEPARA="u-boot-dtb.img" [[ $BOARD == odroidc2 ]] && local MAKEPARA="ARCH=arm" && local cthreads="" - eval ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} 'make $CTHREADS $BOOTCONFIG CROSS_COMPILE="$CROSS_COMPILE"' 2>&1 \ + eval ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} 'make $CTHREADS $BOOTCONFIG CROSS_COMPILE="$CCACHE $UBOOT_COMPILER"' 2>&1 \ ${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/compilation.log'} \ ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} @@ -55,7 +55,7 @@ compile_uboot (){ fi fi - eval ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} 'make $MAKEPARA $cthreads CROSS_COMPILE="$CROSS_COMPILE"' 2>&1 \ + eval ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} 'make $MAKEPARA $cthreads CROSS_COMPILE="$CCACHE $UBOOT_COMPILER"' 2>&1 \ ${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/compilation.log'} \ ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Compiling u-boot..." $TTY_Y $TTY_X'} \ ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} @@ -99,6 +99,9 @@ elif [[ \$DPKG_MAINTSCRIPT_PACKAGE == *udoo* ]] ; then ( dd if=/usr/lib/$uboot_name/u-boot.img of=\$DEVICE bs=1K seek=69 status=noxfer ) > /dev/null 2>&1 elif [[ \$DPKG_MAINTSCRIPT_PACKAGE == *armada* ]] ; then ( dd if=/usr/lib/$uboot_name/u-boot.mmc of=\$DEVICE bs=512 seek=1 status=noxfer ) > /dev/null 2>&1 +elif [[ \$DPKG_MAINTSCRIPT_PACKAGE == *pine64* ]] ; then + ( dd if=/usr/lib/$uboot_name/boot0.bin of=\$DEVICE bs=1k seek=8 status=noxfer ) > /dev/null 2>&1 + ( dd if=/usr/lib/$uboot_name/u-boot-with-dtb.bin of=\$DEVICE bs=1k seek=19096 status=noxfer ) > /dev/null 2>&1 else ( dd if=/dev/zero of=\$DEVICE bs=1k count=1023 seek=1 status=noxfer ) > /dev/null 2>&1 ( dd if=/usr/lib/$uboot_name/u-boot-sunxi-with-spl.bin of=\$DEVICE bs=1024 seek=8 status=noxfer ) > /dev/null 2>&1 @@ -145,6 +148,9 @@ END [ ! -f "u-boot.img" ] || cp SPL u-boot.img $DEST/debs/$uboot_name/usr/lib/$uboot_name elif [[ $BOARD == armada* ]] ; then [ ! -f "u-boot.mmc" ] || cp u-boot.mmc $DEST/debs/$uboot_name/usr/lib/$uboot_name + elif [[ $BOARD == pine64plus ]] ; then + [ ! -f "u-boot-with-dtb.bin" ] || cp u-boot-with-dtb.bin $DEST/debs/$uboot_name/usr/lib/$uboot_name + [ ! -f "boot0.bin" ] || cp boot0.bin $DEST/debs/$uboot_name/usr/lib/$uboot_name else [ ! -f "u-boot-sunxi-with-spl.bin" ] || cp u-boot-sunxi-with-spl.bin $DEST/debs/$uboot_name/usr/lib/$uboot_name fi @@ -197,7 +203,7 @@ compile_kernel (){ grab_version "$SOURCES/$LINUXSOURCEDIR" "VER" display_alert "Compiling $BRANCH kernel" "@host" "info" - eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} ${CROSS_COMPILE}gcc --version | head -1 | tee -a $DEST/debug/install.log + eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} ${KERNEL_COMPILER}gcc --version | head -1 | tee -a $DEST/debug/install.log echo cd $SOURCES/$LINUXSOURCEDIR/ @@ -223,16 +229,16 @@ compile_kernel (){ # We can use multi threading here but not later since it's not working. This way of compilation is much faster. if [[ $KERNEL_CONFIGURE != yes ]]; then if [[ $BRANCH == default ]]; then - eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} 'make $CTHREADS ARCH=$ARCHITECTURE CROSS_COMPILE="$CROSS_COMPILE" silentoldconfig' + eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} 'make $CTHREADS ARCH=$ARCHITECTURE CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" silentoldconfig' else - eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} 'make $CTHREADS ARCH=$ARCHITECTURE CROSS_COMPILE="$CROSS_COMPILE" olddefconfig' + eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} 'make $CTHREADS ARCH=$ARCHITECTURE CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" olddefconfig' fi else - eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} 'make $CTHREADS ARCH=$ARCHITECTURE CROSS_COMPILE="$CROSS_COMPILE" oldconfig' - eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} 'make $CTHREADS ARCH=$ARCHITECTURE CROSS_COMPILE="$CROSS_COMPILE" menuconfig' + eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} 'make $CTHREADS ARCH=$ARCHITECTURE CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" oldconfig' + eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} 'make $CTHREADS ARCH=$ARCHITECTURE CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" menuconfig' fi - eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} 'make $CTHREADS ARCH=$ARCHITECTURE CROSS_COMPILE="$CROSS_COMPILE" $KERNEL_IMAGE_TYPE modules dtbs 2>&1' \ + eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} 'make $CTHREADS ARCH=$ARCHITECTURE CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" $KERNEL_IMAGE_TYPE modules dtbs 2>&1' \ ${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/compilation.log'} \ ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Compiling kernel..." $TTY_Y $TTY_X'} \ ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} @@ -250,7 +256,7 @@ compile_kernel (){ # produce deb packages: image, headers, firmware, dtb eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} 'make -j1 $KERNEL_PACKING KDEB_PKGVERSION=$REVISION LOCALVERSION="-"$LINUXFAMILY \ - KBUILD_DEBARCH=$ARCH ARCH=$ARCHITECTURE DEBFULLNAME="$MAINTAINER" DEBEMAIL="$MAINTAINERMAIL" CROSS_COMPILE="$CROSS_COMPILE" 2>&1 ' \ + KBUILD_DEBARCH=$ARCH ARCH=$ARCHITECTURE DEBFULLNAME="$MAINTAINER" DEBEMAIL="$MAINTAINERMAIL" CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" 2>&1 ' \ ${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/compilation.log'} \ ${OUTPUT_DIALOG:+' | dialog --backtitle "$backtitle" --progressbox "Creating kernel packages..." $TTY_Y $TTY_X'} \ ${OUTPUT_VERYSILENT:+' >/dev/null 2>/dev/null'} @@ -400,7 +406,7 @@ if [[ -n $MISC5_DIR && $BRANCH != next && $LINUXSOURCEDIR == *sunxi* ]]; then cd "$SOURCES/$MISC5_DIR" cp "$SOURCES/$LINUXSOURCEDIR/include/video/sunxi_disp_ioctl.h" . make clean >/dev/null - make ARCH=$ARCHITECTURE CC="${CROSS_COMPILE}gcc" KSRC="$SOURCES/$LINUXSOURCEDIR/" >> $DEST/debug/compilation.log 2>&1 + make ARCH=$ARCHITECTURE CC="${KERNEL_COMPILER}gcc" KSRC="$SOURCES/$LINUXSOURCEDIR/" >> $DEST/debug/compilation.log 2>&1 install -m 755 a10disp "$CACHEDIR/sdcard/usr/local/bin" fi @@ -409,7 +415,7 @@ if [[ -n $MISC5_DIR && $BRANCH != next && $LINUXSOURCEDIR == *sun8i* ]]; then cd "$SOURCES/$MISC5_DIR" wget -q "https://raw.githubusercontent.com/linux-sunxi/linux-sunxi/sunxi-3.4/include/video/sunxi_disp_ioctl.h" make clean >/dev/null 2>&1 - make ARCH=$ARCHITECTURE CC="${CROSS_COMPILE}gcc" KSRC="$SOURCES/$LINUXSOURCEDIR/" >> $DEST/debug/compilation.log 2>&1 + make ARCH=$ARCHITECTURE CC="${KERNEL_COMPILER}gcc" KSRC="$SOURCES/$LINUXSOURCEDIR/" >> $DEST/debug/compilation.log 2>&1 install -m 755 a10disp "$CACHEDIR/sdcard/usr/local/bin" fi @@ -459,6 +465,9 @@ write_uboot() ( dd if=/tmp/usr/lib/${CHOSEN_UBOOT}_${REVISION}_${ARCH}/bl1.bin.hardkernel of=$LOOP bs=512 skip=1 seek=1 conv=fsync ) > /dev/null 2>&1 ( dd if=/tmp/usr/lib/${CHOSEN_UBOOT}_${REVISION}_${ARCH}/u-boot.bin of=$LOOP bs=512 seek=97 conv=fsync ) > /dev/null 2>&1 ( dd if=/dev/zero of=$LOOP seek=1249 count=799 bs=512 conv=fsync ) > /dev/null 2>&1 + elif [[ $BOARD == *pine64* ]] ; then + ( dd if=/tmp/usr/lib/${CHOSEN_UBOOT}_${REVISION}_${ARCH}/boot0.bin of=$LOOP bs=1k seek=8 conv=fsync ) > /dev/null 2>&1 + ( dd if=/tmp/usr/lib/${CHOSEN_UBOOT}_${REVISION}_${ARCH}/u-boot-with-dtb.bin of=$LOOP bs=1k seek=19096 conv=fsync ) > /dev/null 2>&1 else ( dd if=/dev/zero of=$LOOP bs=1k count=1023 seek=1 status=noxfer ) > /dev/null 2>&1 ( dd if=/tmp/usr/lib/${CHOSEN_UBOOT}_${REVISION}_${ARCH}/u-boot-sunxi-with-spl.bin of=$LOOP bs=1024 seek=8 status=noxfer >/dev/null 2>&1) diff --git a/configuration.sh b/configuration.sh index 55a5dba83..6adf580cc 100644 --- a/configuration.sh +++ b/configuration.sh @@ -45,21 +45,6 @@ else exit_with_error "Sources configuration not found" "$LINUXFAMILY" fi -# temporary overrides -case $LINUXFAMILY in - sun4i|sun5i|sun7i) - # latest stable u-boot v2016.03 broke gmac on sun7i, fixing it for DEFAULT and NEXT - [[ $BRANCH == default || $BRANCH == next ]] && BOOTBRANCH='v2016.01' - # fix for olimex boards - [[ ($BRANCH == default || $BRANCH == next) && ($BOARD == lime* || $BOARD == micro) ]] && BOOTBRANCH='v2016.05-rc1' - ;; - - sun8i) - # fix compilation of sun8i-dev u-boot - [[ $BRANCH == dev ]] && BOOTBRANCH='v2016.05-rc1' - ;; -esac - # Let's set defalt data if not defined in board configuration above [[ -z $OFFSET ]] && OFFSET=1 # Bootloader space in MB (1 x 2048 = default) @@ -76,20 +61,40 @@ if [[ $RELEASE == trusty || $RELEASE == xenial ]]; then DISTRIBUTION="Ubuntu"; e case $ARCH in arm64) - CROSS_COMPILE="$CCACHE aarch64-linux-gnu-" - COMPILER="aarch64-linux-gnu-" + KERNEL_COMPILER="aarch64-linux-gnu-" + UBOOT_COMPILER="aarch64-linux-gnu-" ARCHITECTURE=arm64 QEMU_BINARY="qemu-aarch64-static" ;; armhf) - CROSS_COMPILE="$CCACHE arm-linux-gnueabihf-" - COMPILER="arm-linux-gnueabihf-" + KERNEL_COMPILER="arm-linux-gnueabihf-" + UBOOT_COMPILER="arm-linux-gnueabihf-" ARCHITECTURE=arm QEMU_BINARY="qemu-arm-static" ;; esac +# temporary hacks/overrides +case $LINUXFAMILY in + sun4i|sun5i|sun7i) + # latest stable u-boot v2016.03 broke gmac on sun7i, fixing it for DEFAULT and NEXT + [[ $BRANCH == default || $BRANCH == next ]] && BOOTBRANCH='v2016.01' + # fix for olimex boards + [[ ($BRANCH == default || $BRANCH == next) && ($BOARD == lime* || $BOARD == micro) ]] && BOOTBRANCH='v2016.05-rc1' + ;; + + sun8i) + # fix compilation of sun8i-dev u-boot + [[ $BRANCH == dev ]] && BOOTBRANCH='v2016.05-rc1' + ;; + + pine64) + # fix for u-boot needing armhf GCC 4.8 + UBOOT_COMPILER="arm-linux-gnueabihf-" + ;; +esac + # Essential packages PACKAGE_LIST="automake bash-completion bc bridge-utils build-essential cmake cpufrequtils \ device-tree-compiler dosfstools figlet fbset fping git haveged hdparm hostapd ifenslave-2.6 \ diff --git a/extras/mt7601.sh b/extras/mt7601.sh index a3e651f38..592edafe6 100644 --- a/extras/mt7601.sh +++ b/extras/mt7601.sh @@ -63,8 +63,8 @@ install_mt7601() EOF cd src - make -s ARCH=$ARCHITECTURE CROSS_COMPILE="$CROSS_COMPILE" clean >> $DEST/debug/compilation.log 2>&1 - make -s -j4 ARCH=$ARCHITECTURE CROSS_COMPILE="$CROSS_COMPILE" LINUX_SRC=$SOURCES/$LINUXSOURCEDIR/ >> $DEST/debug/compilation.log 2>&1 + make -s ARCH=$ARCHITECTURE CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" clean >> $DEST/debug/compilation.log 2>&1 + make -s -j4 ARCH=$ARCHITECTURE CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" LINUX_SRC=$SOURCES/$LINUXSOURCEDIR/ >> $DEST/debug/compilation.log 2>&1 cp os/linux/*.ko $CACHEDIR/sdcard/lib/modules/$VER-$LINUXFAMILY/kernel/net/wireless/ mkdir -p $CACHEDIR/sdcard/etc/Wireless/RT2870STA cp RT2870STA.dat $CACHEDIR/sdcard/etc/Wireless/RT2870STA/ diff --git a/extras/rtl8192cu.sh b/extras/rtl8192cu.sh index 3a2c66c26..6a4dcb0f8 100644 --- a/extras/rtl8192cu.sh +++ b/extras/rtl8192cu.sh @@ -18,7 +18,7 @@ install_rtl8192cu() fetch_from_github "$plugin_repo" "$plugin_dir" cd $SOURCES/$plugin_dir #git checkout 0ea77e747df7d7e47e02638a2ee82ad3d1563199 - make ARCH=$ARCHITECTURE CROSS_COMPILE="${CROSS_COMPILE//ccache}" clean >> $DEST/debug/compilation.log + make ARCH=$ARCHITECTURE CROSS_COMPILE=$KERNEL_COMPILER clean >> $DEST/debug/compilation.log # GCC5 compatibility patch patch --batch --silent -p1 -N <<-'EOF' @@ -51,7 +51,7 @@ install_rtl8192cu() EOF # GCC5 compatibility patch end - make ARCH=$ARCHITECTURE CROSS_COMPILE="${CROSS_COMPILE//ccache}" KSRC=$SOURCES/$LINUXSOURCEDIR/ >> $DEST/debug/compilation.log + make ARCH=$ARCHITECTURE CROSS_COMPILE=$KERNEL_COMPILER KSRC=$SOURCES/$LINUXSOURCEDIR/ >> $DEST/debug/compilation.log cp *.ko $CACHEDIR/sdcard/lib/modules/$VER-$LINUXFAMILY/kernel/net/wireless/ depmod -b $CACHEDIR/sdcard/ $VER-$LINUXFAMILY #cp blacklist*.conf $CACHEDIR/sdcard/etc/modprobe.d/ diff --git a/extras/usb-redirector.sh b/extras/usb-redirector.sh index f65ec04c9..21255fd1f 100644 --- a/extras/usb-redirector.sh +++ b/extras/usb-redirector.sh @@ -26,7 +26,7 @@ install_usb_redirector() # patch to work with newer kernels sed -e "s/f_dentry/f_path.dentry/g" -i usbdcdev.c if [[ $ARCH == *64* ]]; then ARCHITECTURE=arm64; else ARCHITECTURE=arm; fi - make -j1 ARCH=$ARCHITECTURE CROSS_COMPILE="$CROSS_COMPILE" KERNELDIR=$SOURCES/$LINUXSOURCEDIR/ >> $DEST/debug/install.log 2>&1 + make -j1 ARCH=$ARCHITECTURE CROSS_COMPILE="$CCACHE $KERNEL_COMPILER" KERNELDIR=$SOURCES/$LINUXSOURCEDIR/ >> $DEST/debug/install.log 2>&1 # configure USB redirector sed -e 's/%INSTALLDIR_TAG%/\/usr\/local/g' $SOURCES/usb-redirector-linux-arm-eabi/files/rc.usbsrvd > $SOURCES/usb-redirector-linux-arm-eabi/files/rc.usbsrvd1 sed -e 's/%PIDFILE_TAG%/\/var\/run\/usbsrvd.pid/g' $SOURCES/usb-redirector-linux-arm-eabi/files/rc.usbsrvd1 > $SOURCES/usb-redirector-linux-arm-eabi/files/rc.usbsrvd diff --git a/general.sh b/general.sh index b3b572c7f..91bd14e80 100644 --- a/general.sh +++ b/general.sh @@ -33,8 +33,8 @@ cleaning() { case $1 in "make") # clean u-boot and kernel sources - [ -d "$SOURCES/$BOOTSOURCEDIR" ] && display_alert "Cleaning" "$SOURCES/$BOOTSOURCEDIR" "info" && cd $SOURCES/$BOOTSOURCEDIR && make -s ARCH=arm CROSS_COMPILE="$CROSS_COMPILE" clean >/dev/null - [ -d "$SOURCES/$LINUXSOURCEDIR" ] && display_alert "Cleaning" "$SOURCES/$LINUXSOURCEDIR" "info" && cd $SOURCES/$LINUXSOURCEDIR && make -s ARCH=arm CROSS_COMPILE="$CROSS_COMPILE" clean >/dev/null + [ -d "$SOURCES/$BOOTSOURCEDIR" ] && display_alert "Cleaning" "$SOURCES/$BOOTSOURCEDIR" "info" && cd $SOURCES/$BOOTSOURCEDIR && make -s ARCH=$ARCHITECTURE CROSS_COMPILE=$UBOOT_COMPILER clean >/dev/null + [ -d "$SOURCES/$LINUXSOURCEDIR" ] && display_alert "Cleaning" "$SOURCES/$LINUXSOURCEDIR" "info" && cd $SOURCES/$LINUXSOURCEDIR && make -s ARCH=$ARCHITECTURE CROSS_COMPILE=$KERNEL_COMPILER clean >/dev/null ;; "debs") # delete output/debs for current branch and family @@ -289,7 +289,7 @@ prepare_host() { PAK="ca-certificates device-tree-compiler pv bc lzop zip binfmt-support build-essential ccache debootstrap ntpdate pigz \ gawk gcc-arm-linux-gnueabihf gcc-arm-linux-gnueabi qemu-user-static u-boot-tools uuid-dev zlib1g-dev unzip libusb-1.0-0-dev ntpdate \ parted pkg-config libncurses5-dev whiptail debian-keyring debian-archive-keyring f2fs-tools libfile-fcntllock-perl rsync libssl-dev \ - nfs-kernel-server btrfs-tools gcc-aarch64-linux-gnu ncurses-term p7zip-full" + nfs-kernel-server btrfs-tools gcc-aarch64-linux-gnu ncurses-term p7zip-full dos2unix" # warning: apt-cacher-ng will fail if installed and used both on host and in container/chroot environment with shared network # set NO_APT_CACHER=yes to prevent installation errors in such case