From ded3d189f25d5028f1afe2a0b0acb6361e2b0ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Wed, 24 Oct 2018 13:13:04 +0200 Subject: [PATCH] Leave `xenial` and `stretch` only --- Makefile | 39 +---- .../usr/local/sbin/install_openmediavault.sh | 141 ++++++++++++++---- simpleimage/make_rootfs.sh | 8 +- 3 files changed, 124 insertions(+), 64 deletions(-) diff --git a/Makefile b/Makefile index 08a6f3e9..5291042c 100644 --- a/Makefile +++ b/Makefile @@ -100,7 +100,7 @@ simple-image-pinebook-1080p-$(RELEASE_NAME).img: linux-pine64-$(RELEASE_NAME).ta export uboot=../boot-tools/boot/pine64/u-boot-pine64-pinebook-1080p.bin && \ bash ./make_simpleimage.sh $(shell readlink -f "$@") 150 $(shell readlink -f linux-pine64-$(RELEASE_NAME).tar.xz) -BUILD_SYSTEMS := xenial zesty jessie stretch +BUILD_SYSTEMS := xenial stretch BUILD_VARIANTS := minimal mate i3 openmediavault BUILD_ARCHS := arm64 BUILD_MODELS := pine64 pinebook pinebook-1080p sopine @@ -140,18 +140,6 @@ simple-image-sopine: simple-image-sopine-$(RELEASE_NAME).img.xz .PHONY: simple-image simple-image: simple-image-pinebook simple-image-pine64 simple-image-sopine -.PHONY: zesty-minimal-pinebook -zesty-minimal-pinebook: zesty-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - zesty-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: xenial-mate-pinebook -zesty-mate-pinebook: zesty-mate-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - zesty-mate-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: xenial-i3-pinebook -zesty-i3-pinebook: zesty-i3-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ - zesty-i3-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - .PHONY: xenial-minimal-pinebook xenial-minimal-pinebook: xenial-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ xenial-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz @@ -174,21 +162,8 @@ stretch-minimal-sopine: stretch-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEA stretch-minimal-pinebook: stretch-minimal-pinebook-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz \ stretch-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz -.PHONY: jessie-minimal-pinebook -jessie-minimal-pinebook: jessie-minimal-pinebook-$(RELEASE_NAME)-$(RELEASE).img.xz \ - jessie-minimal-pinebook-1080p-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: jessie-minimal-sopine -jessie-minimal-sopine: jessie-minimal-sopine-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: jessie-minimal-pine64 -jessie-minimal-pine64: jessie-minimal-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: jessie-openmediavault-pine64 -jessie-openmediavault-pine64: jessie-openmediavault-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz - -.PHONY: zesty-pinebook -zesty-pinebook: zesty-minimal-pinebook zesty-mate-pinebook zesty-i3-pinebook +.PHONY: stretch-openmediavault-pine64 +stretch-openmediavault-pine64: stretch-openmediavault-pine64-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: xenial-pinebook xenial-pinebook: xenial-minimal-pinebook xenial-mate-pinebook xenial-i3-pinebook @@ -199,20 +174,14 @@ stretch-pinebook: stretch-minimal-pinebook .PHONY: linux-pinebook linux-pinebook: simple-image-pinebook xenial-pinebook stretch-pinebook -.PHONY: zesty-minimal-pine64 -zesty-minimal-pine64: zesty-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - .PHONY: xenial-minimal-pine64 xenial-minimal-pine64: xenial-minimal-pine64-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-pine64 linux-pine64: simple-image-pine64 xenial-minimal-pine64 stretch-minimal-pine64 -.PHONY: zesty-minimal-sopine -zesty-minimal-sopine: zesty-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz - .PHONY: xenial-minimal-sopine - xenial-minimal-sopine: xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz +xenial-minimal-sopine: xenial-minimal-sopine-bspkernel-$(RELEASE_NAME)-$(RELEASE).img.xz .PHONY: linux-sopine linux-sopine: simple-image-sopine xenial-minimal-sopine stretch-minimal-sopine diff --git a/package/root/usr/local/sbin/install_openmediavault.sh b/package/root/usr/local/sbin/install_openmediavault.sh index ee7f398c..bf95baeb 100644 --- a/package/root/usr/local/sbin/install_openmediavault.sh +++ b/package/root/usr/local/sbin/install_openmediavault.sh @@ -1,62 +1,153 @@ #!/bin/bash -if [[ "$(lsb_release -c -s)" != "jessie" ]]; then - echo "This script only works on Debian/Jessie" - exit 1 +case "$(lsb_release -c -s)" in + jessie) + RELEASE="erasmus" + EXTRAS_URL="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all3.deb" + ;; + + stretch) + RELEASE="arrakis" + EXTRAS_URL="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all4.deb" + ;; + + *) + echo "This script only works on Debian/Jessie|Stretch" + exit 1 +esac + +echo "OpenMediaVault installation script" +echo "Script is based on Armbian, OMV and tkaiser work: https://github.com/armbian/build/blob/master/config/templates/customize-image.sh.template" +echo "" +echo "This script overwrites network interfaces." +echo "Make sure that you configured them in OpenMediaVault interface before rebooting." +echo "" + +if [[ -t 0 ]]; then + echo "In order to continue type YES or cancel:" + while read PROMPT; do + if [[ "$PROMPT" == "YES" ]]; then + break + fi + done fi set -xe -# Based on https://github.com/armbian/build/blob/b13e92911e91e34b0b9189c704f3186a0b3788f0/scripts/customize-image.sh.template#L31 - #Add OMV source.list and Update System cat > /etc/apt/sources.list.d/openmediavault.list <<- EOF -# deb http://packages.openmediavault.org/public erasmus main -deb https://openmediavault.github.io/packages/ erasmus main +# deb http://packages.openmediavault.org/public $RELEASE main +deb https://openmediavault.github.io/packages/ $RELEASE main ## Uncomment the following line to add software from the proposed repository. -# deb http://packages.openmediavault.org/public erasmus-proposed main -deb https://openmediavault.github.io/packages/ erasmus-proposed main +# deb http://packages.openmediavault.org/public $RELEASE-proposed main +deb https://openmediavault.github.io/packages/ $RELEASE-proposed main ## This software is not part of OpenMediaVault, but is offered by third-party ## developers as a service to OpenMediaVault users. -# deb http://packages.openmediavault.org/public erasmus partner +# deb http://packages.openmediavault.org/public $RELEASE partner EOF # Add OMV and OMV Plugin developer keys +apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 24863F0C716B980B 7E7A6C592EF35D13 7AA630A1EDEE7D73 apt-get update -y -apt-get --yes --force-yes --allow-unauthenticated install openmediavault-keyring -apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7AA630A1EDEE7D73 # install debconf-utils, postfix and OMV debconf-set-selections <<< "postfix postfix/mailname string openmediavault" debconf-set-selections <<< "postfix postfix/main_mailer_type string 'No configuration'" -apt-get -y install \ - debconf-utils postfix +apt-get -y install debconf-utils postfix # install openmediavault -apt-get --yes install openmediavault +apt-get --yes install openmediavault openmediavault-keyring # install OMV extras, enable folder2ram, tweak some settings FILE=$(mktemp) -wget http://omv-extras.org/openmediavault-omvextrasorg_latest_all3.deb -qO $FILE && dpkg -i $FILE && rm $FILE +wget "$EXTRAS_URL" -qO $FILE +dpkg -i $FILE /usr/sbin/omv-update -# use folder2ram instead of log2ram with OMV +# FIX TFTPD ipv4 +[ -f /etc/default/tftpd-hpa ] && sed -i 's/--secure/--secure --ipv4/' /etc/default/tftpd-hpa + +# load OMV helpers +. /usr/share/openmediavault/scripts/helper-functions + +# use folder2ram apt-get -y install openmediavault-flashmemory -sed -i -e '//,/<\/flashmemory>/ s/0/1/' \ - -e '//,/<\/ssh>/ s/0/1/' \ - -e '//,/<\/ntp>/ s/0/1/' \ +xmlstarlet ed -L -u "/config/services/flashmemory/enable" -v "1" ${OMV_CONFIG_FILE} + +# enable ssh, but disallow root login +xmlstarlet ed -L -u "/config/services/ssh/enable" -v "1" ${OMV_CONFIG_FILE} +xmlstarlet ed -L -u "/config/services/ssh/permitrootlogin" -v "0" ${OMV_CONFIG_FILE} + +# enable ntp +xmlstarlet ed -L -u "/config/system/time/ntp/enable" -v "1" ${OMV_CONFIG_FILE} + +# improve netatalk performance +apt-get -y install openmediavault-netatalk +AFP_Options="mimic model = Macmini" +xmlstarlet ed -L -u "/config/services/afp/extraoptions" -v "$(echo -e "${AFP_Options}")" ${OMV_CONFIG_FILE} + +# improve samba performance +SMB_Options="min receivefile size = 16384\nwrite cache size = 524288\ngetwd cache = yes\nsocket options = TCP_NODELAY IPTOS_LOWDELAY" +xmlstarlet ed -L -u "/config/services/smb/extraoptions" -v "$(echo -e "${SMB_Options}")" ${OMV_CONFIG_FILE} + +# fix timezone +xmlstarlet ed -L -u "/config/system/time/timezone" -v "UTC" ${OMV_CONFIG_FILE} + +# fix hostname +xmlstarlet ed -L -u "/config/system/network/dns/hostname" -v "$(cat /etc/hostname)" ${OMV_CONFIG_FILE} + +# disable monitoring +xmlstarlet ed -L -u "/config/system/monitoring/perfstats/enable" -v "0" ${OMV_CONFIG_FILE} + +# disable journal for rrdcached +sed -i 's|-j /var/lib/rrdcached/journal/ ||' /etc/init.d/rrdcached + +# add eth0 interface +xmlstarlet ed -L \ + -s /config/system/network/interfaces -t elem -n interface \ + -s /config/system/network/interfaces/interface -t elem -n uuid -v 4fa8fd59-e5be-40f6-a76d-be6a73ed1407 \ + -s /config/system/network/interfaces/interface -t elem -n type -v ethernet \ + -s /config/system/network/interfaces/interface -t elem -n devicename -v eth0 \ + -s /config/system/network/interfaces/interface -t elem -n method -v dhcp \ + -s /config/system/network/interfaces/interface -t elem -n method6 -v manual \ /etc/openmediavault/config.xml +# configure cpufreq +cat <>/etc/default/openmediavault +OMV_CPUFREQUTILS_GOVERNOR=ondemand +OMV_CPUFREQUTILS_MINSPEED=0 +OMV_CPUFREQUTILS_MAXSPEED=0 +EOF + +cat <>/etc/rsyslog.d/omv-armbian.conf +:msg, contains, "do ionice -c1" ~ +:msg, contains, "action " ~ +:msg, contains, "netsnmp_assert" ~ +:msg, contains, "Failed to initiate sched scan" ~ +EOF + +# update configs +/usr/sbin/omv-mkconf monit +/usr/sbin/omv-mkconf netatalk +/usr/sbin/omv-mkconf samba +/usr/sbin/omv-mkconf timezone +/usr/sbin/omv-mkconf collectd /usr/sbin/omv-mkconf flashmemory +/usr/sbin/omv-mkconf ssh /usr/sbin/omv-mkconf ntp +/usr/sbin/omv-mkconf cpufrequtils +/usr/sbin/omv-mkconf interfaces -systemctl disable log2ram -/sbin/folder2ram -enablesystemd -sed -i 's|-j /var/lib/rrdcached/journal/ ||' /etc/init.d/rrdcached +# make sure that rrdcached/php does exist +mkdir -p /var/lib/rrdcached /var/lib/php -#FIX TFTPD ipv4 -[ -f /etc/default/tftpd-hpa ] && sed -i 's/--secure/--secure --ipv4/' /etc/default/tftpd-hpa +# disable rrdcached +systemctl disable rrdcached + +/sbin/folder2ram -enablesystemd +/sbin/folder2ram -mountall || true +/sbin/folder2ram -umountall || true # init OMV # /usr/sbin/omv-initsystem diff --git a/simpleimage/make_rootfs.sh b/simpleimage/make_rootfs.sh index 0cdb4e4d..fe26106a 100755 --- a/simpleimage/make_rootfs.sh +++ b/simpleimage/make_rootfs.sh @@ -83,12 +83,12 @@ case $DISTRO in ROOTFS="http://archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz" TAR_OPTIONS="-z" ;; - xenial|zesty) + xenial|bionic) version=$(curl -s https://api.github.com/repos/$RELEASE_REPO/releases/latest | jq -r ".tag_name") ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/ubuntu-${DISTRO}-${VARIANT}-${version}-${BUILD_ARCH}.tar.xz" TAR_OPTIONS="-J --strip-components=1 binary" ;; - sid|jessie|stretch) + sid|stretch) version=$(curl -s https://api.github.com/repos/$RELEASE_REPO/releases/latest | jq -r ".tag_name") ROOTFS="https://github.com/$RELEASE_REPO/releases/download/${version}/debian-${DISTRO}-${VARIANT}-${version}-${BUILD_ARCH}.tar.xz" TAR_OPTIONS="-J --strip-components=1 binary" @@ -143,7 +143,7 @@ case $DISTRO in echo "No longer supported" exit 1 ;; - xenial|sid|jessie|stretch) + xenial|bionic|sid|jessie|stretch) rm "$DEST/etc/resolv.conf" cp /etc/resolv.conf "$DEST/etc/resolv.conf" DEB=ubuntu @@ -166,7 +166,7 @@ apt-get -y install sudo sunxi-disp-tool \ dosfstools curl xz-utils iw rfkill wpasupplicant openssh-server \ alsa-utils nano git build-essential vim jq wget ca-certificates \ htop figlet gdisk parted rsync -if [[ "$DISTRO" == "xenial" || "$DISTRO" == "zesty" ]]; then +if [[ "$DISTRO" == "xenial" || "$DISTRO" == "bionic" ]]; then apt-get -y install landscape-common fi adduser --gecos $DEBUSER --disabled-login $DEBUSER --uid 1000