forked from AndyTaylorTweet/Pi-Star_Binaries_sbin
-
Notifications
You must be signed in to change notification settings - Fork 2
/
pistar-zumspotflash
executable file
·135 lines (133 loc) · 5.71 KB
/
pistar-zumspotflash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/bin/bash
#
###############################################################################
# #
# Pi-Star Firmware Update Tool #
# #
# Version 1.0, Code, Design and Development by Andy Taylor (MW0MWZ). #
# #
# Make it simple to update the Firmware #
# #
###############################################################################
#
if [ "$(id -u)" != "0" ]; then
echo -e "You need to be root to run this command...\n"
exit 1
fi
#
# Output some usefull information when no variables are passed
#
if [ -z "$1" ]
then
echo "This tool is used to flash your ZUMSpot Modem"
echo "to use the command, you will need to pass the name of your modem,"
echo "please choose form the list below..."
echo ""
echo "To flash a ZUMSpot connected to GPIO, run: pistar-zumspotflash rpi"
echo "To flash a ZUMSpot duplex connected to GPIO, run: pistar-zumspotflash rpi_duplex"
echo "To flash a ZUMSpot USB Key, run: pistar-zumspotflash usb"
echo "To flash a USB Connected Libre Modem, run: pistar-zumspotflash libre"
echo ""
echo "To flash MMDVM_HS Hat devices by DB9MAT & DF2ET please use pistar-mmdvmhshatflash"
echo "To flash MMDVM_HS Nano Hat devices please use pistar-vyehsflash"
echo "To flash your BD7KLE/BG3MDO devices please use pistar-mdoflash"
echo ""
# Get the pretty name for the chosen Modem according to the dashboard.
if [ -f '/etc/dstar-radio.mmdvmhost' ]; then
# Get the modem that the user has selected.
modemSelected=$(grep 'Hardware=' /etc/dstar-radio.mmdvmhost)
modemSelected=${modemSelected#*=}
# Get the user friendly version of the selected Modem.
modemSelectedHuman=$(grep ${modemSelected} /var/www/dashboard/admin/configure.php)
modemSelectedHuman=${modemSelectedHuman#*\">}
modemSelectedHuman=${modemSelectedHuman::-9}
echo "Selected Modem: ${modemSelectedHuman}"
fi
# Get the physically connected modem from the logs
numLogs=$(ls -1rt /var/log/pi-star/MMDVM-*.log | wc -l)
if [[ ${numLogs} -gt 0 ]]; then
modemLog=$(tac $(ls -1rt /var/log/pi-star/MMDVM-*.log | tail -n1 ) | grep "protocol" -m 1 | sed -n 's/description: /&\n/;s/.*\n//p')
echo "Connected Hardware: ${modemLog}"
fi
exit 0
fi
#
# OK we know what the modem is, let get the firmware string from the log...
#
tac $(ls -1rt /var/log/pi-star/MMDVM-*.log | tail -n1 ) | grep "protocol" -m 1 | sed -n 's/description: /&\n/;s/.*\n//p'
read -n 1 -s -r -p "Press any key to write the ${1} firmware to this modem or Ctrl-C to quit..."
echo ""
#
# Download the correct firmware
#
if [ "$1" ]
then
case ${1} in
rpi)
# Flashing RPi GPIO Modem
rm -rf /tmp/zumfirmware 2> /dev/null
mkdir /tmp/zumfirmware 2> /dev/null
echo "Flashing your ${1} modem to the latest version"
curl -s -L https://github.com/juribeparada/MMDVM_HS/releases/latest | egrep -o '/juribeparada/MMDVM_HS/releases/download/v[0-9.]*/install_fw_rpi.sh' | wget --base=http://github.com/ -i - -O /tmp/zumfirmware/flash.sh
chmod +x /tmp/zumfirmware/flash.sh
cd /tmp/zumfirmware
./flash.sh
echo ""
rm -rf /tmp/zumfirmware 2> /dev/null
read -n 1 -s -r -p "Flashing your ${1} modem complete, press any key to reboot your Pi-Star System..."
shutdown -r now
exit 0
;;
rpi_duplex)
# Flashing RPi Duplex GPIO Modem
rm -rf /tmp/zumfirmware 2> /dev/null
mkdir /tmp/zumfirmware 2> /dev/null
echo "Flashing your ${1} modem to the latest version"
curl -s -L https://github.com/juribeparada/MMDVM_HS/releases/latest | egrep -o '/juribeparada/MMDVM_HS/releases/download/v[0-9.]*/install_fw_duplex.sh' | wget --base=http://github.com/ -i - -O /tmp/zumfirmware/flash.sh
chmod +x /tmp/zumfirmware/flash.sh
cd /tmp/zumfirmware
./flash.sh
echo ""
rm -rf /tmp/zumfirmware 2> /dev/null
read -n 1 -s -r -p "Flashing your ${1} modem complete, press any key to reboot your Pi-Star System..."
shutdown -r now
exit 0
;;
usb)
# Flashing USB Modem
rm -rf /tmp/zumfirmware 2> /dev/null
mkdir /tmp/zumfirmware 2> /dev/null
echo "Flashing your ${1} modem to the latest version"
curl -s -L https://github.com/juribeparada/MMDVM_HS/releases/latest | egrep -o '/juribeparada/MMDVM_HS/releases/download/v[0-9.]*/install_fw_usb.sh' | wget --base=http://github.com/ -i - -O /tmp/zumfirmware/flash.sh
chmod +x /tmp/zumfirmware/flash.sh
cd /tmp/zumfirmware
./flash.sh
echo ""
rm -rf /tmp/zumfirmware 2> /dev/null
read -n 1 -s -r -p "Flashing your ${1} modem complete, press any key to reboot your Pi-Star System..."
shutdown -r now
exit 0
;;
libre)
# Flashing Libre Kit Modem
rm -rf /tmp/zumfirmware 2> /dev/null
mkdir /tmp/zumfirmware 2> /dev/null
echo "Flashing your ${1} modem to the latest version"
curl -s -L https://github.com/juribeparada/MMDVM_HS/releases/latest | egrep -o '/juribeparada/MMDVM_HS/releases/download/v[0-9.]*/install_fw_librekit.sh' | wget --base=http://github.com/ -i - -O /tmp/zumfirmware/flash.sh
chmod +x /tmp/zumfirmware/flash.sh
cd /tmp/zumfirmware
./flash.sh
echo ""
rm -rf /tmp/zumfirmware 2> /dev/null
read -n 1 -s -r -p "Flashing your ${1} modem complete, press any key to reboot your Pi-Star System..."
shutdown -r now
exit 0
;;
*)
# Un-recognised modem choice
echo "Your Choice of ${1} modem is not supported by this update tool"
exit 1
;;
esac
fi
exit 0