first commit

This commit is contained in:
2022-08-24 08:10:10 +02:00
commit d3b4ff8398
520 changed files with 223703 additions and 0 deletions
+174
View File
@@ -0,0 +1,174 @@
# INSTALL MMDVM Raspberry PI on Raspbian 10 (Buster)
Download the package from the terminal using the command:
git clone https://github.com/lucamarche-iz1mlt/install-mmdvm-sh.git ./install-mmdvm-sh
cd install-mmdvm-sh
Launch the script using the command
sudo sh mmdvm.sh
wait for the installation to end ....
Config .ini file
Make sure you are always in the same direcory and open the file using the command
sudo nano MMDVMConfig.sh
Once saved, run the script
sudo bash MMDVMConfig.sh
Uninstall by command
sudo mmdvm_uninstall.sh
# Start commands by servicing
MMDVMHost
sudo service mmdvmhost start
sudo service mmdvmhost stop
sudo service mmdvmhost restart
sudo service mmdvmhost status
DMRGateway
sudo service dmrgateway start
sudo service dmrgateway stop
sudo service dmrgateway restart
sudo service dmrgateway status
YSFGateway
sudo service ysfgateway start
sudo service ysfgateway stop
sudo service ysfgateway restart
sudo service ysfgateway status
YSFParrot
sudo service ysfparrot start
sudo service ysfparrot stop
sudo service ysfparrot restart
sudo service ysfparrot status
IrcDDBGateway
sudo service ircddbgatewayd start
sudo service ircddbgatewayd stop
sudo service ircddbgatewayd restart
sudo service ircddbgatewady status
# Command for automatic start of service
sudo systemctl enable mmdvmhost.timer
sudo systemctl enable dmrgateway.timer
sudo systemctl enable ysfgateway.timer
sudo systemctl enable ysfparrot.timer
sudo systemctl enable ircddbgatewayd.timer
sudo systemctl enable telegrambot.timer
# Disable service at startup
sudo systemctl disable <nome_servizio>.timer
# Starting shell programs
Remember to stop the service
MMDVMHost
sudo MMDVMHost /etc/mmdvmhost/MMDVM.ini
DMRGateway
sudo DMRGateway /etc/dmrgateway/DMRGateway.ini
YSFGateway
sudo DMRGateway /etc/dmrgateway/DMRGateway.ini
ircDBGateway
sudo ircddbgatewayd -logdir /var/log/ircddbgateway -confdir /etc/ircddbgateway
Telegrambot
sudo python /home/pi/telegrambot.py
CTRL+C to exit
# Add crontab service
sudo nano /etc/crontab
add at the bottom of the file
*/5 * * * * root wget -O /var/log/ysfgateway/YSFHosts.txt http://register.ysfreflector.de/export_csv.php
0 0 * * * root wget -O /var/log/mmdvmhost/NXDN.csv http://nxmanager.weebly.com/uploads/7/1/2/0/71209569/nxuid_export.csv
0 0 * * * root sh /home/pi/script/DMRIDUpdate.sh 1>/dev/null 2>&1
# File paths
MMDVMHost
MMDVM.ini
/etc/mmdvmhost/
LOG file e data base
/var/log/mmdvmhost/
DMRGateway
DMRGateway.ini
/etc/dmrgateway/
LOG file e data base
/var/log/dmrgateway/
YSFgateway
YSFGateway.ini
/etc/ysfgateway/
LOG file e data base
/var/log/ysfgateway/
ircDDBGateway
ircddbgateway_config
/etc/ircddbgateway/
LOG file e data base
/var/log/ircddbgateway/
AUDIO File and Reflector list
/usr/share/ircddbgateway
+386
View File
@@ -0,0 +1,386 @@
#!/bin/bash
# GENERAL SETTING
CALLSIGN="FRS2013"
DMR_ID="1499999"
RPT_OR_HS="0" # 1 for duplex mode repeater, 0 for simplex mode Hot Spot
FREQ_TX="446.156250"
FREQ_RX="446.156250"
LAT="44.554375"
LONG="8.938647"
HEIGHT="0"
LOCATION="Antibes"
DESCRIPTION="mmdvm system"
URL="www.openpmr.cla.fr"
CW_ID="0" #1 active 0 disable
PORT_MODEM="/dev/ttS0"
TX_INV="1"
RX_INV="0"
# DSTAR
DS_EN="0"
MODULE="B"
IRC_EN="0"
QUADNET_EN="0"
IRC_PWD=""
DPLUS_EN="1"
DEXTRA_EN="1"
DS_STARTUP="DCS999"
REF_MODULE="K"
REMOTE_EN="0"
REMOTE_PWD="password"
REMOTE_PORT="10022"
LANGUAGE="Italiano"
#language list
# 0 English(UK)
# 1 Deutsch
# 2 Dansk
# 3 Francais
# 4 Italiano
# 5 Espanol
# 6 Svenska
# 7 Polski
# 8 English(US)
# 9 Nederlands(NL)
# 10 Nederland(BE)
# DMR
DMR_EN="1"
CC="1"
TA="1"
XLX_EN="0"
XLX_TG="6"
XLX_TS="1"
XLX_STARTUP="999"
BM_EN="0"
BM_IP="bm2222@dmrbrescia.it"
DMRP_EN="0"
DMRP_IP="fra1od.fr.to"
# YSF C4FM
YSF_EN="0"
FCS_EN="1"
YSFFCS_START="IT C4FM Piemonte"
YSF_TXHANG="1"
# APRS
APRS_EN="0"
APRS_HOST="italy1.aprs2.net"
APRS_PORT="14580"
APRS_PWD=$(curl http://n5dux.com/ham/aprs-passcode/?callsign=$CALLSIGN | grep -e "size=24>" | cut -f 5 -d">" | cut -f1 -d"<")
#DASHBOARD
DASH_EN="1"
CONFIG_PATH_DASHBOARD="/var/www/html/MMDVMHost-Dashboard/config/"
# -----------------------
# MMDVMHost-Configuration
# -----------------------
Snm="on" # Enable extended lookup (show names
ShTA="on" # Show Talker Alias
SL3="off" # Use SQLITE3-Database instead of DMRIDs.dat
TGN="on" # Enable TG-Names
# ------------------------
# YSFGateway-Configuration
# ------------------------
YSFGat="on" # Enable YSFGateway
YSFlog="YSFGateway" # Logfile-prefix
YSFini="YSFGateway.ini" # YSFGateway.ini-filename
YSFHos="YSFHotst.txt" # YSFHosts.txt-filename
# ------------------------
# DMRGateway-Configuration
# ------------------------
DMRGat="on" # Enable DMRGateway
DMRlog="DMRGateway" # Logfile-prefix
DMRini="DMRGateway.ini" # DMRGateway.ini-filename
# ---------------------------
# ircddbgateway-Configuration
# ---------------------------
ircDDB="ircddbgatewayd" # Name of ircddbgateway-executeable
# --------------------
# Global Configuration
# --------------------
PathEx="/usr/local/bin/" # Path to executable files
TZ="Europe/PAris" # Timezone
LOC="fr_FR" # Locale
URLlogo="" # URL to Logo
NETphp="on" # Use networks.php instead of configuration below
DMRlogo="" # URL to DMRplus-Logo
BMlogo="" # URL to BrandMeister-Logo
Ref="60" # Refresh page after in seconds
ShCI="on" # Show Custom Info
ShSI="on" # Show System Info
ShDU="on" # Show Disk Use
ShRI="on" # Show Repeater Info
ShEM="on" # Show Enabled Modes
ShLH="on" # Show Last Heard List of today's
ShLT="on" # Show Today's local transmissions
ShPR="on" # Show progressbars
CPUT="on" # Enable CPU-temperature-warning
WART="60" # Warning temperature
NSF="on" # Enable Network-Switching-Function
DMRRSF="on" # Enable Reflector-Switching-Function (DMR)
YSFRSF="on" # Enable Reflector-Switching-Function (YSF)
UseSN="" # Username for switching networks
PasSN="" # Password for switching networks
MF="on" # Enable Management-Functions below
UseVL="" # Username for view log
PasVL="" # Password for view log
UseHa="" # Username for halt
PasHa="" # Password for halt
UseRe="" # Username for reboot
PasRe="" # Password for reboot
UseRs="" # Username for restart
PasRs="" # Password for restart
ShPO="on" # Show Powerstate (online or battery, wiringpi needed)
GPIOMo="18" # GPIO pin to monitor
OnLnSt="1" # State that signalizes online-state
QRZcom="on" # Show link to QRZ.com on Callsigns
RSSI="avg" # RSSI value (min, max, avg, all)
#-----------------------------------------------------------------------------------------#
#-----------------------------------------------------------------------------------------#
# #
#-----------------------------------------------------------------------------------------#
#-----------------------------------------------------------------------------------------#
LOG_PATH_MMDVMHOST=$(grep -e "LOG_PATH_MMDVMHOST=" $(pwd)/mmdvm.sh | cut -f 2 -d"=" | cut -f 2 -d'"')
LOG_PATH_DMRGATEWAY=$(grep -e "LOG_PATH_DMRGATEWAY=" $(pwd)/mmdvm.sh | cut -f 2 -d"=" | cut -f 2 -d'"')
LOG_PATH_YSFGATEWAY=$(grep -e "LOG_PATH_YSFGATEWAY=" $(pwd)/mmdvm.sh | cut -f 2 -d"=" | cut -f 2 -d'"')
LOG_PATH_IRCDDBGATEWAY=$(grep -e "LOG_PATH_IRCDDBGATEWAY=" $(pwd)/mmdvm.sh | cut -f 2 -d"=" | cut -f 2 -d'"')
CONFIG_PATH_MMDVMHOST=$(grep -e "CONFIG_PATH_MMDVMHOST=" $(pwd)/mmdvm.sh | cut -f 2 -d"=" | cut -f 2 -d'"')
CONFIG_PATH_DMRGATEWAY=$(grep -e "CONFIG_PATH_DMRGATEWAY=" $(pwd)/mmdvm.sh | cut -f 2 -d"=" | cut -f 2 -d'"')
CONFIG_PATH_YSFGATEWAY=$(grep -e "CONFIG_PATH_YSFGATEWAY=" $(pwd)/mmdvm.sh | cut -f 2 -d"=" | cut -f 2 -d'"')
CONFIG_PATH_IRCDDBGATEWAY=$(grep -e "CONFIG_PATH_IRCDDBGATEWAY=" $(pwd)/mmdvm.sh | cut -f 2 -d"=" | cut -f 2 -d'"')
if [ $RPT_OR_HS = "1" ]; then
YSF_SUFFIX="RPT"
else
YSF_SUFFIX="ND"
fi
if [ $LANGUAGE = "English(UK)" ]; then
LANGUAGE_NUM="0"
elif [ $LANGUAGE = "Deutsch" ]; then
LANGUAGE_NUM="1"
elif [ $LANGUAGE = "Dansk" ]; then
LANGUAGE_NUM="2"
elif [ $LANGUAGE = "Francais" ]; then
LANGUAGE_NUM="3"
elif [ $LANGUAGE = "Italiano" ]; then
LANGUAGE_NUM="4"
elif [ $LANGUAGE = "Espanol" ]; then
LANGUAGE_NUM="5"
elif [ $LANGUAGE = "Svenska" ]; then
LANGUAGE_NUM="6"
elif [ $LANGUAGE = "Polski" ]; then
LANGUAGE_NUM="7"
elif [ $LANGUAGE = "English(US)" ]; then
LANGUAGE_NUM="8"
elif [ $LANGUAGE = "Nederlands(NL)" ]; then
LANGUAGE_NUM="9"
elif [ $LANGUAGE = "Nederland(BE)" ]; then
LANGUAGE_NUM="10"
else
LANGUAGE_NUM="0"
fi
SHIFT=$((${FREQ_RX:0:3}${FREQ_RX:4} - ${FREQ_TX:0:3}${FREQ_TX:4}))
rm ${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "[General]\nCallsign=${CALLSIGN}\nId=${DMR_ID}\nTimeout=240\nDuplex=${RPT_OR_HS}\n# ModeHang=10\nRFModeHang=10\nNetModeHang=30\nDisplay=None\nDaemon=0 " >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[Info]\nRXFrequency=${FREQ_RX:0:3}${FREQ_RX:4}\nTXFrequency=${FREQ_TX:0:3}${FREQ_TX:4}\nPower=10\nLatitude=${LAT}\nLongitude=${LONG}\nHeight=${HEIGHT}\nLocation=${LOCATION}\nDescription=${DESCRIPTION}\nURL=${URL}" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[Log]\n# Logging levels, 0=No logging\nDisplayLevel=1\nFileLevel=2\nFilePath=${LOG_PATH_MMDVMHOST}\nFileRoot=MMDVM" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[CW Id]\nEnable=1\nTime=10\n# Callsign=" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[DMR Id Lookup]\nFile=${LOG_PATH_MMDVMHOST}DMRIds.dat\nTime=24" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[NXDN Id Lookup]\nFile=${LOG_PATH_MMDVMHOST}NXDN.csv\nTime=24" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[Modem]\nPort=${PORT_MODEM}\nProtocol=uart\n# Address=0x22\nTXInvert=${TX_INV}\nRXInvert=${RX_INV}\nPTTInvert=0\nTXDelay=100\nRXOffset=0\nTXOffset=0\nDMRDelay=0\nRXLevel=50\nTXLevel=50\nRXDCOffset=0\nTXDCOffset=0\nRFLevel=100\n# CWIdTXLevel=50\n# D-StarTXLevel=50\n# DMRTXLevel=50\n# YSFTXLevel=50\n# P25TXLevel=50\n# NXDNTXLevel=50\n# POCSAGTXLevel=50\nRSSIMappingFile=RSSI.dat\nTrace=0\nDebug=0" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[Transparent Data]\nEnable=0\nRemoteAddress=127.0.0.1\nRemotePort=40094\nLocalPort=40095\n# SendFrameType=0" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[UMP]\nEnable=0\n# Port=\\.\COM4\n# Port=/dev/ttyACM1" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[D-Star]\nEnable=${DS_EN}\nModule=${MODULE}\nSelfOnly=0\nAckReply=1\nAckTime=750\nAckMessage=0\nErrorReply=1\nRemoteGateway=0\n# ModeHang=10" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[DMR]\nEnable=${DMR_EN}\nBeacons=1\nBeaconInterval=180\nBeaconDuration=3\nColorCode=${CC}\nSelfOnly=0\nEmbeddedLCOnly=0\nDumpTAData=${TA}\n# Prefixes=234,235\n# Slot1TGWhiteList=\n# Slot2TGWhiteList=\nCallHang=3\nTXHang=4\n# ModeHang=10" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[System Fusion]\nEnable=${YSF_EN}\nLowDeviation=0\nSelfOnly=0\nTXHang=${YSF_TXHANG}\n# DGID=1\nRemoteGateway=0\n# ModeHang=10" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[P25]\nEnable=0\nNAC=293\nSelfOnly=0\nOverrideUIDCheck=0\nRemoteGateway=0\n# ModeHang=10" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[NXDN]\nEnable=0\nRAN=1\nSelfOnly=0\nRemoteGateway=0\n# ModeHang=10" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[POCSAG]\nEnable=0\nFrequency=439987500" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[D-Star Network]\nEnable=1\nGatewayAddress=127.0.0.1\nGatewayPort=20010\nLocalPort=20011\n# ModeHang=3\nDebug=0" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[DMR Network]\nEnable=${DMR_EN}\nAddress=127.0.0.1\nPort=62031\nJitter=360\nLocal=62032\nPassword=PASSWORD\n# Options=\nSlot1=1\nSlot2=1\n# ModeHang=3\nDebug=0" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[System Fusion Network]\nEnable=1\nLocalAddress=127.0.0.1\nLocalPort=3200\nGatewayAddress=127.0.0.1\nGatewayPort=4200\n# ModeHang=3\nDebug=0" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[P25 Network]\nEnable=0\nGatewayAddress=127.0.0.1\nGatewayPort=42020\nLocalPort=32010\n# ModeHang=3\nDebug=0" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[NXDN Network]\nEnable=0\nLocalAddress=127.0.0.1\nLocalPort=14021\nGatewayAddress=127.0.0.1\nGatewayPort=14020\n# ModeHang=3\nDebug=0" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[POCSAG Network]\nEnable=0\nLocalAddress=127.0.0.1\nLocalPort=3800\nGatewayAddress=127.0.0.1\nGatewayPort=4800\n# ModeHang=3\nDebug=0" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[TFT Serial]\n# Port=modem\nPort=/dev/ttyAMA0\nBrightness=50" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[HD44780]\nRows=2\nColumns=16\n\n# For basic HD44780 displays (4-bit connection)\n# rs, strb, d0, d1, d2, d3\nPins=11,10,0,1,2,3\n\n# Device address for I2C\nI2CAddress=0x20\n\n# PWM backlight\nPWM=0\nPWMPin=21\nPWMBright=100\nPWMDim=16\n\nDisplayClock=1\nUTC=0" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[Nextion]\n# Port=modem\nPort=/dev/ttyAMA0\nBrightness=50\nDisplayClock=1\nUTC=0\n#Screen Layout: 0=G4KLX 2=ON7LDS\nScreenLayout=2\nIdleBrightness=20" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[OLED]\nType=3\nBrightness=0\nInvert=0\nScroll=1\nRotate=0\nCast=0" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[LCDproc]\nAddress=localhost\nPort=13666\n#LocalPort=13667\nDimOnIdle=0\nDisplayClock=1\nUTC=0" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
printf "\n\n[Lock File]\nEnable=0\nFile=/tmp/MMDVM_Active.lck" >>${CONFIG_PATH_MMDVMHOST}MMDVM.ini
nano ${CONFIG_PATH_MMDVMHOST}MMDVM.ini
# YSFGATEWEAY
if [ $YSF_EN = "1" ] || [ $FCS_EN = "1" ]; then
rm ${CONFIG_PATH_YSFGATEWAY}YSFGateway.ini
printf "[General]\nCallsign=${CALLSIGN}\nSuffix=${YSF_SUFFIX}\nId=${DMR_ID}\nRptAddress=127.0.0.1\nRptPort=3200\nLocalAddress=127.0.0.1\nLocalPort=4200\nDaemon=0" >>${CONFIG_PATH_YSFGATEWAY}YSFGateway.ini
printf "\n\n[Info]\nRXFrequency=${FREQ_RX:0:3}${FREQ_RX:4}\nTXFrequency=${FREQ_TX:0:3}${FREQ_TX:4}\nPower=10\nLatitude=${LAT}\nLongitude=${LONG}\nHeight=${HEIGHT}\nLocation=${LOCATION}\nDescription=${DESCRIPTION}" >>${CONFIG_PATH_YSFGATEWAY}YSFGateway.ini
printf "\n\n[Log]\n# Logging levels, 0=No logging\nDisplayLevel=1\nFileLevel=2\nFilePath=${LOG_PATH_YSFGATEWAY}\nFileRoot=YSFGateway" >>${CONFIG_PATH_YSFGATEWAY}YSFGateway.ini
printf "\n\n[aprs.fi]\nEnable=${APRS_EN}\nServer=${APRS_HOST}\nPort=${APRS_PORT}\nPassword=${APRS_PWD}\nDescription=${DESCRIPTION}\nSuffix=Y" >>${CONFIG_PATH_YSFGATEWAY}YSFGateway.ini
printf "\n\n[Network]\n${YSF_AUTOSTART}Startup=${YSFFCS_START}\nInactivityTimeout=0\nRevert=0\nDebug=0" >>${CONFIG_PATH_YSFGATEWAY}YSFGateway.ini
printf "\n\n[YSF Network]\nEnable=1\nPort=42000\nHosts=${LOG_PATH_YSFGATEWAY}YSFHosts.txt\nReloadTime=60\nParrotAddress=127.0.0.1\nParrotPort=42012\nYSF2DMRAddress=127.0.0.1\nYSF2DMRPort=42013\nYSF2NXDNAddress=127.0.0.1\nYSF2NXDNPort=42014\nYSF2P25Address=127.0.0.1\nYSF2P25Port=42015" >>${CONFIG_PATH_YSFGATEWAY}YSFGateway.ini
printf "\n\n[FCS Network]\nEnable=${FCS_EN}\nRooms=${LOG_PATH_YSFGATEWAY}FCSRooms.txt\nPort=42001" >>${CONFIG_PATH_YSFGATEWAY}YSFGateway.ini
nano ${CONFIG_PATH_YSFGATEWAY}YSFGateway.ini
fi
# DMRGATEWAY
if [ $DMR_EN = "1" ]; then
rm ${CONFIG_PATH_DMRGATEWAY}DMRGateway.ini
printf "[General]\nTimeout=10\n# RFTimeout=10\n# NetTimeout=7\nRptAddress=127.0.0.1\nRptPort=62032\nLocalAddress=127.0.0.1\nLocalPort=62031\nRuleTrace=0\nDaemon=0\nDebug=0" >>${CONFIG_PATH_DMRGATEWAY}DMRGateway.ini
printf "\n\n[Log]\n# Logging levels, 0=No logging\nDisplayLevel=1\nFileLevel=2\nFilePath=${LOG_PATH_DMRGATEWAY}\nFileRoot=DMRGateway" >>${CONFIG_PATH_DMRGATEWAY}DMRGateway.ini
printf "\n\n[Voice]\nEnabled=1\nLanguage=it_IT\nDirectory=${CONFIG_PATH_DMRGATEWAY}Audio" >>${CONFIG_PATH_DMRGATEWAY}DMRGateway.ini
printf "\n\n[Info]\nRXFrequency=${FREQ_RX:0:3}${FREQ_RX:4}\nTXFrequency=${FREQ_TX:0:3}${FREQ_TX:4}\nPower=10\nLatitude=${LAT}\nLongitude=${LONG}\nHeight=${HEIGHT}\nLocation=${LOCATION}\nDescription=${DESCRIPTION}\nURL=${URL}" >>${CONFIG_PATH_DMRGATEWAY}DMRGateway.ini
printf "\n\n[XLX Network]\nEnabled=${XLX_EN}\nFile=XLXHosts.txt\nPort=62030\nPassword=passw0rd\nReloadTime=60\n# Local=3351\nSlot=${XLX_TS}\nTG=${XLX_TG}\nBase=64000\nStartup=999\nRelink=10\nDebug=0" >>${CONFIG_PATH_DMRGATEWAY}DMRGateway.ini
printf "\n\n# BrandMeister\n[DMR Network 1]\nEnabled=${BM_EN}\nName=BM\nAddress=${BM_IP}\nPort=62031\n# Local=3352\nPassAllPC=1\nPassAllPC=2\nPassAllTG=1\nPassAllTG=2\nPassword=passow0rd\nLocation=1\nDebug=0" >>${CONFIG_PATH_DMRGATEWAY}DMRGateway.ini
printf "\n\n# DMR+\n[DMR Network 2]\nEnabled=${DMRP_EN}\nName=DMR+\nAddress=${DMRP_IP}\nPort=55555\n# Local=3352\nPassAllPC=1\nPassAllPC=2\nPassAllTG=1\nPassAllTG=2\nPassword=PASSWORD\nLocation=0\nDebug=0" >>${CONFIG_PATH_DMRGATEWAY}DMRGateway.ini
printf "\n\n# Local HBLink network\n[DMR Network 3]\nEnabled=0\nName=HBLink\nAddress=44.131.4.2\nPort=55555\n# Local=3352\n# Local area TG on to slot 2 TG11\nTGRewrite=2,11,2,11,1\nPassword=PASSWORD\nLocation=0\nDebug=0" >>${CONFIG_PATH_DMRGATEWAY}DMRGateway.ini
nano ${CONFIG_PATH_DMRGATEWAY}DMRGateway.ini
fi
# IRCDDBGATEWAY
if [ $DS_EN = "1" ]; then
rm ${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "gatewayType=1\ngatewayCallsign=${CALLSIGN}\ngatewayAddress=0.0.0.0\nicomAddress=127.0.0.1\nicomPort=20000\nhbAddress=127.0.0.1\nhbPort=20010\nlatitude=${LAT}\nlongitude=${LONG}\ndescription1=${DESCRIPTION}\ndescription2=${DESCRIPTION}\nurl=${URL}" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\nrepeaterCall1=${CALLSIGN}\nrepeaterBand1=${MODULE}\nrepeaterType1=0\nrepeaterAddress1=127.0.0.1\nrepeaterPort1=20011\nreflector1=${DS_STARTUP} ${REF_MODULE}\natStartup1=1\nreconnect1=0\nfrequency1=${FREQ_TX}\noffe1=${SHIFT: -9: -8}${SHIFT: -8: -7}${SHIFT: -7: -6}.${SHIFT: -6}\nrangeKms1=1.000\nlatitude1=${LAT}\nlongitude1=${LONG}\nagl1=3.000\ndescription1_1=${DESCRIPTION}\ndescription1_2=${DESCRIPTION}\nurl1=${URL}\nband1_1=0\nband1_2=0\nband1_3=0" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\nrepeaterCall2=\nrepeaterBand2=\nrepeaterType2=0\nrepeaterAddress2=127.0.0.1\nrepeaterPort2=20012\nreflector2=\natStartup2=0\nreconnect2=0\nfrequency2=0.00000\noffset2=0.0000\nrangeKms2=0.000\nlatitude2=0.000000\nlongitude2=0.000000\nagl2=0.000\ndescription2_1=\ndescription2_2=\nurl2=\nband2_1=0\nband2_2=0\nband2_3=0" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\nrepeaterCall3=\nrepeaterBand3=\nrepeaterType3=0\nrepeaterAddress3=127.0.0.1\nrepeaterPort3=20013\nreflector3=\natStartup3=0\nreconnect3=0\nfrequency3=0.00000\noffset3=0.0000\nrangeKms3=0.000\nlatitude3=0.000000\nlongitude3=0.000000\nagl3=0.000\ndescription3_1=\ndescription3_2=\nurl3=\nband3_1=0\nband3_2=0\nband3_3=0" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\nrepeaterCall4=\nrepeaterBand4=\nrepeaterType4=0\nrepeaterAddress4=127.0.0.1\nrepeaterPort4=20014\nreflector4=\natStartup4=0\nreconnect4=0\nfrequency4=0.00000\noffset4=0.0000\nrangeKms4=0.000\nlatitude4=0.000000\nlongitude4=0.000000\nagl4=0.000\ndescription4_1=\ndescription4_2=\nurl4=\nband4_1=0\nband4_2=0\nband4_3=0" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\nircddbEnabled=${IRC_EN}\nircddbHostname=group1-irc.ircddb.net\nircddbUsername=${CALLSIGN}\nircddbPassword=${IRC_PWD}\nircddbEnabled2=${QUADNET_EN}\nircddbHostname2=rr.openquad.net\nircddbUsername2=${CALLSIGN}\nircddbPassword2=${IRC_PWD}\nircddbEnabled3=0\nircddbHostname3=\nircddbUsername3=\nircddbPassword3=\nircddbEnabled4=0\nircddbHostname4=\nircddbUsername4=\nircddbPassword4=" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\naprsEnabled=${APRS_EN}\naprsHostname=${APRS_HOST}\naprsPort=${APRS_PORT}\ndextraEnabled=${DEXTRA_EN}" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\ndextraMaxDongles=5\ndplusEnabled=${DPLUS_EN}\ndplusMaxDongles=5\ndplusLogin=${CALLSIGN}" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\ndcsEnabled=1\nccsEnabled=1\nccsHost=CCS701\nxlxEnabled=1\nxlxOverrideLocal=1\nxlxHostsFileUrl=xlxapi.rlx.lu/api.php?do=GetReflectorHostname" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\nstarNetBand1=A\nstarNetCallsign1=\nstarNetLogoff1=\nstarNetInfo1=\nstarNetPermanent1=\nstarNetUserTimeout1=300\nstarNetGroupTimeout1=300\nstarNetCallsignSwitch1=0\nstarNetTXMsgSwitch1=0\nstarNetReflector1=" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\nstarNetBand2=A\nstarNetCallsign2=\nstarNetLogoff2=\nstarNetInfo2=\nstarNetPermanent2=\nstarNetUserTimeout2=300\nstarNetGroupTimeout2=300\nstarNetCallsignSwitch2=0\nstarNetTXMsgSwitch2=0\nstarNetReflector2=" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\nstarNetBand3=A\nstarNetCallsign3=\nstarNetLogoff3=\nstarNetInfo3=\nstarNetPermanent3=\nstarNetUserTimeout3=300\nstarNetGroupTimeout3=300\nstarNetCallsignSwitch3=0\nstarNetTXMsgSwitch3=0\nstarNetReflector3=" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\nstarNetBand4=A\nstarNetCallsign4=\nstarNetLogoff4=\nstarNetInfo4=\nstarNetPermanent4=\nstarNetUserTimeout4=300\nstarNetGroupTimeout4=300\nstarNetCallsignSwitch4=0\nstarNetTXMsgSwitch4=0\nstarNetReflector4=" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\nstarNetBand5=A\nstarNetCallsign5=\nstarNetLogoff5=\nstarNetInfo5=\nstarNetPermanent5=\nstarNetUserTimeout5=300\nstarNetGroupTimeout5=300\nstarNetCallsignSwitch5=0\nstarNetTXMsgSwitch5=0\nstarNetReflector5=" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
printf "\nremoteEnabled=${REMOTE_EN}\nremotePassword=${REMOTE_PWD}\nremotePort=${REMOTE_PORT}\nlanguage=${LANGUAGE_NUM}\ninfoEnabled=1\nechoEnabled=1\nlogEnabled=1\ndratsEnabled=1\ndtmfEnabled=1\nwindowX=290\nwindowY=284" >>${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
nano ${CONFIG_PATH_IRCDDBGATEWAY}ircddbgateway
fi
if [ $DASH_EN = "1" ]; then
rm ${CONFIG_PATH_DASHBOARD}config.php
printf "<?php\n# This is an auto-generated config-file!\n# Be careful, when manual editing this!\n\ndate_default_timezone_set('UTC');">>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("MMDVMLOGPATH", "${LOG_PATH_MMDVMHOST}");\ndefine("MMDVMINIPATH", "${CONFIG_PATH_MMDVMHOST}");\ndefine("MMDVMINIFILENAME", "MMDVM.ini");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("MMDVMHOSTPATH", "/usr/local/bin/");'>>${CONFIG_PATH_DASHBOARD}config.php
if [ $Snm = "on" ]; then
printf '\ndefine("ENABLEXTDLOOKUP", "${Snm}");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $ShTA = "on" ]; then
printf '\ndefine("TALKERALIAS", "${ShTA}");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $SL3 = "on" ]; then
printf '\ndefine("USESQLITE", "${SL3}");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
printf '\ndefine("DMRIDDATPATH", "${LOG_PATH_MMDVMHOST}DMRIds.dat");'>>${CONFIG_PATH_DASHBOARD}config.php
if [ $TGN = "on" ]; then
printf '\ndefine("RESOLVETGS", "${TGN}");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $YSFGat = "on" ]; then
printf '\ndefine("ENABLEYSFGATEWAY", "${YSFGat}");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
printf '\ndefine("YSFGATEWAYLOGPATH", "${LOG_PATH_YSFGATEWAY}");\ndefine("YSFGATEWAYLOGPREFIX", "YSFGateway");\ndefine("YSFGATEWAYINIPATH", "${CONFIG_PATH_YSFGATEWAY}");\ndefine("YSFGATEWAYINIFILENAME", "YSFGateway.ini");\ndefine("YSFHOSTSPATH", "${LOG_PATH_YSFGATEWAY}YSFHosts.txt");\ndefine("YSFHOSTSFILENAME", "YSFHotst.txt");'>>${CONFIG_PATH_DASHBOARD}config.php
if [ $DMRGat = "on" ]; then
printf '\ndefine("ENABLEDMRGATEWAY", "${DMRGat}");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
printf '\ndefine("DMRGATEWAYLOGPATH", "${LOG_PATH_DMRGATEWAY}");\ndefine("DMRGATEWAYLOGPREFIX", "DMRGateway");\ndefine("DMRGATEWAYINIPATH", "${CONFIG_PATH_DMRGATEWAY}");\ndefine("DMRGATEWAYPATH", "/usr/local/bin/");\ndefine("DMRGATEWAYINIFILENAME", "DMRGateway.ini");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("LINKLOGPATH", "${LOG_PATH_IRCDDBGATEWAY}");\ndefine("IRCDDBGATEWAY", "ircddbgatewayd");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("TIMEZONE", "${TZ}");\ndefine("LOCALE", "${LOC}");\ndefine("LOGO", "${URLlogo}");'>>${CONFIG_PATH_DASHBOARD}config.php
if [ $NETphp = "on" ]; then
printf '\ndefine("JSONNETWORK", "${NETphp}");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
printf '\ndefine("DMRPLUSLOGO", "${DMRlogo}");\ndefine("BRANDMEISTERLOGO", "${BMlogo}");\ndefine("REFRESHAFTER", "${Ref}");'>>${CONFIG_PATH_DASHBOARD}config.php
if [ $ShCI = "on" ]; then
printf '\ndefine("SHOWCUSTOM", "'${ShCI}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $ShSI = "on" ]; then
printf '\ndefine("SHOWCPU", "'${ShSI}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $ShDU = "on" ]; then
printf '\ndefine("SHOWDISK", "'${ShDU}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $ShRI = "on" ]; then
printf '\ndefine("SHOWRPTINFO", "'${ShRI}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $ShEM = "on" ]; then
printf '\ndefine("SHOWMODES", "'${ShEM}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $ShLH = "on" ]; then
printf '\ndefine("SHOWLH", "'${ShLH}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $ShLT = "on" ]; then
printf '\ndefine("SHOWLOCALTX", "'${ShLT}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $ShPR = "on" ]; then
printf '\ndefine("SHOWPROGRESSBARS", "'${ShPR}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $CPUT = "on" ]; then
printf '\ndefine("TEMPERATUREALERT", "'${CPUT}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
printf '\ndefine("TEMPERATUREHIGHLEVEL", "'${WART}'");'>>${CONFIG_PATH_DASHBOARD}config.php
if [ $NSF = "on" ]; then
printf '\ndefine("ENABLENETWORKSWITCHING", "'${NSF}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $DMRRSF = "on" ]; then
printf '\ndefine("ENABLEREFLECTORSWITCHING", "'${DMRRSF}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
if [ $YSFRSF = "on" ]; then
printf '\ndefine("ENABLEYSFREFLECTORSWITCHING", "'${YSFRSF}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
printf '\ndefine("SWITCHNETWORKUSER", "'${UseSN}'");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("SWITCHNETWORKPW", "'${PasSN}'");'>>${CONFIG_PATH_DASHBOARD}config.php
if [ $MF = "on" ]; then
printf '\ndefine("ENABLEMANAGEMENT", "'${MF}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
printf '\ndefine("VIEWLOGUSER", "'${UseVL}'");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("VIEWLOGPW", "'${PasVL}'");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("HALTUSER", "'${UseHa}'");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("HALTPW", "'${PasHa}'");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("REBOOTUSER", "'${UseRe}'");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("REBOOTPW", "'${PasRe}'");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("RESTARTUSER", "'${UseRs}'");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("RESTARTPW", "'${PasRs}'");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("REBOOTYSFGATEWAY", "sudo service ysfgateway restart");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("REBOOTMMDVM", "sudo service mmdvmhost restart");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("REBOOTSYS", "sudo reboot");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("HALTSYS", "sudo halt");'>>${CONFIG_PATH_DASHBOARD}config.php
if [ $ShPO = "on" ]; then
printf '\ndefine("SHOWPOWERSTATE", "'${ShPO}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
printf '\ndefine("POWERONLINEPIN", "'${GPIOMo}'");'>>${CONFIG_PATH_DASHBOARD}config.php
printf '\ndefine("POWERONLINESTATE", "'${OnLnSt}'");'>>${CONFIG_PATH_DASHBOARD}config.php
if [ $QRZcom = "on" ]; then
printf '\ndefine("SHOWQRZ", "'${QRZcom}'");'>>${CONFIG_PATH_DASHBOARD}config.php
fi
printf '\ndefine("RSSI", "'${RSSI}'");'>>${CONFIG_PATH_DASHBOARD}config.php
printf "\n?>">>${CONFIG_PATH_DASHBOARD}config.php
nano ${CONFIG_PATH_DASHBOARD}config.php
fi
exit 0
+25
View File
@@ -0,0 +1,25 @@
# install-mmdvm-sh
Simple script for install mmdvm software on raspberry PI on Debian 10.
Software installing:
* MMDVMHost
* Wiring PI for LCD display 16Xn
* DMRGateway
* YSFClients
* YSFGateway
* YSFParrot
* ircDDBGateway no gui
* DG9VH MMDVMHost-Dashboard
* Telegram BOT
* Button power OFF
* OpenVPN
Read INSTALL.md for exec the script.
For more info:
https://github.com/g4klx
https://github.com/dg9vh
+62
View File
@@ -0,0 +1,62 @@
#!/bin/sh
PATH_FILEEXECBUTTON=$1
FILE_NAME=$2
echo 'installazione di buttonoff....'
echo 'Creazione file python'
echo '#!/usr/bin/python\n#Script per la gestione del power off del sistema tramite pulsante\n#collegato alla GPIO\n#scritto da Fabio PASTORINO IZ1JXP, Mauro ZUNINO IW1ELO' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo 'import RPi.GPIO as GPIO' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo 'import os\n' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo 'GPIO.setmode(GPIO.BCM)' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo 'GPIO.setwarnings(False)' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo 'GPIO.setup(21,GPIO.IN,pull_up_down=GPIO.PUD_UP)' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo 'GPIO.setup(16,GPIO.OUT)\n' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo '#attendo la pressione del tasto (pin a massa)' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo 'GPIO.wait_for_edge(21,GPIO.FALLING)\n' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo '#accendo il led per confermare avvenuta fase di poweroff' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo 'GPIO.output(16, True)' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo 'os.system("sudo shutdown -h now")' >>${PATH_FILEEXECBUTTON}${FILE_NAME}.py
chmod 777 ${PATH_FILEEXECBUTTON}${FILE_NAME}.py
# nano ${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo 'Creazione servizio systemd....'
echo '[Unit]' >>/lib/systemd/system/${FILE_NAME}.service
echo 'Description=Servizio Button Off' >>/lib/systemd/system/${FILE_NAME}.service
echo 'After=syslog.target network.target\n' >>/lib/systemd/system/${FILE_NAME}.service
echo '[Service]' >>/lib/systemd/system/${FILE_NAME}.service
echo 'User=root' >>/lib/systemd/system/${FILE_NAME}.service
echo "WorkingDirectory=${PATH_FILEEXECBUTTON}" >>/lib/systemd/system/${FILE_NAME}.service
echo "ExecStart=/usr/bin/python ${PATH_FILEEXECBUTTON}${FILE_NAME}.py" >>/lib/systemd/system/${FILE_NAME}.service
echo 'ExecReload=/bin/kill -HUP $MAINPID' >>/lib/systemd/system/${FILE_NAME}.service
echo 'KillMode=process\n' >>/lib/systemd/system/${FILE_NAME}.service
echo '[Install]' >>/lib/systemd/system/${FILE_NAME}.service
echo 'WantedBy=multi-user.target' >>/lib/systemd/system/${FILE_NAME}.service
# nano /lib/systemd/system/${FILE_NAME}.service
echo '[Timer]' >>/lib/systemd/system/${FILE_NAME}.timer
echo 'OnStartupSec=30\n' >>/lib/systemd/system/${FILE_NAME}.timer
echo '[Install]' >>/lib/systemd/system/${FILE_NAME}.timer
echo 'WantedBy=multi-user.target' >>/lib/systemd/system/${FILE_NAME}.timer
# nano /lib/systemd/system/${FILE_NAME}.timer
chmod 755 /lib/systemd/system/${FILE_NAME}.service
chmod 755 /lib/systemd/system/${FILE_NAME}.timer
# systemctl enable ${FILE_NAME}.timer
echo 'Fare "sudo reboot" per il corretto funzionanmeto.'
echo "Per avviare manualmente l'applicazione 'sudo service ${FILE_NAME} start'"
echo "per arrestare manualmente l'applicazione 'sudo service ${FILE_NAME} stop'"
echo "Per disabilitare l'avvio automatico 'sudo systemctl disable ${FILE_NAME}.timer'"
exit 0
+19
View File
@@ -0,0 +1,19 @@
#!/bin/sh
echo 'installazione dashboard....'
git clone https://github.com/dg9vh/MMDVMHost-Dashboard.git /var/www/html/MMDVMHost-Dashboard
groupadd www-data
usermod -G www-data -a pi
chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html
apt-get install php7.3-common php7.3-cgi php
apt-get install sqlite3 php7.3-sqlite
lighty-enable-mod fastcgi
lighty-enable-mod fastcgi-php
service lighttpd force-reload
exit 0
+39
View File
@@ -0,0 +1,39 @@
#!/bin/sh
PATH_RUN_SCRIPT=$1
LOG_PATH_DMRGATEWAY=$2
CONFIG_PATH_DMRGATEWAY=$3
PATH_EXEC=$4
N_CPU=$5
git clone https://github.com/g4klx/DMRGateway.git /home/pi/MMDVM/DMRGateway
cd /home/pi/MMDVM/DMRGateway/
make clean
echo 'Compilazione DMRGateway...'
if [ $N_CPU = "0" ]; then
make
else
make -j$N_CPU all
fi
cp -R /home/pi/MMDVM/DMRGateway/DMRGateway ${PATH_EXEC}
mkdir -p ${CONFIG_PATH_DMRGATEWAY}
mkdir -p ${LOG_PATH_DMRGATEWAY}
chmod -R 777 ${CONFIG_PATH_DMRGATEWAY}
chmod -R 777 ${LOG_PATH_DMRGATEWAY}
# sed -i 's,FilePath=.,FilePath=${LOG_PATH_DMRGATEWAY},g' ${CONFIG_PATH_DMRGATEWAY}MMDVM.ini
# sed -i 's,FileLevel=1,FileLevel=0,g' ${CONFIG_PATH_DMRGATEWAY}MMDVM.ini
# sed -i 's,# Port=/dev/ttyACM0,Port=/dev/ttyAMA0,g' ${CONFIG_PATH_DMRGATEWAY}MMDVM.ini
# sed -i 's,Port=\\.\COM3,# Port=\\.\COM3,g' ${CONFIG_PATH_DMRGATEWAY}MMDVM.ini
#nano DMRGateway.ini
cp -R /home/pi/MMDVM/DMRGateway/DMRGateway.ini ${CONFIG_PATH_DMRGATEWAY}
cp -R /home/pi/MMDVM/DMRGateway/XLXHosts.txt ${LOG_PATH_DMRGATEWAY}
cp -R /home/pi/MMDVM/DMRGateway/Audio ${CONFIG_PATH_DMRGATEWAY}
cp -R ${PATH_RUN_SCRIPT}/service/dmrgateway.service /lib/systemd/system/
cp -R ${PATH_RUN_SCRIPT}/service/dmrgateway.timer /lib/systemd/system/
chmod 755 /lib/systemd/system/dmrgateway.service
chmod 755 /lib/systemd/system/dmrgateway.timer
exit 0
+33
View File
@@ -0,0 +1,33 @@
#!/bin/sh
PATH_RUN_SCRIPT=$1
LOG_PATH_IRCDDBGATEWAY=$2
CONFIG_PATH_IRCDDBGATEWAY=$3
PATH_EXEC=$4
N_CPU=$5
git clone https://github.com/g4klx/ircDDBGateway.git /home/pi/MMDVM/ircDDBGateway
echo 'Compilazione IRCDDBGateway...'
cd /home/pi/MMDVM/ircDDBGateway/
make clean
sed -i "s%/var/log%${LOG_PATH_IRCDDBGATEWAY}%g" /home/pi/MMDVM/ircDDBGateway/Makefile
sed -i "s%/etc%${CONFIG_PATH_IRCDDBGATEWAY}%g" /home/pi/MMDVM/ircDDBGateway/Makefile
sed -i "s%/usr/bin%/usr/local/bin%g" /home/pi/MMDVM/ircDDBGateway/Makefile
if [ $N_CPU = "0" ]; then
make
else
make -j$N_CPU all
fi
make install
mkdir -p ${CONFIG_PATH_IRCDDBGATEWAY}
mkdir -p ${LOG_PATH_IRCDDBGATEWAY}
chown -R pi ${CONFIG_PATH_IRCDDBGATEWAY}
chown -R pi ${LOG_PATH_IRCDDBGATEWAY}
cp -R ${PATH_RUN_SCRIPT}/ircddbgateway ${CONFIG_PATH_IRCDDBGATEWAY}
cp -R ${PATH_RUN_SCRIPT}/service/ircddbgatewayd.service /lib/systemd/system/
cp -R ${PATH_RUN_SCRIPT}/service/ircddbgatewayd.timer /lib/systemd/system/
chmod 755 /lib/systemd/system/ircddbgatewayd.service
chmod 755 /lib/systemd/system/ircddbgatewayd.timer
exit 0
+65
View File
@@ -0,0 +1,65 @@
#!/bin/sh
PATH_RUN_SCRIPT=$1
LOG_PATH_MMDVMHOST=$2
CONFIG_PATH_MMDVMHOST=$3
PATH_EXEC=$4
N_CPU=$5
git clone https://github.com/g4klx/MMDVMHost.git /home/pi/MMDVM/MMDVMHost
sleep 2
echo 'Vuoi installare la versione di MMDVMHost con Display HD44780? (y/n)'
read VAR
if [ $VAR = "y" ]; then
echo 'Installazione di Wiring Pi....'
sleep 2
git clone git://git.drogon.net/wiringPi
cd wiringPi
sudo ./build
sleep 2
echo 'Compilazione e installazione di MMDVMHost con Display HD44780....'
sleep 2
cd /home/pi/MMDVM/MMDVMHost/
make clean
echo 'Compilazione di MMDVMHost....'
if [ $N_CPU = "0" ]; then
make -f Makefile.Pi.HD44780
else
make -f Makefile.Pi.HD44780 -j$N_CPU all
fi
else
echo 'Compilazione e installazione di MMDVMHost senza Display HD44780....'
cd /home/pi/MMDVM/MMDVMHost/
make clean
echo 'Compilazione MMDVMHost...'
if [ $N_CPU = "0" ]; then
make
else
make -j$N_CPU all
fi
fi
cp -R /home/pi/MMDVM/MMDVMHost/MMDVMHost ${PATH_EXEC}
mkdir -p ${CONFIG_PATH_MMDVMHOST}
mkdir -p ${LOG_PATH_MMDVMHOST}
chmod -R 777 ${CONFIG_PATH_MMDVMHOST}
chmod -R 777 ${LOG_PATH_MMDVMHOST}
# nano MMDVM.ini
cp -R /home/pi/MMDVM/MMDVMHost/MMDVM.ini ${CONFIG_PATH_MMDVMHOST}
cp -R /home/pi/MMDVM/MMDVMHost/NXDN.csv ${LOG_PATH_MMDVMHOST}
cp -R ${PATH_RUN_SCRIPT}/service/mmdvmhost.service /lib/systemd/system/
cp -R ${PATH_RUN_SCRIPT}/service/mmdvmhost.timer /lib/systemd/system/
chmod 755 /lib/systemd/system/mmdvmhost.service
chmod 755 /lib/systemd/system/mmdvmhost.timer
#servizio crontab download DMR ID
echo " 0 0 * * * root sh /home/pi/script/DMRIDUpdate.sh 1>/dev/null 2>&1" >> /etc/crontab
exit 0
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
echo 'installazione di OpenVPN....'
sleep 2
sudo apt-get install openvpn
sudo apt-get install openssl
sleep 2
exit 0
+16
View File
@@ -0,0 +1,16 @@
#!/bin/sh
PATH_RUN_SCRIPT=$1
pip install telepot
sleep 2
echo 'Crezione dei servizi.....'
cp -R ${PATH_RUN_SCRIPT}/telegrambot.py /home/pi/
cp -R ${PATH_RUN_SCRIPT}/service/telegrambot.service /lib/systemd/system/
cp -R ${PATH_RUN_SCRIPT}/service/telegrambot.timer /lib/systemd/system/
chmod 755 /lib/systemd/system/telegrambot.service
chmod 755 /lib/systemd/system/telegrambot.timer
exit 0
+48
View File
@@ -0,0 +1,48 @@
#!/bin/sh
PATH_RUN_SCRIPT=$1
LOG_PATH_YSFGATEWAY=$2
CONFIG_PATH_YSFGATEWAY=$3
PATH_EXEC=$4
N_CPU=$5
git clone https://github.com/g4klx/YSFClients.git /home/pi/MMDVM/YSFClients
cd /home/pi/MMDVM/YSFClients/YSFGateway/
sudo make clean
echo 'Compilazione YSFGateway...'
if [ $N_CPU = "0" ]; then
make
else
make -j$N_CPU all
fi
mkdir -p ${CONFIG_PATH_YSFGATEWAY}
mkdir -p ${LOG_PATH_YSFGATEWAY}
chmod -R 777 ${CONFIG_PATH_YSFGATEWAY}
chmod -R 777 ${LOG_PATH_YSFGATEWAY}
cp -R /home/pi/MMDVM/YSFClients/YSFGateway/YSFGateway ${PATH_EXEC}
cp -R /home/pi/MMDVM/YSFClients/YSFGateway/FCSRooms.txt ${CONFIG_PATH_YSFGATEWAY}
cp -R /home/pi/MMDVM/YSFClients/YSFGateway/YSFGateway.ini ${CONFIG_PATH_YSFGATEWAY}
cd /home/pi/MMDVM/YSFClients/YSFParrot/
echo 'Compilazione YSFParrot...'
if [ $N_CPU = "0" ]; then
make
else
make -j$N_CPU all
fi
cp -R /home/pi/MMDVM/YSFClients/YSFParrot/YSFParrot ${PATH_EXEC}
cp -R ${PATH_RUN_SCRIPT}/service/ysfgateway.service /lib/systemd/system/
cp -R ${PATH_RUN_SCRIPT}/service/ysfparrot.service /lib/systemd/system/
cp -R ${PATH_RUN_SCRIPT}/service/ysfgateway.timer /lib/systemd/system/
cp -R ${PATH_RUN_SCRIPT}/service/ysfparrot.timer /lib/systemd/system/
chmod 755 /lib/systemd/system/ysfgateway.service
chmod 755 /lib/systemd/system/ysfparrot.service
chmod 755 /lib/systemd/system/ysfgateway.timer
chmod 755 /lib/systemd/system/ysfparrot.timer
#add crontab service update reflector list
echo"* /5 * * * * root wget -O /var/log/ysfgateway/YSFHosts.txt http://register.ysfreflector.de/export_csv.php" >> /etc/crontab
exit 0
+183
View File
@@ -0,0 +1,183 @@
gatewayType=1
gatewayCallsign=IZ1MLT
gatewayAddress=0.0.0.0
icomAddress=127.0.0.1
icomPort=20000
hbAddress=127.0.0.1
hbPort=20010
latitude=44.554375
longitude=8.938647
description1=Pass Giovi, JN44LN
description2=Italia, IT
url=www.google.com
repeaterCall1=IZ1MLT
repeaterBand1=B
repeaterType1=0
repeaterAddress1=127.0.0.1
repeaterPort1=20011
reflector1=DCS999 K
atStartup1=1
reconnect1=0
frequency1=430.43750
offset1=5.0000
rangeKms1=1.000
latitude1=44.554375
longitude1=8.938647
agl1=3.000
description1_1=Pass Giovi, JN44LN
description1_2=Italia, IT
url1=www.google.com
band1_1=0
band1_2=0
band1_3=0
repeaterCall2=
repeaterBand2=
repeaterType2=0
repeaterAddress2=127.0.0.1
repeaterPort2=20012
reflector2=
atStartup2=0
reconnect2=0
frequency2=0.00000
offset2=0.0000
rangeKms2=0.000
latitude2=0.000000
longitude2=0.000000
agl2=0.000
description2_1=
description2_2=
url2=
band2_1=0
band2_2=0
band2_3=0
repeaterCall3=
repeaterBand3=
repeaterType3=0
repeaterAddress3=127.0.0.1
repeaterPort3=20013
reflector3=
atStartup3=0
reconnect3=0
frequency3=0.00000
offset3=0.0000
rangeKms3=0.000
latitude3=0.000000
longitude3=0.000000
agl3=0.000
description3_1=
description3_2=
url3=
band3_1=0
band3_2=0
band3_3=0
repeaterCall4=
repeaterBand4=
repeaterType4=0
repeaterAddress4=127.0.0.1
repeaterPort4=20014
reflector4=
atStartup4=0
reconnect4=0
frequency4=0.00000
offset4=0.0000
rangeKms4=0.000
latitude4=0.000000
longitude4=0.000000
agl4=0.000
description4_1=
description4_2=
url4=
band4_1=0
band4_2=0
band4_3=0
ircddbEnabled=0
ircddbHostname=rr.openquad.net
ircddbUsername=IZ1MLT
ircddbPassword=
ircddbEnabled2=0
ircddbHostname2=rr.openquad.net
ircddbUsername2=
ircddbPassword2=
ircddbEnabled3=0
ircddbHostname3=
ircddbUsername3=
ircddbPassword3=
ircddbEnabled4=0
ircddbHostname4=
ircddbUsername4=
ircddbPassword4=
aprsEnabled=1
aprsHostname=italy1.aprs2.net
aprsPort=14580
dextraEnabled=1
dextraMaxDongles=5
dplusEnabled=1
dplusMaxDongles=5
dplusLogin=IZ1JFP
dcsEnabled=1
ccsEnabled=1
ccsHost=CCS701
xlxEnabled=1
xlxOverrideLocal=1
xlxHostsFileUrl=xlxapi.rlx.lu/api.php?do=GetReflectorHostname
starNetBand1=B
starNetCallsign1=
starNetLogoff1=
starNetInfo1=
starNetPermanent1=
starNetUserTimeout1=300
starNetGroupTimeout1=300
starNetCallsignSwitch1=1
starNetTXMsgSwitch1=1
starNetReflector1=
starNetBand2=B
starNetCallsign2=
starNetLogoff2=
starNetInfo2=
starNetPermanent2=
starNetUserTimeout2=300
starNetGroupTimeout2=300
starNetCallsignSwitch2=1
starNetTXMsgSwitch2=1
starNetReflector2=
starNetBand3=A
starNetCallsign3=
starNetLogoff3=
starNetInfo3=
starNetPermanent3=
starNetUserTimeout3=300
starNetGroupTimeout3=300
starNetCallsignSwitch3=0
starNetTXMsgSwitch3=1
starNetReflector3=
starNetBand4=A
starNetCallsign4=
starNetLogoff4=
starNetInfo4=
starNetPermanent4=
starNetUserTimeout4=300
starNetGroupTimeout4=300
starNetCallsignSwitch4=0
starNetTXMsgSwitch4=1
starNetReflector4=
starNetBand5=A
starNetCallsign5=
starNetLogoff5=
starNetInfo5=
starNetPermanent5=
starNetUserTimeout5=300
starNetGroupTimeout5=300
starNetCallsignSwitch5=0
starNetTXMsgSwitch5=1
starNetReflector5=
remoteEnabled=1
remotePassword=raspbery
remotePort=10022
language=4
infoEnabled=1
echoEnabled=1
logEnabled=1
dratsEnabled=1
dtmfEnabled=1
windowX=290
windowY=284
+115
View File
@@ -0,0 +1,115 @@
#!/bin/sh
################################################################################
# Shellscript: base.sh - visualizza un numero in basi differenti (Bourne Shell)
# Autore : Luca Marchesano IZ1MLT (iz1mlt@hotmail.it)
# Data : 22-01-2018
# Categoria : shell
# $Id : mmdvm.sh ,v 1.0 2018/01/18 9:10:35
#
################################################################################
# Descrizione
# creazione script per l'installazione di MMDVMHost e DMRGateway
# Changes
# 22-01-18 st
# 12-05-18 aggiornamento script per debian 9 e aggiornamento YSFGateway
# 06-01-20 Update script for Debian 10
################################################################################
LOG_PATH_MMDVMHOST="/var/log/mmdvmhost/"
LOG_PATH_DMRGATEWAY="/var/log/dmrgateway/"
LOG_PATH_YSFGATEWAY="/var/log/ysfgateway/"
LOG_PATH_IRCDDBGATEWAY="/var/log/ircddbgateway"
CONFIG_PATH_MMDVMHOST="/etc/mmdvmhost/"
CONFIG_PATH_DMRGATEWAY="/etc/dmrgateway/"
CONFIG_PATH_YSFGATEWAY="/etc/ysfgateway/"
CONFIG_PATH_IRCDDBGATEWAY="/etc/ircddbgateway"
PATH_EXEC="/usr/local/bin/"
PATH_RUN_SCRIPT=$(pwd)
FILE_NAME="buttonoff" #Nome senza estersione
PATH_FILEEXECBUTTON="/usr/local/bin/" #Destinazione programma python
#Utility per ricavare il numero di core attivi e ottimizzare la compilazione del software
N_CPU=$(sed -n -e 1p -e 11p -e 21p -e 31p /proc/cpuinfo | grep -e "processor" | tail --lines 1 | cut -f 2 -d" ")
if [ $N_CPU = "1" ]; then
N_CPU="2"
elif [ $N_CPU = "2" ]; then
N_CPU="3"
elif [ $N_CPU = "3" ]; then
N_CPU="4"
else
N_CPU="0"
fi
echo "Il numero di core è $N_CPU"
sleep 3
echo 'Aggiornamento e installazione dei pachetti neccessari'
apt-get update
apt-get upgrade
apt-get install git build-essential libwxgtk3.0-dev portaudio19-dev libusb-1.0-0-dev chkconfig python-pip lighttpd
# apt-get -f upgrade
apt-get autoremove
echo 'Vuoi installare MMDVMHost? (y/n)'
read VAR
if [ $VAR = "y" ]; then
sh ${PATH_RUN_SCRIPT}/install/mmdvmhost.sh ${PATH_RUN_SCRIPT} ${LOG_PATH_MMDVMHOST} ${CONFIG_PATH_MMDVMHOST} ${PATH_EXEC} ${N_CPU}
fi
echo 'Vuoi installare DMRGateway? (y/n)'
read VAR
if [ $VAR = "y" ]; then
sh ${PATH_RUN_SCRIPT}/install/dmrgateway.sh ${PATH_RUN_SCRIPT} ${LOG_PATH_DMRGATEWAY} ${CONFIG_PATH_DMRGATEWAY} ${PATH_EXEC} ${N_CPU}
fi
echo 'Vuoi installare YSFClients? (y/n)'
read VAR
if [ $VAR = "y" ]; then
sh ${PATH_RUN_SCRIPT}/install/ysfclients.sh ${PATH_RUN_SCRIPT} ${LOG_PATH_YSFGATEWAY} ${CONFIG_PATH_YSFGATEWAY} ${PATH_EXEC} ${N_CPU}
fi
echo 'Vuoi installare ircDDBGateway? (y/n)'
read VAR
if [ $VAR = "y" ]; then
sh ${PATH_RUN_SCRIPT}/install/ircddbgateway.sh ${PATH_RUN_SCRIPT} ${LOG_PATH_IRCDDBGATEWAY} ${CONFIG_PATH_IRCDDBGATEWAY} ${PATH_EXEC} ${N_CPU}
fi
echo 'Vuoi installare i servizi bot telegram? (y/n)'
read VAR
if [ $VAR = "y" ]; then
sh ${PATH_RUN_SCRIPT}/install/telegrambot.sh ${PATH_RUN_SCRIPT}
fi
cp -R ${PATH_RUN_SCRIPT}/script /home/pi/
echo 'Vuoi installare dashboard? (y/n)'
read VAR
if [ $VAR = "y" ]; then
sh ${PATH_RUN_SCRIPT}/install/dashboard.sh
fi
echo 'Vuoi installare buttonoff? (y/n)'
read VAR
if [ $VAR = "y" ]; then
sh ${PATH_RUN_SCRIPT}/install/buttonoff.sh ${PATH_FILEEXECBUTTON} ${FILE_NAME}
fi
echo 'Vuoi installare OpenVPN? (y/n)'
read VAR
if [ $VAR = "y" ]; then
sh ${PATH_RUN_SCRIPT}/install/openvpn.sh
fi
systemctl daemon-reload
echo 'Fine istallazione, si consiglia di fare un reboot se tutto e stato eseguito corretamente '
exit 0
+66
View File
@@ -0,0 +1,66 @@
#!/bin/sh
#---------------------------------Carico percorsi da script di installazione-----------------------------------------------------
PATH_FILE_INSTAL_MMDVM=$(pwd)"/mmdvm.sh"
LOG_PATH_MMDVMHOST=$(grep -e "LOG_PATH_MMDVMHOST=" ${PATH_FILE_INSTAL_MMDVM} | cut -f 2 -d"=" | cut -f 2 -d'"')
LOG_PATH_DMRGATEWAY=$(grep -e "LOG_PATH_DMRGATEWAY=" ${PATH_FILE_INSTAL_MMDVM} | cut -f 2 -d"=" | cut -f 2 -d'"')
LOG_PATH_YSFGATEWAY=$(grep -e "LOG_PATH_YSFGATEWAY=" ${PATH_FILE_INSTAL_MMDVM} | cut -f 2 -d"=" | cut -f 2 -d'"')
LOG_PATH_IRCDDBGATEWAY=$(grep -e "LOG_PATH_IRCDDBGATEWAY=" ${PATH_FILE_INSTAL_MMDVM} | cut -f 2 -d"=" | cut -f 2 -d'"')
CONFIG_PATH_MMDVMHOST=$(grep -e "CONFIG_PATH_MMDVMHOST=" ${PATH_FILE_INSTAL_MMDVM} | cut -f 2 -d"=" | cut -f 2 -d'"')
CONFIG_PATH_DMRGATEWAY=$(grep -e "CONFIG_PATH_DMRGATEWAY=" ${PATH_FILE_INSTAL_MMDVM} | cut -f 2 -d"=" | cut -f 2 -d'"')
CONFIG_PATH_YSFGATEWAY=$(grep -e "CONFIG_PATH_YSFGATEWAY=" ${PATH_FILE_INSTAL_MMDVM} | cut -f 2 -d"=" | cut -f 2 -d'"')
CONFIG_PATH_IRCDDBGATEWAY=$(grep -e "CONFIG_PATH_IRCDDBGATEWAY=" ${PATH_FILE_INSTAL_MMDVM} | cut -f 2 -d"=" | cut -f 2 -d'"')
PATH_EXEC=$(grep -e "PATH_EXEC=" ${PATH_FILE_INSTAL_MMDVM} | cut -f 2 -d"=" | cut -f 2 -d'"')
FILE_NAME=$(grep -e "FILE_NAME=" ${PATH_FILE_INSTAL_MMDVM} | cut -f 2 -d"=" | cut -f 2 -d'"')
PATH_FILEEXECBUTTON=$(grep -e "PATH_FILEEXECBUTTON=" ${PATH_FILE_INSTAL_MMDVM} | cut -f 2 -d"=" | cut -f 2 -d'"')
#---------------------------------------------------------------------------------------------------------------------------------
echo 'Arresto e disabilitrazione servizi....'
service mmdvmhost stop
service dmrgateway stop
service ysfgateway stop
service ysfparrot stop
service ircddbgatewayd stop
service ${FILE_NAME} stop
service telegrambot stop
systemctl disable mmdvmhost.timer
systemctl disable dmrgateway.timer
systemctl disable ysfgateway.timer
systemctl disable ysfparrot.timer
systemctl disable ircddbgatewayd.timer
systemctl disable ${FILE_NAME}.timer
systemctl disable telegrambot.timer
echo 'Eliminazione servizi......'
rm -R /lib/systemd/system/mmdvmhost.* /lib/systemd/system/dmrgateway.* /lib/systemd/system/ysfgateway.* /lib/systemd/system/ysfparrot.* /lib/systemd/system/ircddbgatewayd.* /lib/systemd/system/telegrambot.* /lib/systemd/system/${FILE_NAME}.*
echo 'Disinstallazione ircDDBGateway.....'
cd /home/pi/MMDVM/ircDDBGateway/
make distclean
make clean
rm -R /usr/local/bin/aprstransmitd /usr/local/bin/remotecontrold /usr/local/bin/texttransmitd /usr/local/bin/voicetransmitd /usr/local/sbin/aprstransmitd /usr/local/sbin/ircddbgatewayd /usr/local/sbin/ircddbgatewayconfig /usr/local/sbin/starnetserverd /usr/local/sbin/timercontrold /usr/local/sbin/timeserverd
rm -R /usr/share/ircddbgateway
echo 'Disinstallazione di mmdvmhost, dmrgateway, ysfgateway, ysfparrot, buttonoff.....'
rm -R ${LOG_PATH_MMDVMHOST} ${LOG_PATH_DMRGATEWAY} ${LOG_PATH_YSFGATEWAY} ${LOG_PATH_IRCDDBGATEWAY} ${CONFIG_PATH_MMDVMHOST} ${CONFIG_PATH_DMRGATEWAY} ${CONFIG_PATH_YSFGATEWAY} ${CONFIG_PATH_IRCDDBGATEWAY}
rm /usr/local/bin/MMDVMHost /usr/local/bin/DMRGateway /usr/local/bin/YSFGateway /usr/local/bin/YSFParrot ${PATH_FILEEXECBUTTON}${FILE_NAME}.py
echo 'Eliminazione cartella /home/pi/MMDVM.....'
rm -R /home/pi/MMDVM
echo 'Eliminazione dashbord....'
rm -R /var/www/html/MMDVMHost-Dashboard/
rm -R /home/pi/script/
echo 'Eliminazione servizi crontab....'
sed -e /home/d -e /log/d /etc/crontab > /tmp/crontabappend
cat /tmp/crontabappend > /etc/crontab
rm /tmp/crontabappend
systemctl daemon-reload
echo 'Fine!! Riavviare il sistema'
exit 0
+108
View File
@@ -0,0 +1,108 @@
#! /bin/bash
###############################################################################
#
# DMRIDUpdate.sh
#
# Copyright (C) 2016 by Tony Corbett G0WFV
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
###############################################################################
#
# On a Linux based system, such as a Raspberry Pi, this script will perform all
# the steps required to maintain the DMRIds.dat (or similar) file for you.
#
# It is designed to run from crontab and will download the latest IDs from the
# master DMR-MARC ID database and optionally keep a backup of previously
# created files for you.
#
# It will also prune the number of backup files according to a value specified
# by you in the configuration below.
#
# When done, it will restart MMDVMHost to make the ID changes take effect.
#
# To install in root's crontab use the command ...
#
# sudo crontab -e
#
# ... and add the following line to the bottom of the file ...
#
# 0 0 * * * /path/to/script/DMRIDUpdate.sh 1>/dev/null 2>&1
#
# ... where /path/to/script/ should be replaced by the path to this script.
#
###############################################################################
#
# CONFIGURATION
#
# Full path to DMR ID file
DMRIDPATH=/var/log/mmdvmhost
DMRIDFILE=${DMRIDPATH}/DMRIds.dat
#
# DMR IDs now served by RadioID.net
DATABASEURL='https://ham-digital.org/status/users.csv'
#
# How many DMR ID files do you want backed up (0 = do not keep backups)
DMRFILEBACKUP=1
#
# Command line to restart MMDVMHost
RESTARTCOMMAND="systemctl restart mmdvmhost.service"
# RESTARTCOMMAND="killall MMDVMHost ; /path/to/MMDVMHost/executable/MMDVMHost /path/to/MMDVM/ini/file/MMDVM.ini"
###############################################################################
#
# Do not edit below here
#
###############################################################################
# Check we are root
if [ "$(id -u)" != "0" ]
then
echo "This script must be run as root" 1>&2
exit 1
fi
# Create backup of old file
if [ ${DMRFILEBACKUP} -ne 0 ]
then
cp ${DMRIDFILE} ${DMRIDFILE}.$(date +%d%m%y)
fi
# Prune backups
BACKUPCOUNT=$(ls ${DMRIDFILE}.* | wc -l)
BACKUPSTODELETE=$(expr ${BACKUPCOUNT} - ${DMRFILEBACKUP})
if [ ${BACKUPCOUNT} -gt ${DMRFILEBACKUP} ]
then
for f in $(ls -tr ${DMRIDFILE}.* | head -${BACKUPSTODELETE})
do
rm $f
done
fi
# Generate new file
curl ${DATABASEURL} 2>/dev/null | sed -e 's/\t//g' | awk -F"," '/,/{gsub(/ /, "", $2); printf "%s\t%s\t%s\n", $1, $2, $3}' | sed -e 's/\(.\) .*/\1/g' > ${DMRIDPATH}/DMRIds.tmp
NUMOFLINES=$(wc -l ${DMRIDPATH}/DMRIds.tmp | awk '{print $1}')
if [ $NUMOFLINES -gt 1 ]
then
mv ${DMRIDPATH}/DMRIds.tmp ${DMRIDFILE}
else
echo " ERROR during file update "
rm ${DMRIDPATH}/DMRIds.tmp
fi
# Restart MMDVMHost
eval ${RESTARTCOMMAND}
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
#-----------------------------------------------------
LOG_PATH="/var/log/mmdvm/MMDVM-*"
#-----------------------------------------------------
LAST_DSTAR=$(grep -e "D-Star, received network header from" -e "D-Star, received RF header from" ${LOG_PATH} | tail --lines 1 | cut -f 2,4,6,9,11,13,14 -d" ")
LAST_C4FM=$(grep -e "YSF, received network header from" -e "YSF, received RF header from" ${LOG_PATH} | tail --lines 1 | cut -f 2,4,6,9,10,16 -d" ")
LAST_DMR_TS1=$(grep -e "DMR Slot 1, received RF voice header from" -e "DMR Slot 1, received network voice header from" ${LOG_PATH} | tail --lines 1 | cut -f 2,5,6,8,12,14,15 -d" ")
LAST_DMR_TS2=$(grep -e "DMR Slot 2, received RF voice header from" -e "DMR Slot 2, received network voice header from" ${LOG_PATH} | tail --lines 1 | cut -f 2,5,6,8,12,14,15 -d" ")
echo ${LAST_DSTAR}
echo ${LAST_C4FM}
echo ${LAST_DMR_TS1}
echo ${LAST_DMR_TS2}
exit
+18
View File
@@ -0,0 +1,18 @@
[Unit]
Description=DMRGateway Service
After=network-online.target netcheck.service
[Service]
Type=simple
Restart=always
RestartSec=10
StandardOutput=null
WorkingDirectory=/usr/local/bin
ExecStart=/usr/local/bin/DMRGateway /etc/dmrgateway/DMRGateway.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
# To make the network-online.target available
# systemctl enable systemd-networkd-wait-online.service
WantedBy=network-online.target
+5
View File
@@ -0,0 +1,5 @@
[Timer]
OnStartupSec=32
[Install]
WantedBy=multi-user.target
+18
View File
@@ -0,0 +1,18 @@
Unit]
Description=ircDDBGateway Service
After=syslog.target network.target
[Service]
Type=simple
# Restart=always
# RestartSec=3
StandardOutput=null
WorkingDirectory=/usr/local/sbin
ExecStart=/usr/local/bin/ircddbgatewayd -logdir /var/log/ircddbgateway -confdir /etc/ircddbgateway
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
# To make the network-online.target available
# systemctl enable systemd-networkd-wait-online.service
WantedBy=network-online.target
+5
View File
@@ -0,0 +1,5 @@
[Timer]
OnStartupSec=31
[Install]
WantedBy=multi-user.target
+18
View File
@@ -0,0 +1,18 @@
[Unit]
Description=MMDVMHost Service
After=network-online.target netcheck.service
[Service]
Type=simple
Restart=always
RestartSec=10
StandardOutput=null
WorkingDirectory=/usr/local/bin
ExecStart=/usr/local/bin/MMDVMHost /etc/mmdvmhost/MMDVM.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
# To make the network-online.target available
# systemctl enable systemd-networkd-wait-online.service
WantedBy=network-online.target
+5
View File
@@ -0,0 +1,5 @@
[Timer]
OnStartupSec=30
[Install]
WantedBy=multi-user.target
+18
View File
@@ -0,0 +1,18 @@
Unit]
Description=TelegraBot Service
After=syslog.target network.target
[Service]
Type=simple
# Restart=always
# RestartSec=3
StandardOutput=null
WorkingDirectory=/usr/bin
ExecStart=/usr/bin/python /home/pi/telegrambot.py
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
# To make the network-online.target available
# systemctl enable systemd-networkd-wait-online.service
WantedBy=multi-user.target
+5
View File
@@ -0,0 +1,5 @@
[Timer]
OnStartupSec=34
[Install]
WantedBy=multi-user.target
+18
View File
@@ -0,0 +1,18 @@
[Unit]
Description=YSFGateway Service
After=network-online.target netcheck.service
[Service]
Type=simple
Restart=always
RestartSec=3
StandardOutput=null
WorkingDirectory=/usr/local/bin
ExecStart=/usr/local/bin/YSFGateway /etc/ysfgateway/YSFGateway.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
# To make the network-online.target available
# systemctl enable systemd-networkd-wait-online.service
WantedBy=network-online.target
+5
View File
@@ -0,0 +1,5 @@
[Timer]
OnStartupSec=35
[Install]
WantedBy=multi-user.target
+18
View File
@@ -0,0 +1,18 @@
[Unit]
Description=YSFParrot Service
After=network-online.target netcheck.service
[Service]
Type=simple
Restart=always
RestartSec=3
StandardOutput=null
WorkingDirectory=/usr/local/bin
ExecStart=/usr/local/bin/YSFParrot 42012
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
# To make the network-online.target available
# systemctl enable systemd-networkd-wait-online.service
WantedBy=network-online.target
+5
View File
@@ -0,0 +1,5 @@
[Timer]
OnStartupSec=40
[Install]
WantedBy=multi-user.target
+63
View File
@@ -0,0 +1,63 @@
import commands
import sys
import telepot
import time
def handle(msg):
chat_id = msg['chat']['id']
command = msg['text']
print '%s' % command
if command == '/info':
info = commands.getoutput("uname -a")
bot.sendMessage(chat_id,"Sistema basato su Pi-Star %s" % info)
elif command == '/mmdvmstop':
bot.sendMessage(chat_id, "MMDVMHost arrestato")
out = commands.getoutput("sudo service mmdvmhost stop")
elif command == '/mmdvmstart':
bot.sendMessage(chat_id, "MMDVMHost partito")
out = commands.getoutput("sudo service mmdvmhost start")
elif command == '/mmdvmrst':
bot.sendMessage(chat_id, "MMDVMHost riavviato")
out = commands.getoutput("sudo service mmdvmhost restart")
elif command == '/dmrgstop':
bot.sendMessage(chat_id, "DMRGateway arrestato")
out = commands.getoutput("sudo service dmrgateway stop")
elif command == '/dmrgstart':
bot.sendMessage(chat_id, "DMRGateway partito")
out = commands.getoutput("sudo service dmrgateway start")
elif command == '/dmrgrst':
bot.sendMessage(chat_id, "DMRGateway riavviato")
out = commands.getoutput("sudo service dmrgateway restart")
elif command == '/reboot':
out = commands.getoutput("sudo shutdown -r -t 1")
bot.sendMessage(chat_id, "Riavvio in corso...")
elif command == '/off':
bot.sendMessage(chat_id, "Arresro...")
out = commands.getoutput("sudo halt")
#----------------------------------------------------------------------------------------------------------------------------
elif command[0:5] == '/temp':
temp = commands.getoutput("cat /sys/class/thermal/thermal_zone0/temp")
temperatura = int(temp) / 1000
temp = str(temperatura)
out = commands.getoutput("texttransmit iz1mlt_b -text:'Temp CPU %s gradi'" % temp)
bot.sendMessage(chat_id,"Temperatura CPU %s gradi" % temp)
bot = telepot.Bot('token')
bot.message_loop(handle)
print 'sono in ascolto...'
while 1:
time.sleep(10)