Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- distribution=$(lsb_release -cs)
- case $distribution in
- jessie)
- OMV_Name="erasmus"
- OMV_EXTRAS_URL="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all3.deb"
- ;;
- stretch)
- OMV_Name="arrakis"
- OMV_EXTRAS_URL="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all4.deb"
- ;;
- *)
- OMV_Name="stoneburner"
- OMV_EXTRAS_URL="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all.deb"
- ;;
- esac
- export APT_LISTCHANGES_FRONTEND=none
- if [ -f /etc/armbian-release ]; then
- . /etc/armbian-release
- else
- sed -i "s/^# en_US.UTF-8/en_US.UTF-8/" /etc/locale.gen
- locale-gen
- fi
- # preserve cpufrequtils settings:
- if [ -f /etc/default/cpufrequtils ]; then
- . /etc/default/cpufrequtils
- fi
- cat > /etc/apt/sources.list.d/openmediavault.list << EOF
- deb https://openmediavault.github.io/packages/ ${OMV_Name} main
- ## Uncomment the following line to add software from the proposed repository.
- deb https://openmediavault.github.io/packages/ ${OMV_Name}-proposed main
- ## This software is not part of OpenMediaVault, but is offered by third-party
- ## developers as a service to OpenMediaVault users.
- # deb https://openmediavault.github.io/packages/ ${OMV_Name} partner
- EOF
- debconf-apt-progress -- apt-get update
- read HOSTNAME </etc/hostname
- read TZ </etc/timezone
- debconf-set-selections <<< "postfix postfix/mailname string ${HOSTNAME}"
- debconf-set-selections <<< "postfix postfix/main_mailer_type string 'No configuration'"
- SPACE_NEEDED=$(apt-get --assume-no --allow-unauthenticated --fix-missing --no-install-recommends install openmediavault postfix dirmngr 2>/dev/null | awk -F" " '/additional disk space will be used/ {print $4}')
- SPACE_AVAIL=$(df -k / | awk -F" " '/\/$/ {printf ("%0.0f",$4/1200); }')
- if [ ${SPACE_AVAIL} -lt ${SPACE_NEEDED} ]; then
- dialog --backtitle "$backtitle" --title "No space left on device" --msgbox "\nOpenMediaVault needs ${SPACE_NEEDED} MB for installation while only ${SPACE_AVAIL} MB are available." 7 52
- exit 1
- fi
- apt-get --allow-unauthenticated install openmediavault-keyring
- apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7AA630A1EDEE7D73
- debconf-apt-progress -- apt-get -y --allow-unauthenticated --fix-missing --no-install-recommends \
- -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install openmediavault postfix dirmngr
- FILE="${TEMP_DIR}/omv_extras.deb"; wget "$OMV_EXTRAS_URL" -qO $FILE && dpkg -i $FILE ; rm $FILE
- # /usr/sbin/omv-update
- debconf-apt-progress -- apt-get update
- debconf-apt-progress -- apt-get --yes --force-yes --fix-missing --auto-remove --allow-unauthenticated \
- --show-upgraded --option DPkg::Options::="--force-confold" dist-upgrade
- # Install flashmemory plugin and netatalk by default, use nice logo for the latter,
- # disable OMV monitoring by default
- . /usr/share/openmediavault/scripts/helper-functions
- debconf-apt-progress -- apt-get -y --fix-missing --no-install-recommends --auto-remove install openmediavault-flashmemory openmediavault-netatalk
- AFP_Options="mimic model = Macmini"
- 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/afp/extraoptions" -v "$(echo -e "${AFP_Options}")" ${OMV_CONFIG_FILE}
- xmlstarlet ed -L -u "/config/services/smb/extraoptions" -v "$(echo -e "${SMB_Options}")" ${OMV_CONFIG_FILE}
- xmlstarlet ed -L -u "/config/services/flashmemory/enable" -v "1" ${OMV_CONFIG_FILE}
- xmlstarlet ed -L -u "/config/services/ssh/enable" -v "1" ${OMV_CONFIG_FILE}
- xmlstarlet ed -L -u "/config/services/ssh/permitrootlogin" -v "1" ${OMV_CONFIG_FILE}
- xmlstarlet ed -L -u "/config/system/time/ntp/enable" -v "1" ${OMV_CONFIG_FILE}
- xmlstarlet ed -L -u "/config/system/time/timezone" -v "${TZ}" ${OMV_CONFIG_FILE}
- xmlstarlet ed -L -u "/config/system/network/dns/hostname" -v "${HOSTNAME}" ${OMV_CONFIG_FILE}
- /usr/sbin/omv-rpc -u admin "perfstats" "set" '{"enable":false}'
- /usr/sbin/omv-rpc -u admin "config" "applyChanges" '{ "modules": ["monit","rrdcached","collectd"],"force": true }'
- sed -i 's|-j /var/lib/rrdcached/journal/ ||' /etc/init.d/rrdcached
- systemctl status log2ram >/dev/null 2>&1 && (systemctl disable log2ram ; rm /etc/cron.daily/log2ram)
- /sbin/folder2ram -enablesystemd 2>/dev/null
- # Prevent accidentally destroying board performance by clicking around in OMV UI since
- # OMV sets 'powersave' governor when touching 'Power Management' settings.
- if [ ! -f /etc/default/cpufrequtils ]; then
- DEFAULT_GOV="$(zgrep "^CONFIG_CPU_FREQ_DEFAULT_GOV_" /proc/config.gz 2>/dev/null | sed 's/CONFIG_CPU_FREQ_DEFAULT_GOV_//')"
- if [ -n "${DEFAULT_GOV}" ]; then
- GOVERNOR=$(cut -f1 -d= <<<"${DEFAULT_GOV}" | tr '[:upper:]' '[:lower:]')
- else
- GOVERNOR=ondemand
- fi
- MIN_SPEED="0"
- MAX_SPEED="0"
- fi
- echo -e "OMV_CPUFREQUTILS_GOVERNOR=${GOVERNOR}" >>/etc/default/openmediavault
- echo -e "OMV_CPUFREQUTILS_MINSPEED=${MIN_SPEED}" >>/etc/default/openmediavault
- echo -e "OMV_CPUFREQUTILS_MAXSPEED=${MAX_SPEED}" >>/etc/default/openmediavault
- for i in netatalk samba flashmemory ssh ntp timezone monit rrdcached collectd cpufrequtils ; do
- /usr/sbin/omv-mkconf $i
- done
- # Hardkernel Cloudshell 1 and 2 fixes, read the whole thread for details:
- # https://forum.openmediavault.org/index.php/Thread/17855
- lsusb | grep -q -i "05e3:0735" && sed -i "/exit 0/i echo 20 > /sys/class/block/sda/queue/max_sectors_kb" /etc/rc.local
- if [ "X${BOARD}" = "Xodroidxu4" ]; then
- HMP_Fix='; taskset -c -p 4-7 $i '
- apt install -y i2c-tools
- /usr/sbin/i2cdetect -y 1 | grep -q "60: 60"
- if [ $? - eq 0 ]; then
- add-apt-repository -y ppa:kyle1117/ppa
- sed -i 's/jessie/xenial/' /etc/apt/sources.list.d/kyle1117-ppa-jessie.list
- apt install -y -q cloudshell-lcd odroid-cloudshell cloudshell2-fan &
- lsusb -v | awk -F"__" '/RANDOM_/ {print $2}' | head -n1 | while read ; do
- echo "ATTRS{idVendor}==\"152d\", ATTRS{idProduct}==\"0561\", KERNEL==\"sd*\", ENV{DEVTYPE}==\"disk\", SYMLINK=\"disk/by-id/\$env{ID_BUS}-CloudShell2-${REPLY}-\$env{ID_MODEL}\"" >> /etc/udev/rules.d/99-cloudshell2.rules
- echo "ATTRS{idVendor}==\"152d\", ATTRS{idProduct}==\"0561\", KERNEL==\"sd*\", ENV{DEVTYPE}==\"partition\", SYMLINK=\"disk/by-id/\$env{ID_BUS}-CloudShell2-${REPLY}-\$env{ID_MODEL}-part%n\"" >> /etc/udev/rules.d/99-cloudshell2.rules
- done
- fi
- fi
- # Add a cron job to make NAS processes more snappy
- systemctl status rsyslog >/dev/null 2>&1
- if [ $? -eq 0 ]; then
- echo ':msg, contains, "do ionice -c1" ~' >/etc/rsyslog.d/omv-armbian.conf
- systemctl restart rsyslog
- fi
- echo "* * * * * root for i in \`pgrep \"ftpd|nfsiod|smbd|afpd|cnid\"\` ; do ionice -c1 -p \$i ${HMP_Fix}; done >/dev/null 2>&1" >/etc/cron.d/make_nas_processes_faster
- chmod 600 /etc/cron.d/make_nas_processes_faster
- /usr/sbin/omv-initsystem
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement