mirror of
https://github.com/okunze/Argon40-ArgonOne-Script.git
synced 2024-11-17 19:08:57 +01:00
701 lines
19 KiB
Bash
701 lines
19 KiB
Bash
#!/bin/bash
|
|
|
|
echo "*************"
|
|
echo " Argon Setup "
|
|
echo "*************"
|
|
|
|
|
|
# Check time if need to 'fix'
|
|
NEEDSTIMESYNC=0
|
|
LOCALTIME=$(date -u +%s%N | cut -b1-10)
|
|
GLOBALTIME=$(curl -s 'http://worldtimeapi.org/api/ip.txt' | grep unixtime | cut -b11-20)
|
|
TIMEDIFF=$((GLOBALTIME-LOCALTIME))
|
|
|
|
# about 26hrs, max timezone difference
|
|
if [ $TIMEDIFF -gt 100000 ]
|
|
then
|
|
NEEDSTIMESYNC=1
|
|
fi
|
|
|
|
|
|
argon_time_error() {
|
|
echo "**********************************************"
|
|
echo "* WARNING: Device time seems to be incorrect *"
|
|
echo "* This may cause problems during setup. *"
|
|
echo "**********************************************"
|
|
echo "Possible Network Time Protocol Server issue"
|
|
echo "Try running the following to correct:"
|
|
echo " curl -k https://download.argon40.com/tools/setntpserver.sh | bash"
|
|
}
|
|
|
|
if [ $NEEDSTIMESYNC -eq 1 ]
|
|
then
|
|
argon_time_error
|
|
fi
|
|
|
|
|
|
# Helper variables
|
|
ARGONDOWNLOADSERVER=https://download.argon40.com
|
|
|
|
INSTALLATIONFOLDER=/etc/argon
|
|
|
|
FLAGFILEV1=$INSTALLATIONFOLDER/flag_v1
|
|
|
|
versioninfoscript=$INSTALLATIONFOLDER/argon-versioninfo.sh
|
|
|
|
uninstallscript=$INSTALLATIONFOLDER/argon-uninstall.sh
|
|
shutdownscript=/lib/systemd/system-shutdown/argon-shutdown.sh
|
|
configscript=$INSTALLATIONFOLDER/argon-config
|
|
unitconfigscript=$INSTALLATIONFOLDER/argon-unitconfig.sh
|
|
blstrdacconfigscript=$INSTALLATIONFOLDER/argon-blstrdac.sh
|
|
statusdisplayscript=$INSTALLATIONFOLDER/argon-status.sh
|
|
|
|
setupmode="Setup"
|
|
|
|
if [ -f $configscript ]
|
|
then
|
|
setupmode="Update"
|
|
echo "Updating files"
|
|
else
|
|
sudo mkdir $INSTALLATIONFOLDER
|
|
sudo chmod 755 $INSTALLATIONFOLDER
|
|
fi
|
|
|
|
##########
|
|
# Start code lifted from raspi-config
|
|
# is_pifive, get_serial_hw and do_serial_hw based on raspi-config
|
|
|
|
if [ -e /boot/firmware/config.txt ] ; then
|
|
FIRMWARE=/firmware
|
|
else
|
|
FIRMWARE=
|
|
fi
|
|
CONFIG=/boot${FIRMWARE}/config.txt
|
|
TMPCONFIG=/dev/shm/argontmp.bak
|
|
|
|
set_config_var() {
|
|
if ! grep -q -E "$1=$2" $3 ; then
|
|
echo "$1=$2" | sudo tee -a $3 > /dev/null
|
|
fi
|
|
}
|
|
|
|
is_pifive() {
|
|
grep -q "^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F]4[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]$" /proc/cpuinfo
|
|
return $?
|
|
}
|
|
|
|
|
|
get_serial_hw() {
|
|
if is_pifive ; then
|
|
if grep -q -E "dtparam=uart0=off" $CONFIG ; then
|
|
echo 1
|
|
elif grep -q -E "dtparam=uart0" $CONFIG ; then
|
|
echo 0
|
|
else
|
|
echo 1
|
|
fi
|
|
else
|
|
if grep -q -E "^enable_uart=1" $CONFIG ; then
|
|
echo 0
|
|
elif grep -q -E "^enable_uart=0" $CONFIG ; then
|
|
echo 1
|
|
elif [ -e /dev/serial0 ] ; then
|
|
echo 0
|
|
else
|
|
echo 1
|
|
fi
|
|
fi
|
|
}
|
|
|
|
do_serial_hw() {
|
|
if [ $1 -eq 0 ] ; then
|
|
if is_pifive ; then
|
|
set_config_var dtparam=uart0 on $CONFIG
|
|
else
|
|
set_config_var enable_uart 1 $CONFIG
|
|
fi
|
|
else
|
|
if is_pifive ; then
|
|
sudo sed $CONFIG -i -e "/dtparam=uart0.*/d"
|
|
else
|
|
set_config_var enable_uart 0 $CONFIG
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# End code lifted from raspi-config
|
|
##########
|
|
|
|
# Reuse is_pifive, set_config_var
|
|
set_nvme_default() {
|
|
if is_pifive ; then
|
|
set_config_var dtparam nvme $CONFIG
|
|
set_config_var dtparam=pciex1_gen 3 $CONFIG
|
|
fi
|
|
}
|
|
set_maxusbcurrent() {
|
|
if is_pifive ; then
|
|
set_config_var max_usb_current 1 $CONFIG
|
|
fi
|
|
}
|
|
|
|
|
|
argon_check_pkg() {
|
|
RESULT=$(dpkg-query -W -f='${Status}\n' "$1" 2> /dev/null | grep "installed")
|
|
|
|
if [ "" == "$RESULT" ]; then
|
|
echo "NG"
|
|
else
|
|
echo "OK"
|
|
fi
|
|
}
|
|
|
|
|
|
CHECKDEVICE="one" # Hardcoded for argonone
|
|
# Check if has RTC
|
|
# Todo for multiple OS
|
|
|
|
#i2cdetect -y 1 | grep -q ' 51 '
|
|
#if [ $? -eq 0 ]
|
|
#then
|
|
# CHECKDEVICE="eon"
|
|
#fi
|
|
|
|
CHECKGPIOMODE="libgpiod" # libgpiod or rpigpio
|
|
|
|
# Check if Raspbian, Ubuntu, others
|
|
CHECKPLATFORM="Others"
|
|
CHECKPLATFORMVERSION=""
|
|
CHECKPLATFORMVERSIONNUM=""
|
|
if [ -f "/etc/os-release" ]
|
|
then
|
|
source /etc/os-release
|
|
if [ "$ID" = "raspbian" ]
|
|
then
|
|
CHECKPLATFORM="Raspbian"
|
|
CHECKPLATFORMVERSION=$VERSION_ID
|
|
elif [ "$ID" = "debian" ]
|
|
then
|
|
# For backwards compatibility, continue using raspbian
|
|
CHECKPLATFORM="Raspbian"
|
|
CHECKPLATFORMVERSION=$VERSION_ID
|
|
elif [ "$ID" = "ubuntu" ]
|
|
then
|
|
CHECKPLATFORM="Ubuntu"
|
|
CHECKPLATFORMVERSION=$VERSION_ID
|
|
fi
|
|
echo ${CHECKPLATFORMVERSION} | grep -e "\." > /dev/null
|
|
if [ $? -eq 0 ]
|
|
then
|
|
CHECKPLATFORMVERSIONNUM=`cut -d "." -f2 <<< $CHECKPLATFORMVERSION `
|
|
CHECKPLATFORMVERSION=`cut -d "." -f1 <<< $CHECKPLATFORMVERSION `
|
|
fi
|
|
fi
|
|
|
|
gpiopkg="python3-libgpiod"
|
|
if [ "$CHECKGPIOMODE" = "rpigpio" ]
|
|
then
|
|
if [ "$CHECKPLATFORM" = "Raspbian" ]
|
|
then
|
|
gpiopkg="raspi-gpio python3-rpi.gpio"
|
|
else
|
|
gpiopkg="python3-rpi.gpio"
|
|
fi
|
|
fi
|
|
|
|
if [ "$CHECKPLATFORM" = "Raspbian" ]
|
|
then
|
|
if [ "$CHECKDEVICE" = "eon" ]
|
|
then
|
|
pkglist=($gpiopkg python3-smbus i2c-tools smartmontools)
|
|
else
|
|
pkglist=($gpiopkg python3-smbus i2c-tools)
|
|
fi
|
|
else
|
|
# Todo handle lgpio
|
|
# Ubuntu has serial and i2c enabled
|
|
if [ "$CHECKDEVICE" = "eon" ]
|
|
then
|
|
pkglist=($gpiopkg python3-smbus i2c-tools smartmontools)
|
|
else
|
|
pkglist=($gpiopkg python3-smbus i2c-tools)
|
|
fi
|
|
fi
|
|
|
|
for curpkg in ${pkglist[@]}; do
|
|
sudo apt-get install -y $curpkg
|
|
RESULT=$(argon_check_pkg "$curpkg")
|
|
if [ "NG" == "$RESULT" ]
|
|
then
|
|
echo "********************************************************************"
|
|
echo "Please also connect device to the internet and restart installation."
|
|
echo "********************************************************************"
|
|
exit
|
|
fi
|
|
done
|
|
|
|
# Ubuntu Mate for RPi has raspi-config too
|
|
command -v raspi-config &> /dev/null
|
|
if [ $? -eq 0 ]
|
|
then
|
|
# Enable i2c and serial
|
|
sudo raspi-config nonint do_i2c 0
|
|
if [ ! "$CHECKDEVICE" = "fanhat" ]
|
|
then
|
|
|
|
if [ "$CHECKPLATFORM" = "Raspbian" ]
|
|
then
|
|
# bookworm raspi-config prompts user when configuring serial
|
|
if [ $(get_serial_hw) -eq 1 ]; then
|
|
do_serial_hw 0
|
|
fi
|
|
else
|
|
sudo raspi-config nonint do_serial 2
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# Added to enabled NVMe for pi5
|
|
set_nvme_default
|
|
|
|
# Fan Setup
|
|
basename="argonone"
|
|
daemonname=$basename"d"
|
|
irconfigscript=$INSTALLATIONFOLDER/${basename}-ir
|
|
fanconfigscript=$INSTALLATIONFOLDER/${basename}-fanconfig.sh
|
|
eepromrpiscript="/usr/bin/rpi-eeprom-config"
|
|
eepromconfigscript=$INSTALLATIONFOLDER/${basename}-eepromconfig.py
|
|
powerbuttonscript=$INSTALLATIONFOLDER/$daemonname.py
|
|
unitconfigfile=/etc/argonunits.conf
|
|
daemonconfigfile=/etc/$daemonname.conf
|
|
daemonfanservice=/lib/systemd/system/$daemonname.service
|
|
|
|
daemonhddconfigfile=/etc/${daemonname}-hdd.conf
|
|
|
|
|
|
if [ -f "$eepromrpiscript" ]
|
|
then
|
|
# EEPROM Config Script
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argon-rpi-eeprom-config-psu.py -O $eepromconfigscript --quiet
|
|
sudo chmod 755 $eepromconfigscript
|
|
fi
|
|
|
|
# Fan Config Script
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argonone-fanconfig.sh -O $fanconfigscript --quiet
|
|
sudo chmod 755 $fanconfigscript
|
|
|
|
|
|
# Fan Daemon/Service Files
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argononed.py -O $powerbuttonscript --quiet
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argononed.service -O $daemonfanservice --quiet
|
|
sudo chmod 644 $daemonfanservice
|
|
|
|
if [ ! "$CHECKDEVICE" = "fanhat" ]
|
|
then
|
|
# IR Files
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argonone-irconfig.sh -O $irconfigscript --quiet
|
|
sudo chmod 755 $irconfigscript
|
|
|
|
if [ ! "$CHECKDEVICE" = "eon" ]
|
|
then
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argon-blstrdac.sh -O $blstrdacconfigscript --quiet
|
|
sudo chmod 755 $blstrdacconfigscript
|
|
fi
|
|
fi
|
|
|
|
# Other utility scripts
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argonstatus.py -O $INSTALLATIONFOLDER/argonstatus.py --quiet
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argon-status.sh -O $statusdisplayscript --quiet
|
|
sudo chmod 755 $statusdisplayscript
|
|
|
|
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argon-versioninfo.sh -O $versioninfoscript --quiet
|
|
sudo chmod 755 $versioninfoscript
|
|
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argonsysinfo.py -O $INSTALLATIONFOLDER/argonsysinfo.py --quiet
|
|
|
|
if [ -f "$FLAGFILEV1" ]
|
|
then
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argonregister-v1.py -O $INSTALLATIONFOLDER/argonregister.py --quiet
|
|
else
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argonregister.py -O $INSTALLATIONFOLDER/argonregister.py --quiet
|
|
fi
|
|
|
|
sudo wget "$ARGONDOWNLOADSERVER/scripts/argonpowerbutton-${CHECKGPIOMODE}.py" -O $INSTALLATIONFOLDER/argonpowerbutton.py --quiet
|
|
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argononed.py -O $powerbuttonscript --quiet
|
|
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argon-unitconfig.sh -O $unitconfigscript --quiet
|
|
sudo chmod 755 $unitconfigscript
|
|
|
|
|
|
# Generate default Fan config file if non-existent
|
|
if [ ! -f $daemonconfigfile ]; then
|
|
sudo touch $daemonconfigfile
|
|
sudo chmod 666 $daemonconfigfile
|
|
|
|
echo '#' >> $daemonconfigfile
|
|
echo '# Argon Fan Speed Configuration (CPU)' >> $daemonconfigfile
|
|
echo '#' >> $daemonconfigfile
|
|
echo '55=30' >> $daemonconfigfile
|
|
echo '60=55' >> $daemonconfigfile
|
|
echo '65=100' >> $daemonconfigfile
|
|
fi
|
|
|
|
if [ "$CHECKDEVICE" = "eon" ]
|
|
then
|
|
if [ ! -f $daemonhddconfigfile ]; then
|
|
sudo touch $daemonhddconfigfile
|
|
sudo chmod 666 $daemonhddconfigfile
|
|
|
|
echo '#' >> $daemonhddconfigfile
|
|
echo '# Argon Fan Speed Configuration (HDD)' >> $daemonhddconfigfile
|
|
echo '#' >> $daemonhddconfigfile
|
|
echo '35=30' >> $daemonhddconfigfile
|
|
echo '40=55' >> $daemonhddconfigfile
|
|
echo '45=100' >> $daemonhddconfigfile
|
|
fi
|
|
fi
|
|
|
|
# Generate default Unit config file if non-existent
|
|
if [ ! -f $unitconfigfile ]; then
|
|
sudo touch $unitconfigfile
|
|
sudo chmod 666 $unitconfigfile
|
|
|
|
echo '#' >> $unitconfigfile
|
|
fi
|
|
|
|
|
|
if [ "$CHECKDEVICE" = "eon" ]
|
|
then
|
|
# RTC Setup
|
|
basename="argoneon"
|
|
daemonname=$basename"d"
|
|
|
|
rtcconfigfile=/etc/argoneonrtc.conf
|
|
rtcconfigscript=$INSTALLATIONFOLDER/${basename}-rtcconfig.sh
|
|
daemonrtcservice=/lib/systemd/system/$daemonname.service
|
|
rtcdaemonscript=$INSTALLATIONFOLDER/$daemonname.py
|
|
|
|
oledconfigscript=$INSTALLATIONFOLDER/${basename}-oledconfig.sh
|
|
oledlibscript=$INSTALLATIONFOLDER/${basename}oled.py
|
|
oledconfigfile=/etc/argoneonoled.conf
|
|
|
|
# Generate default RTC config file if non-existent
|
|
if [ ! -f $rtcconfigfile ]; then
|
|
sudo touch $rtcconfigfile
|
|
sudo chmod 666 $rtcconfigfile
|
|
|
|
echo '#' >> $rtcconfigfile
|
|
echo '# Argon RTC Configuration' >> $rtcconfigfile
|
|
echo '#' >> $rtcconfigfile
|
|
fi
|
|
# Generate default OLED config file if non-existent
|
|
if [ ! -f $oledconfigfile ]; then
|
|
sudo touch $oledconfigfile
|
|
sudo chmod 666 $oledconfigfile
|
|
|
|
echo '#' >> $oledconfigfile
|
|
echo '# Argon OLED Configuration' >> $oledconfigfile
|
|
echo '#' >> $oledconfigfile
|
|
echo 'switchduration=30' >> $oledconfigfile
|
|
echo 'screenlist="clock cpu storage raid ram temp ip"' >> $oledconfigfile
|
|
fi
|
|
|
|
|
|
# RTC Config Script
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argoneon-rtcconfig.sh -O $rtcconfigscript --quiet
|
|
sudo chmod 755 $rtcconfigscript
|
|
|
|
# RTC Daemon/Service Files
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argoneond.py -O $rtcdaemonscript --quiet
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argoneond.service -O $daemonrtcservice --quiet
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argoneonoled.py -O $oledlibscript --quiet
|
|
sudo chmod 644 $daemonrtcservice
|
|
|
|
# OLED Config Script
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argoneon-oledconfig.sh -O $oledconfigscript --quiet
|
|
sudo chmod 755 $oledconfigscript
|
|
|
|
|
|
if [ ! -d $INSTALLATIONFOLDER/oled ]
|
|
then
|
|
sudo mkdir $INSTALLATIONFOLDER/oled
|
|
fi
|
|
|
|
for binfile in font8x6 font16x12 font32x24 font64x48 font16x8 font24x16 font48x32 bgdefault bgram bgip bgtemp bgcpu bgraid bgstorage bgtime
|
|
do
|
|
sudo wget $ARGONDOWNLOADSERVER/oled/${binfile}.bin -O $INSTALLATIONFOLDER/oled/${binfile}.bin --quiet
|
|
done
|
|
fi
|
|
|
|
|
|
# Argon Uninstall Script
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argon-uninstall.sh -O $uninstallscript --quiet
|
|
sudo chmod 755 $uninstallscript
|
|
|
|
# Argon Shutdown script
|
|
sudo wget $ARGONDOWNLOADSERVER/scripts/argon-shutdown.sh -O $shutdownscript --quiet
|
|
sudo chmod 755 $shutdownscript
|
|
|
|
# Argon Config Script
|
|
if [ -f $configscript ]; then
|
|
sudo rm $configscript
|
|
fi
|
|
sudo touch $configscript
|
|
|
|
# To ensure we can write the following lines
|
|
sudo chmod 666 $configscript
|
|
|
|
echo '#!/bin/bash' >> $configscript
|
|
|
|
echo 'echo "--------------------------"' >> $configscript
|
|
echo 'echo "Argon Configuration Tool"' >> $configscript
|
|
echo "$versioninfoscript simple" >> $configscript
|
|
echo 'echo "--------------------------"' >> $configscript
|
|
|
|
echo 'get_number () {' >> $configscript
|
|
echo ' read curnumber' >> $configscript
|
|
echo ' if [ -z "$curnumber" ]' >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo ' echo "-2"' >> $configscript
|
|
echo ' return' >> $configscript
|
|
echo ' elif [[ $curnumber =~ ^[+-]?[0-9]+$ ]]' >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo ' if [ $curnumber -lt 0 ]' >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo ' echo "-1"' >> $configscript
|
|
echo ' return' >> $configscript
|
|
echo ' elif [ $curnumber -gt 100 ]' >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo ' echo "-1"' >> $configscript
|
|
echo ' return' >> $configscript
|
|
echo ' fi ' >> $configscript
|
|
echo ' echo $curnumber' >> $configscript
|
|
echo ' return' >> $configscript
|
|
echo ' fi' >> $configscript
|
|
echo ' echo "-1"' >> $configscript
|
|
echo ' return' >> $configscript
|
|
echo '}' >> $configscript
|
|
echo '' >> $configscript
|
|
|
|
echo 'mainloopflag=1' >> $configscript
|
|
echo 'while [ $mainloopflag -eq 1 ]' >> $configscript
|
|
echo 'do' >> $configscript
|
|
echo ' echo' >> $configscript
|
|
echo ' echo "Choose Option:"' >> $configscript
|
|
echo ' echo " 1. Configure Fan"' >> $configscript
|
|
|
|
blstrdacoption=0
|
|
|
|
if [ "$CHECKDEVICE" = "fanhat" ]
|
|
then
|
|
uninstalloption="4"
|
|
else
|
|
echo ' echo " 2. Configure IR"' >> $configscript
|
|
if [ "$CHECKDEVICE" = "eon" ]
|
|
then
|
|
# ArgonEON Has RTC
|
|
echo ' echo " 3. Configure RTC and/or Schedule"' >> $configscript
|
|
echo ' echo " 4. Configure OLED"' >> $configscript
|
|
uninstalloption="7"
|
|
else
|
|
uninstalloption="6"
|
|
blstrdacoption=$(($uninstalloption-3))
|
|
echo " echo \" $blstrdacoption. Configure BLSTR DAC (v3 only)\"" >> $configscript
|
|
fi
|
|
fi
|
|
|
|
unitsoption=$(($uninstalloption-2))
|
|
echo " echo \" $unitsoption. Configure Units\"" >> $configscript
|
|
statusoption=$(($uninstalloption-1))
|
|
echo " echo \" $statusoption. System Information\"" >> $configscript
|
|
|
|
echo " echo \" $uninstalloption. Uninstall\"" >> $configscript
|
|
echo ' echo ""' >> $configscript
|
|
echo ' echo " 0. Exit"' >> $configscript
|
|
echo " echo -n \"Enter Number (0-$uninstalloption):\"" >> $configscript
|
|
echo ' newmode=$( get_number )' >> $configscript
|
|
|
|
|
|
echo ' if [ $newmode -eq 0 ]' >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo ' echo "Thank you."' >> $configscript
|
|
echo ' mainloopflag=0' >> $configscript
|
|
echo ' elif [ $newmode -eq 1 ]' >> $configscript
|
|
echo ' then' >> $configscript
|
|
|
|
if [ "$CHECKDEVICE" = "eon" ]
|
|
then
|
|
echo ' echo "Choose Triggers:"' >> $configscript
|
|
echo ' echo " 1. CPU Temperature"' >> $configscript
|
|
echo ' echo " 2. HDD Temperature"' >> $configscript
|
|
echo ' echo ""' >> $configscript
|
|
echo ' echo " 0. Cancel"' >> $configscript
|
|
echo " echo -n \"Enter Number (0-2):\"" >> $configscript
|
|
echo ' submode=$( get_number )' >> $configscript
|
|
|
|
echo ' if [ $submode -eq 1 ]' >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo " $fanconfigscript" >> $configscript
|
|
echo ' mainloopflag=0' >> $configscript
|
|
echo ' elif [ $submode -eq 2 ]' >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo " $fanconfigscript hdd" >> $configscript
|
|
echo ' mainloopflag=0' >> $configscript
|
|
echo ' fi' >> $configscript
|
|
|
|
else
|
|
echo " $fanconfigscript" >> $configscript
|
|
echo ' mainloopflag=0' >> $configscript
|
|
fi
|
|
|
|
if [ ! "$CHECKDEVICE" = "fanhat" ]
|
|
then
|
|
echo ' elif [ $newmode -eq 2 ]' >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo " $irconfigscript" >> $configscript
|
|
echo ' mainloopflag=0' >> $configscript
|
|
|
|
if [ "$CHECKDEVICE" = "eon" ]
|
|
then
|
|
echo ' elif [ $newmode -eq 3 ]' >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo " $rtcconfigscript" >> $configscript
|
|
echo ' mainloopflag=0' >> $configscript
|
|
echo ' elif [ $newmode -eq 4 ]' >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo " $oledconfigscript" >> $configscript
|
|
echo ' mainloopflag=0' >> $configscript
|
|
fi
|
|
|
|
if [ $blstrdacoption -gt 0 ]
|
|
then
|
|
echo " elif [ \$newmode -eq $blstrdacoption ]" >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo " $blstrdacconfigscript" >> $configscript
|
|
echo ' mainloopflag=0' >> $configscript
|
|
fi
|
|
fi
|
|
|
|
echo " elif [ \$newmode -eq $unitsoption ]" >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo " $unitconfigscript" >> $configscript
|
|
echo ' mainloopflag=0' >> $configscript
|
|
|
|
echo " elif [ \$newmode -eq $statusoption ]" >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo " $statusdisplayscript" >> $configscript
|
|
|
|
echo " elif [ \$newmode -eq $uninstalloption ]" >> $configscript
|
|
echo ' then' >> $configscript
|
|
echo " $uninstallscript" >> $configscript
|
|
echo ' mainloopflag=0' >> $configscript
|
|
echo ' fi' >> $configscript
|
|
echo 'done' >> $configscript
|
|
|
|
sudo chmod 755 $configscript
|
|
|
|
# Desktop Icon
|
|
shortcutfile="/home/pi/Desktop/argonone-config.desktop"
|
|
if [ "$CHECKPLATFORM" = "Raspbian" ] && [ -d "/home/pi/Desktop" ]
|
|
then
|
|
terminalcmd="lxterminal --working-directory=/home/pi/ -t"
|
|
if [ -f "/home/pi/.twisteros.twid" ]
|
|
then
|
|
terminalcmd="xfce4-terminal --default-working-directory=/home/pi/ -T"
|
|
fi
|
|
imagefile=ar1config.png
|
|
if [ "$CHECKDEVICE" = "eon" ]
|
|
then
|
|
imagefile=argoneon.png
|
|
fi
|
|
sudo wget http://download.argon40.com/$imagefile -O /usr/share/pixmaps/$imagefile --quiet
|
|
if [ -f $shortcutfile ]; then
|
|
sudo rm $shortcutfile
|
|
fi
|
|
|
|
# Create Shortcuts
|
|
echo "[Desktop Entry]" > $shortcutfile
|
|
echo "Name=Argon Configuration" >> $shortcutfile
|
|
echo "Comment=Argon Configuration" >> $shortcutfile
|
|
echo "Icon=/usr/share/pixmaps/$imagefile" >> $shortcutfile
|
|
echo 'Exec='$terminalcmd' "Argon Configuration" -e '$configscript >> $shortcutfile
|
|
echo "Type=Application" >> $shortcutfile
|
|
echo "Encoding=UTF-8" >> $shortcutfile
|
|
echo "Terminal=false" >> $shortcutfile
|
|
echo "Categories=None;" >> $shortcutfile
|
|
chmod 755 $shortcutfile
|
|
fi
|
|
|
|
configcmd="$(basename -- $configscript)"
|
|
|
|
if [ "$setupmode" = "Setup" ]
|
|
then
|
|
if [ -f "/usr/bin/$configcmd" ]
|
|
then
|
|
sudo rm /usr/bin/$configcmd
|
|
fi
|
|
sudo ln -s $configscript /usr/bin/$configcmd
|
|
|
|
if [ "$CHECKDEVICE" = "one" ]
|
|
then
|
|
sudo ln -s $configscript /usr/bin/argonone-config
|
|
sudo ln -s $uninstallscript /usr/bin/argonone-uninstall
|
|
sudo ln -s $irconfigscript /usr/bin/argonone-ir
|
|
elif [ "$CHECKDEVICE" = "fanhat" ]
|
|
then
|
|
sudo ln -s $configscript /usr/bin/argonone-config
|
|
sudo ln -s $uninstallscript /usr/bin/argonone-uninstall
|
|
fi
|
|
|
|
# Enable and Start Service(s)
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable argononed.service
|
|
sudo systemctl start argononed.service
|
|
if [ "$CHECKDEVICE" = "eon" ]
|
|
then
|
|
sudo systemctl enable argoneond.service
|
|
sudo systemctl start argoneond.service
|
|
fi
|
|
else
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl restart argononed.service
|
|
if [ "$CHECKDEVICE" = "eon" ]
|
|
then
|
|
sudo systemctl restart argoneond.service
|
|
fi
|
|
fi
|
|
|
|
if [ "$CHECKPLATFORM" = "Raspbian" ]
|
|
then
|
|
if [ -f "$eepromrpiscript" ]
|
|
then
|
|
sudo apt-get update && sudo apt-get upgrade -y
|
|
sudo rpi-eeprom-update
|
|
# EEPROM Config Script
|
|
sudo $eepromconfigscript
|
|
fi
|
|
else
|
|
echo "WARNING: EEPROM not updated. Please run this under Raspberry Pi OS"
|
|
fi
|
|
|
|
set_maxusbcurrent
|
|
|
|
|
|
echo "*********************"
|
|
echo " $setupmode Completed "
|
|
echo "*********************"
|
|
$versioninfoscript
|
|
echo
|
|
echo "Use '$configcmd' to configure device"
|
|
echo
|
|
|
|
|
|
|
|
if [ $NEEDSTIMESYNC -eq 1 ]
|
|
then
|
|
argon_time_error
|
|
fi
|
|
|