forked from AndyTaylorTweet/Pi-Star_Binaries_sbin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpistar-vyehsflash
executable file
·107 lines (105 loc) · 4.51 KB
/
pistar-vyehsflash
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
#!/bin/bash
#
###############################################################################
# #
# Pi-Star Firmware Update Tool #
# #
# Version 1.1, 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 MMDVM_HS Nano 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 an Nano HS board connected to GPIO, run: pistar-vyehsflash nano_hs"
echo "To flash HS_DUAL_HAT (VR2VYE) connected to GPIO, run: pistar-vyehsflash hs_dual_hat"
echo ""
echo "To flash ZumSPOT devices by please use pistar-zumspotflash"
echo "To flash MMDVM_HS Hat devices by DB9MAT & DF2ET please use pistar-mmdvmhshatflash"
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}
modemSelectedHuman=${modemSelectedHuman//amp;/}
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 "MMDVM 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 "MMDVM 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
VERSION=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/VR2VYE/MMDVM_HS_firmware/releases/latest | awk -F "/v" '{print $2}')
case ${1} in
#nano_hs)
# # Flashing MMDVM_HS Nano Modem
# rm -rf /tmp/nanohsfirmware 2> /dev/null
# mkdir /tmp/nanohsfirmware 2> /dev/null
# echo "Flashing your ${1} modem to the latest version"
# wget https://github.com/VR2VYE/MMDVM_HS_firmware/releases/download/v${VERSION}/install_fw_nanohs.sh -O /tmp/nanohsfirmware/flash.sh
# chmod +x /tmp/nanohsfirmware/flash.sh
# cd /tmp/nanohsfirmware
# ./flash.sh
# echo ""
# rm -rf /tmp/nanohsfirmware 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
#;;
hs_dual_hat)
# Flashing MMDVM_HS_DUAL Modem
rm -rf /tmp/mmdvmhshatfirmware 2> /dev/null
mkdir /tmp/mmdvmhshatfirmware 2> /dev/null
echo "Flashing your ${1} modem to the latest version"
wget https://github.com/VR2VYE/MMDVM_HS_firmware/releases/download/v${VERSION}/install_fw_duplex.sh -O /tmp/mmdvmhshatfirmware/flash.sh
tr -d "\r" < /tmp/mmdvmhshatfirmware/flash.sh > /tmp/mmdvmhshatfirmware/flash2.sh
mv /tmp/mmdvmhshatfirmware/flash2.sh /tmp/mmdvmhshatfirmware/flash.sh
chmod +x /tmp/mmdvmhshatfirmware/flash.sh
cd /tmp/mmdvmhshatfirmware
./flash.sh
echo ""
rm -rf /tmp/mmdvmhshatfirmware 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