forked from AndyTaylorTweet/Pi-Star_Binaries_sbin
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpistar-mdoflash
executable file
·118 lines (116 loc) · 4.53 KB
/
pistar-mdoflash
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
#!/bin/bash
#
###############################################################################
# #
# Pi-Star Firmware Update Tool #
# #
# Version 0.2, 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 BD7KLE/BG3MDO 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 UHF2018 board connected to GPIO, run: pistar-mdoflash uhf"
echo "To flash a UHF302018 board connected to GPIO, run: pistar-mdoflash uhf2"
echo "To flash a VHF302018 board connected to GPIO, run: pistar-mdoflash vhf"
echo ""
echo "To flash MMDVM_HS Hat devices by DB9MAT & DF2ET please use pistar-mmdvmhshatflash"
echo "To flash ZumSPOT devices by please use pistar-zumspotflash"
echo "To flash MMDVM_HS Nano Hat devices please use pistar-vyehsflash"
# 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
uhf)
# Flashing RPi GPIO Modem
rm -rf /tmp/mdofirmware 2> /dev/null
mkdir /tmp/mdofirmware 2> /dev/null
echo "Flashing your ${1} modem to the latest version"
wget -O /tmp/mdofirmware/up.sh https://github.com/BD7KLE/MDO-FW/raw/master/up.sh
chmod +x /tmp/mdofirmware/up.sh
cd /tmp/mdofirmware
./up.sh
echo ""
rm -rf /tmp/mdofirmware 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
;;
uhf2)
# Flashing RPi GPIO Modem
rm -rf /tmp/mdofirmware 2> /dev/null
mkdir /tmp/mdofirmware 2> /dev/null
echo "Flashing your ${1} modem to the latest version"
wget -O /tmp/mdofirmware/up2.sh https://github.com/BD7KLE/MDO-FW/raw/master/up2.sh
chmod +x /tmp/mdofirmware/up2.sh
cd /tmp/mdofirmware
./up2.sh
echo ""
rm -rf /tmp/mdofirmware 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
;;
vhf)
# Flashing RPi GPIO Modem
rm -rf /tmp/mdofirmware 2> /dev/null
mkdir /tmp/mdofirmware 2> /dev/null
echo "Flashing your ${1} modem to the latest version"
wget -O /tmp/mdofirmware/up.sh https://github.com/BD7KLE/MDO-FW/raw/master/vhf.sh
chmod +x /tmp/mdofirmware/up.sh
cd /tmp/mdofirmware
./up.sh
echo ""
rm -rf /tmp/mdofirmware 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