mirror of https://gitlab.com/hp3icc/emq-TE1.git
2037 lines
50 KiB
Bash
2037 lines
50 KiB
Bash
#!/bin/sh
|
|
echo Actualizando sistema
|
|
sudo apt-get update -y
|
|
sudo apt-get upgrade -y
|
|
sudo apt-get dist-upgrade -y
|
|
############################################
|
|
echo instalando pre-requisitos
|
|
######################################################################################################
|
|
#!/bin/sh
|
|
sudo apt-get install git -y
|
|
sudo apt-get install screen -y
|
|
sudo apt-get install gcc -y
|
|
sudo apt-get install g++ -y
|
|
sudo apt-get install make -y
|
|
sudo apt-get install cmake -y
|
|
sudo apt-get install libasound2-dev -y
|
|
sudo apt-get install libudev-dev -y
|
|
sudo apt-get install libusb-1.0-0-dev -y
|
|
sudo apt-get install libgps-dev -y
|
|
sudo apt-get install libx11-dev -y
|
|
sudo apt-get install libfftw3-dev -y
|
|
sudo apt-get install libpulse-dev -y
|
|
sudo apt-get install build-essential -y
|
|
sudo apt-get install alsa-utils -y
|
|
sudo apt-get install rsyslog -y
|
|
sudo apt-get install logrotate -y
|
|
sudo apt-get install gpsd -y
|
|
sudo apt-get install qt4-qmake -y
|
|
sudo apt-get install libtool -y
|
|
sudo apt-get install autoconf -y
|
|
sudo apt-get install automake -y
|
|
sudo apt-get install python-pkg-resources -y
|
|
sudo apt-get install sox -y
|
|
sudo apt-get install git-core -y
|
|
sudo apt-get install libi2c-dev -y
|
|
sudo apt-get install i2c-tools -y
|
|
sudo apt-get install lm-sensors -y
|
|
sudo apt-get install wiringpi -y
|
|
sudo apt-get install chkconfig -y
|
|
sudo apt-get install wavemon -y
|
|
sudo apt install python3-pip -y
|
|
sudo apt install python3
|
|
sudo apt install python3-websockets
|
|
sudo apt install python3-psutil
|
|
sudo apt-get install python3-serial
|
|
sudo apt install python3-gpiozero -y
|
|
sudo apt-get install gpsd gpsd-clients python-gps -y
|
|
sudo apt install socket
|
|
sudo apt install threading
|
|
sudo apt install queue
|
|
sudo apt install sys
|
|
sudo apt install os
|
|
sudo apt install time
|
|
sudo apt install re
|
|
sudo apt install configparser
|
|
sudo apt install datetime
|
|
sudo apt install signal
|
|
sudo apt install datetime
|
|
sudo apt install bisect
|
|
sudo apt install struct
|
|
sudo apt install ansi2html
|
|
sudo apt install logrotate
|
|
sudo pip3 install ansi2html
|
|
|
|
##################
|
|
cat > /etc/default/gpsd <<- "EOF"
|
|
USBAUTO="False"
|
|
DEVICES="/dev/ttyACM0"
|
|
START_DAEMON="true"
|
|
GPSD_OPTIONS="-n"
|
|
GPSD_SOCKET="/var/run/gpsd.sock"
|
|
|
|
EOF
|
|
|
|
sudo gpsd /dev/ttyACM0 -F /var/run/gpsd.sock
|
|
|
|
#################
|
|
echo iniciando instalacion
|
|
|
|
cd /opt
|
|
git clone https://github.com/iu5jae/pYSFReflector.git
|
|
cd pYSFReflector/
|
|
#cp YSFReflector /usr/local/sbin/
|
|
#cp YSFReflector.ini /usr/local/etc/
|
|
|
|
cp YSFReflector /usr/local/bin/
|
|
chmod +x /usr/local/bin/YSFReflector
|
|
mkdir /etc/YSFReflector
|
|
|
|
cp YSFReflector.ini /etc/YSFReflector/
|
|
cd /etc/YSFReflector/
|
|
sudo sed -i 's/FilePath=\/var\/log/FilePath=\/var\/log\/YSFReflector/' YSFReflector.ini
|
|
sudo sed -i 's/42395/42000/' YSFReflector.ini
|
|
sudo sed -i 's/FileRotate=1/FileRotate=0/' YSFReflector.ini
|
|
cd /opt/pYSFReflector/
|
|
cp deny.db /usr/local/etc/
|
|
chmod +x /usr/local/bin/YSFReflector
|
|
cd systemd/
|
|
cp YSFReflector.service /lib/systemd/system
|
|
|
|
sudo groupadd mmdvm
|
|
sudo useradd mmdvm -g mmdvm -s /sbin/nologin
|
|
mkdir /var/log/YSFReflector
|
|
sudo chown -R mmdvm:mmdvm /var/log/YSFReflector
|
|
|
|
###############################
|
|
|
|
mkdir /opt/YSF2DMR
|
|
|
|
cd /opt
|
|
git clone https://github.com/juribeparada/MMDVM_CM.git
|
|
sudo cp -r /opt/MMDVM_CM/YSF2DMR /opt/
|
|
cd YSF2DMR
|
|
sudo make
|
|
sudo make install
|
|
|
|
cd /opt
|
|
git clone https://github.com/osmocom/rtl-sdr.git
|
|
cd rtl-sdr/
|
|
mkdir build
|
|
cd build
|
|
cmake ../ -DINSTALL_UDEV_RULES=ON
|
|
sudo make
|
|
sudo make install
|
|
sudo ldconfig
|
|
|
|
cd /opt
|
|
git clone https://github.com/asdil12/kalibrate-rtl.git
|
|
cd kalibrate-rtl/
|
|
./bootstrap
|
|
./configure
|
|
sudo make
|
|
sudo make install
|
|
################################################
|
|
#Direwolf
|
|
|
|
#pulse audio
|
|
|
|
sudo apt-get remove --purge pulseaudio
|
|
sudo apt-get autoremove
|
|
rm -rf /home/pi/.pulse
|
|
cd /opt
|
|
|
|
git clone https://www.github.com/wb2osz/direwolf
|
|
cd direwolf
|
|
git checkout dev
|
|
mkdir build
|
|
cd build
|
|
cmake ..
|
|
make -j4
|
|
sudo make install
|
|
make install-conf
|
|
|
|
##################################################################
|
|
#multimon-ng
|
|
cd /opt
|
|
git clone https://github.com/EliasOenal/multimon-ng.git
|
|
cd multimon-ng/
|
|
mkdir build
|
|
cd build
|
|
cmake ..
|
|
make
|
|
sudo make install
|
|
|
|
cd /opt
|
|
git clone https://github.com/asdil12/pymultimonaprs.git
|
|
cd pymultimonaprs
|
|
sudo python2 setup.py install
|
|
|
|
############################################################################################
|
|
#web
|
|
cd /opt/
|
|
git clone --recurse-submodules -j8 https://github.com/dg9vh/MMDVMHost-Websocketboard
|
|
sudo chown -R mmdvm:mmdvm /opt/MMDVMHost-Websocketboard
|
|
#
|
|
cat > /opt/MMDVMHost-Websocketboard/logtailer.ini <<- "EOF"
|
|
[DEFAULT]
|
|
# No need to touch this. If you want to bind it to a specific IP-address (if there are more than one interface to the
|
|
# network you can set your ip here - but default it listens on every interface
|
|
Host=0.0.0.0
|
|
|
|
# If changeing the port please change it also in the index.html-file at the parts where you find:
|
|
# new WebSocket("ws://" + window.location.hostname ...
|
|
Port=5678
|
|
|
|
# set to True if SSL will be used
|
|
Ssl=False
|
|
SslCert=/path/to/cert
|
|
SslKey=/path/to/keyfile
|
|
|
|
# This defines the maximum amount of loglines to be sent on initial opening of the dashboard
|
|
MaxLines=500
|
|
|
|
# Keep this parameter synchrone to Filerotate in MMDVM.ini/DMRHost.ini - if 0 then False, if 1 then True
|
|
Filerotate=False
|
|
#True
|
|
|
|
[MMDVMHost]
|
|
# Don't throw away the trailing slash! It is important but check logfile-location and Prefix twice :-)
|
|
Logdir=/var/log/mmdvm/
|
|
|
|
# Change this to DMRHost, if you are using DMRHost and configured this as log-prefix in the host-ini.
|
|
Prefix=MMDVMHost
|
|
# if you want to have the operator-names as popup with the callsigns, set this parts = 1 and the LookupFile to
|
|
# the right position. On MMDVMHost comment out the DMRIDs.dat-line to have the DMRIds and not the callsigns in the
|
|
# logfile to have the callsigns with names transported to the dashboard.
|
|
DMR_ID_Lookup=1
|
|
DMR_ID_LookupFile=/opt/MMDVMHost/DMRIds.dat
|
|
|
|
# Location of your MMDVM.ini/DMRHost.ini or similar
|
|
MMDVM_ini=/opt/MMDVMHost/MMDVM.ini
|
|
|
|
# Localtion of your MMDVMHost/DMRHost-binary
|
|
MMDVM_bin=/opt/MMDVMHost/MMDVMHost
|
|
#/usr/local/bin/MMDVMHost
|
|
|
|
[DAPNETGateway]
|
|
# Don't throw away the trailing slash! It is important but check logfile-location and Prefix twice :-)
|
|
Logdir=/var/log/mmdvm
|
|
#/mnt/ramdisk/
|
|
Prefix=MMDVMHost
|
|
#DAPNETGateway
|
|
|
|
[ServiceMonitoring]
|
|
# Here you list your Services to be monitored. Just add additional lines if needed but be sure to count them up
|
|
BinaryName1=MMDVMHost
|
|
BinaryName2=DMRGateway
|
|
BinaryName3=DGIdGateway
|
|
BinaryName4=YSF2DMR
|
|
|
|
|
|
|
|
EOF
|
|
#
|
|
cat > /lib/systemd/system/http.server-mmdvmh.service <<- "EOF"
|
|
[Unit]
|
|
Description=Python3 http.server.mmdvmhost
|
|
After=network.target
|
|
|
|
[Service]
|
|
User=root
|
|
Type=simple
|
|
#User=mmdvm
|
|
#Group=mmdvm
|
|
Restart=always
|
|
ExecStartPre=/bin/sleep 30
|
|
# Modify for different location of Python3 or other port
|
|
ExecStart=/usr/bin/python3 -m http.server 80 --directory /opt/MMDVMHost-Websocketboard/html
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
|
|
EOF
|
|
#
|
|
cat > /lib/systemd/system/logtailer-mmdvmh.service <<- "EOF"
|
|
[Unit]
|
|
Description=Python3 logtailer for MMDVMDash
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=mmdvm
|
|
Group=mmdvm
|
|
Restart=always
|
|
ExecStartPre=/bin/sleep 30
|
|
# Modify for different location of Python3 or other port
|
|
WorkingDirectory=/opt/MMDVMHost-Websocketboard/
|
|
ExecStart=/usr/bin/python3 /opt/MMDVMHost-Websocketboard/logtailer.py
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
|
|
EOF
|
|
#
|
|
git clone --recurse-submodules -j8 https://github.com/dg9vh/WSYSFDash
|
|
cd /opt/WSYSFDash/
|
|
sudo chown -R mmdvm /opt/WSYSFDash
|
|
#
|
|
cat > /opt/WSYSFDash/logtailer.ini <<- "EOF"
|
|
[DEFAULT]
|
|
# No need to change this line below
|
|
Host=0.0.0.0
|
|
Port=5678
|
|
# set to True if SSL will be used
|
|
Ssl=False
|
|
SslCert=/path/to/fullchain.pem
|
|
SslKey=/path/to/privkey.pem
|
|
|
|
# This defines the maximum amount of loglines to be sent on initial opening of the dashboard
|
|
MaxLines=500
|
|
|
|
# Keep this parameter synchrone to Filerotate in YSFReflector.ini - if 0 then False, if 1 then True
|
|
Filerotate=False
|
|
#True
|
|
|
|
# You can use the logtailer-Service for more than one reflector running on your system.
|
|
# To do this, just copy the [YSFReflectorN]-Section into a new one, renumber it and modify the Logdir and Prefix.
|
|
# To use this on systems with more than one reflector, it is recommended to use a real webserver to host the html-files.
|
|
|
|
[YSFReflector]
|
|
# Localtion of your YSFReflector-binary
|
|
YSFReflector_bin=/usr/local/bin/YSFReflector
|
|
|
|
Logdir=/var/log/YSFReflector/
|
|
Prefix=YSFReflector
|
|
|
|
#[YSFReflector2]
|
|
#Logdir=/var/log/YSFReflector2/
|
|
#Prefix=YSFReflector
|
|
|
|
|
|
|
|
EOF
|
|
#
|
|
cat > /lib/systemd/system/http.server-ysf.service <<- "EOF"
|
|
[Unit]
|
|
Description=Python3 http.server-ysf
|
|
After=network.target
|
|
|
|
[Service]
|
|
User=root
|
|
ExecStartPre=/bin/sleep 10
|
|
Type=simple
|
|
#User=mmdvm
|
|
#Group=mmdvm
|
|
Restart=always
|
|
# Modify for different location of Python3 or other port
|
|
ExecStart=/usr/bin/python3 -m http.server 80 --directory /opt/WSYSFDash/html
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
EOF
|
|
#
|
|
cat > /lib/systemd/system/logtailer-ysf.service <<- "EOF"
|
|
[Unit]
|
|
Description=Python3 logtailer for WSYSFDash
|
|
After=network.target
|
|
|
|
[Service]
|
|
ExecStartPre=/bin/sleep 10
|
|
Type=simple
|
|
User=mmdvm
|
|
Group=mmdvm
|
|
Restart=always
|
|
# Modify for different location of Python3 or location of files
|
|
WorkingDirectory=/opt/WSYSFDash/
|
|
ExecStart=/usr/bin/python3 /opt/WSYSFDash/logtailer.py
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
|
|
EOF
|
|
#
|
|
|
|
sudo chmod +777 /var/log
|
|
sudo mkdir /var/log/ysf2dmr
|
|
sudo mkdir /var/log/mmdvm
|
|
sudo chmod +777 /var/log/*
|
|
|
|
cd /opt/MMDVMHost-Websocketboard/html/data/
|
|
rm TG_List.csv
|
|
wget https://raw.githubusercontent.com/hp3icc/emq-TE1ws/main/TG_List.csv
|
|
|
|
####################################
|
|
|
|
cd /boot
|
|
sudo sed -i 's/console=serial0,115200 //' cmdline.txt
|
|
|
|
sudo systemctl stop serial-getty@ttyAMA0.service
|
|
sudo systemctl stop bluetooth.service
|
|
sudo systemctl disable serial-getty@ttyAMA0.service
|
|
sudo systemctl disable bluetooth.service
|
|
|
|
sudo sed -i 's/#dtparam=i2c_arm=on/dtparam=i2c_arm=on/' config.txt
|
|
sudo sed -i 's/dtparam=audio=on/#dtparam=audio=on/' config.txt
|
|
|
|
echo "enable_uart=1" >> config.txt
|
|
echo "dtoverlay=pi3-disable-bt" >> config.txt
|
|
echo "dtparam=spi=on" >> config.txt
|
|
|
|
##################
|
|
cat > /lib/systemd/system/monp.service <<- "EOF"
|
|
[Unit]
|
|
Description=sudo modprobe i2c-dev
|
|
#Wants=network-online.target
|
|
#After=syslog.target network-online.target
|
|
[Service]
|
|
User=root
|
|
#ExecStartPre=/bin/sleep 1800
|
|
ExecStart=sudo modprobe i2c-dev
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
##########
|
|
cd /opt
|
|
git clone https://github.com/g4klx/MMDVMHost.git
|
|
cd MMDVMHost/
|
|
make
|
|
make install
|
|
git clone https://github.com/hallard/ArduiPi_OLED
|
|
cd ArduiPi_OLED
|
|
sudo make
|
|
cd /opt/MMDVMHost/
|
|
make clean
|
|
sudo make -f Makefile.Pi.OLED
|
|
|
|
groupadd mmdvm
|
|
useradd mmdvm -g mmdvm -s /sbin/nologin
|
|
chown mmdvm /var/log/
|
|
|
|
#############################################################################################################################################################
|
|
######
|
|
cat > /bin/menu-mm-rtl <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 20 50 11 \
|
|
1 " Editar Multimon-ng APRS " \
|
|
2 " Iniciar APRS " \
|
|
3 " Detener APRS " \
|
|
4 " Menu Principal " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo nano /etc/pymultimonaprs.json;;
|
|
2)
|
|
sudo systemctl restart multimon-rtl.service && sudo systemctl enable multimon-rtl.service;;
|
|
3)
|
|
sudo systemctl stop multimon-rtl.service && sudo systemctl disable multimon-rtl.service;;
|
|
4)
|
|
break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
###menu
|
|
cat > /bin/menu <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 22 50 12 \
|
|
1 " APRS Direwolf Analogo" \
|
|
2 " APRS Direwolf RTL-SDR " \
|
|
3 " APRS Multimon-ng " \
|
|
4 " APRS Ionosphere " \
|
|
5 " MMDVMHost " \
|
|
6 " Dvswitch " \
|
|
7 " pYSFReflector " \
|
|
8 " YSF2DMR " \
|
|
9 " Editar WiFi " \
|
|
10 " Reiniciar Raspberry " \
|
|
11 " APAGAR Raspberry " \
|
|
12 " Salir del menu " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
menu-dw-analogo;;
|
|
2)
|
|
menu-dw-rtl;;
|
|
3)
|
|
menu-mm-rtl;;
|
|
4)
|
|
menu-ionos;;
|
|
5)
|
|
menu-mmdvm;;
|
|
6)
|
|
menu-dvs;;
|
|
7)
|
|
menu-ysf;;
|
|
8)
|
|
menu-ysf2dmr;;
|
|
9)
|
|
menu-wifi;;
|
|
10)
|
|
sudo reboot ;;
|
|
11)
|
|
menu-apagar;;
|
|
12)
|
|
break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
######menu-wifi
|
|
cat > /bin/menu-wifi <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 20 50 11 \
|
|
1 " Editar redes WiFi " \
|
|
2 " Reiniciar dispositivo WiFi " \
|
|
3 " Buscar redes wifi cercanas " \
|
|
4 " Ver intensidad de WIFI " \
|
|
5 " Menu Principal " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf ;;
|
|
2)
|
|
sudo ifconfig wlan0 down && sudo ifconfig wlan0 up ;;
|
|
3)
|
|
sudo iwlist wlan0 scanning | grep ESSID ;;
|
|
4)
|
|
sudo wavemon ;;
|
|
5)
|
|
break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
|
|
|
|
####menu-mmdvm
|
|
cat > /bin/menu-mmdvm <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 20 50 11 \
|
|
1 " Editar MMDVMHost " \
|
|
2 " Iniciar MMDVMHost " \
|
|
3 " Detener MMDVMHost " \
|
|
4 " Dashboard ON " \
|
|
5 " Dashboard Off " \
|
|
6 " Editar Puerto WebServer " \
|
|
7 " Editar HTML " \
|
|
8 " Menu Principal " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo nano /opt/MMDVMHost/MMDVM.ini;;
|
|
2)
|
|
sudo sh /opt/MMDVMHost/DMRIDUpdate.sh && sudo systemctl enable dmrid-mmdvm.service ;;
|
|
3)
|
|
sudo systemctl stop mmdvmh.service && sudo systemctl stop dmrid-mmdvm.service && sudo systemctl disable dmrid-mmdvm.service;;
|
|
4)
|
|
sudo systemctl restart logtailer-mmdvmh.service && sudo systemctl enable logtailer-mmdvmh.service && sudo systemctl restart http.server-mmdvmh.service && sudo systemctl enable http.server-mmdvmh.service ;;
|
|
5)
|
|
sudo systemctl stop logtailer-mmdvmh.service && sudo systemctl disable logtailer-mmdvmh.service && sudo systemctl stop http.server-mmdvmh.service && sudo systemctl disable http.server-mmdvmh.service ;;
|
|
6)
|
|
sudo nano /lib/systemd/system/http.server-mmdvmh.service && sudo systemctl daemon-reload && sudo systemctl restart http.server-mmdvmh.service ;;
|
|
7)
|
|
sudo nano /opt/MMDVMHost-Websocketboard/html/index.html ;;
|
|
8)
|
|
break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
########menu-ysf
|
|
cat > /bin/menu-ysf <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 20 50 11 \
|
|
1 " Editar pYSFReflector Server " \
|
|
2 " Iniciar Reflector " \
|
|
3 " Detener Reflector " \
|
|
4 " Dashbord on " \
|
|
5 " Dashbord off " \
|
|
6 " Editar Puerto WebServer " \
|
|
7 " Editar HTML " \
|
|
8 " Menu Principal " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo nano /etc/YSFReflector/YSFReflector.ini ;;
|
|
2)
|
|
sudo systemctl stop YSFReflector.service && sudo systemctl start YSFReflector.service && sudo systemctl enable YSFReflector.service ;;
|
|
3)
|
|
sudo systemctl stop YSFReflector.service && sudo systemctl disable YSFReflector.service ;;
|
|
4)
|
|
sudo systemctl restart logtailer-ysf.service && sudo systemctl enable logtailer-ysf.service && sudo systemctl restart http.server-ysf.service && sudo systemctl enable http.server-ysf.service ;;
|
|
5)
|
|
sudo systemctl stop logtailer-ysf.service && sudo systemctl disable logtailer-ysf.service && sudo systemctl stop http.server-ysf.service && sudo systemctl disable http.server-ysf.service ;;
|
|
6)
|
|
sudo nano /lib/systemd/system/http.server-ysf.service && sudo systemctl daemon-reload && sudo systemctl restart http.server-ysf.service ;;
|
|
7)
|
|
sudo nano /opt/WSYSFDash/html/index.html ;;
|
|
8)
|
|
break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
##########menu-dvs
|
|
cat > /bin/menu-dvs <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 20 50 11 \
|
|
1 " Editar Dvswitch Server " \
|
|
2 " Iniciar Dvswitch " \
|
|
3 " Detener Dvswitch " \
|
|
4 " Dashbord on " \
|
|
5 " Dashbord off " \
|
|
6 " Menu Principal " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo /usr/local/dvs/dvs ;;
|
|
2)
|
|
sudo systemctl restart dmrid-dvs.service && sudo systemctl restart analog_bridge.service && sudo systemctl enable analog_bridge.service && sudo systemctl enable dmrid-dvs.service ;;
|
|
3)
|
|
sudo systemctl stop mmdvm_bridge.service && sudo systemctl stop dmrid-dvs.service && sudo systemctl stop analog_bridge.service && sudo systemctl disable analog_bridge.service && sudo systemctl disable mmdvm_bridge.service && sudo systemctl disable dmrid-dvs.service ;;
|
|
4)
|
|
sudo cp -r /var/www/web-dvs/* /var/www/html/ && sudo systemctl restart lighttpd.service && sudo systemctl enable lighttpd.service && sudo chown -R www-data:www-data /var/www/html && sudo chmod +777 /var/www/html/* ;;
|
|
5)
|
|
sudo systemctl disable lighttpd.service && sudo systemctl stop lighttpd.service && sudo rm -r /var/www/html/* ;;
|
|
6)
|
|
break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
###menu-apagar
|
|
cat > /bin/menu-apagar <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 11 100 3 \
|
|
1 " Iniciar apagado seguro" \
|
|
2 " Retornar menu " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo shutdown -h now
|
|
;;
|
|
2) break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
###menu-cp-rtl
|
|
cat > /bin/menu-cp-rtl <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 20 50 11 \
|
|
1 " Editar Direwolf " \
|
|
2 " Iniciar APRS " \
|
|
3 " Detener APRS " \
|
|
4 " Menu Principal " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo nano /opt/direwolf/dw.conf;;
|
|
2)
|
|
sudo systemctl restart direwolf.service && sudo systemctl enable direwolf.service;;
|
|
3)
|
|
sudo systemctl stop direwolf.service && sudo systemctl disable direwolf.service;;
|
|
4)
|
|
break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
#####menu-dw-analogo
|
|
cat > /bin/menu-dw-analogo <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 20 50 11 \
|
|
1 " Editar Direwolf Analogo " \
|
|
2 " Iniciar APRS " \
|
|
3 " Detener APRS " \
|
|
4 " Menu Principal " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo nano /opt/direwolf/dw.conf;;
|
|
2)
|
|
sudo systemctl restart direwolf.service && sudo systemctl enable direwolf.service;;
|
|
3)
|
|
sudo systemctl stop direwolf.service && sudo systemctl disable direwolf.service;;
|
|
4)
|
|
break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
######menu-dw-rtl
|
|
cat > /bin/menu-dw-rtl <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 20 50 11 \
|
|
1 " Editar Direwolf RTL " \
|
|
2 " Editar RTL-SDR " \
|
|
3 " Iniciar APRS RX-IGate " \
|
|
4 " Detener APRS RX-IGate " \
|
|
5 " Menu Principal " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo nano /opt/direwolf/sdr.conf ;;
|
|
2)
|
|
sudo nano /opt/direwolf/rtl.sh ;;
|
|
3)
|
|
sudo systemctl restart direwolf-rtl.service && sudo systemctl enable direwolf-rtl.service;;
|
|
4)
|
|
sudo systemctl stop direwolf-rtl.service && sudo systemctl disable direwolf-rtl.service;;
|
|
5)
|
|
break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
|
|
#####
|
|
cat > /opt/direwolf/sdr.conf <<- "EOF"
|
|
#############################################################
|
|
# #
|
|
# Configuration file for Dire Wolf #
|
|
# #
|
|
# Linux version setting by hp3icc #
|
|
# configuration for SDR read-only IGate. #
|
|
#############################################################
|
|
ADEVICE null null
|
|
CHANNEL 0
|
|
MYCALL HP3ICC-10
|
|
PBEACON sendto=IG delay=0:40 every=30 symbol="/r" lat=08^30.01N long=080^20.83W comment="APRS RX-IGATE / Raspbian Proyect by hp3icc"
|
|
# First you need to specify the name of a Tier 2 server.
|
|
# The current preferred way is to use one of these regional rotate addresses:
|
|
# noam.aprs2.net - for North America
|
|
# soam.aprs2.net - for South America
|
|
# euro.aprs2.net - for Europe and Africa
|
|
# asia.aprs2.net - for Asia
|
|
# aunz.aprs2.net - for Oceania
|
|
IGSERVER igates.aprs.fi:14580
|
|
#noam.aprs2.net
|
|
# You also need to specify your login name and passcode.
|
|
# Contact the author if you can't figure out how to generate the passcode.
|
|
IGLOGIN HP3ICC-10 12345
|
|
# That's all you need for a receive only IGate which relays
|
|
# messages from the local radio channel to the global servers.
|
|
AGWPORT 9000
|
|
KISSPORT 9001
|
|
EOF
|
|
###
|
|
######menu-ysf2dmr
|
|
cat > /bin/menu-ysf2dmr <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 20 50 11 \
|
|
1 " Editar YSF2DMR " \
|
|
2 " Iniciar YSF2DMR " \
|
|
3 " Detener YSF2DMR " \
|
|
4 " Menu Principal " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo nano /opt/YSF2DMR/YSF2DMR.ini;;
|
|
2)
|
|
sudo sh /opt/YSF2DMR/DMRIDUpdate.sh && sudo systemctl enable dmrid-ysf2dmr.service;;
|
|
3)
|
|
sudo systemctl stop ysf2dmr.service && sudo systemctl stop dmrid-ysf2dmr.service && sudo systemctl disable dmrid-ysf2dmr.service;;
|
|
4)
|
|
break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
########ionosphere
|
|
mkdir /opt/ionsphere
|
|
cd /opt/ionsphere
|
|
wget https://github.com/cceremuga/ionosphere/releases/download/v1.0.0-beta1/ionosphere-raspberry-pi.tar.gz
|
|
tar vzxf ionosphere-raspberry-pi.tar.gz
|
|
|
|
cd /opt/ionsphere/ionosphere-raspberry-pi
|
|
|
|
cat > /opt/ionsphere/ionosphere-raspberry-pi/ionos.sh <<- "EOF"
|
|
#!/bin/sh
|
|
PATH=/bin:/usr/bin:/usr/local/bin
|
|
unset LANG
|
|
/opt/ionsphere/ionosphere-raspberry-pi/ionosphere
|
|
EOF
|
|
|
|
chmod +x /opt/ionsphere/ionosphere-raspberry-pi/ionosphere
|
|
chmod +x /opt/ionsphere/ionosphere-raspberry-pi/ionos.sh
|
|
chmod +777 /opt/ionsphere/ionosphere-raspberry-pi/ionos.sh
|
|
###nano /opt/ionsphere/ionosphere-raspberry-pi/config/config.yml
|
|
|
|
#####menu-ionos
|
|
cat > /bin/menu-ionos <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu "Suba o Baje con las flechas del teclado y seleccione el numero de opcion" 20 50 11 \
|
|
1 " Editar Ionosphere APRS " \
|
|
2 " Iniciar APRS " \
|
|
3 " Detener APRS " \
|
|
4 " Menu Principal " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo nano /opt/ionsphere/ionosphere-raspberry-pi/config/config.yml ;;
|
|
2)
|
|
systemctl enable ionos.service && sudo systemctl restart ionos.service ;;
|
|
3)
|
|
sudo systemctl stop ionos.service && sudo systemctl disable ionos.service ;;
|
|
4)
|
|
break;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
################################
|
|
cat > /lib/systemd/system/ionos.service <<- "EOF"
|
|
[Unit]
|
|
Description=Ionphere-RTL Service
|
|
Wants=network-online.target
|
|
After=syslog.target network-online.target
|
|
[Service]
|
|
User=root
|
|
Type=simple
|
|
Restart=always
|
|
RestartSec=3
|
|
StandardOutput=null
|
|
WorkingDirectory=/opt/ionsphere/ionosphere-raspberry-pi
|
|
#ExecStartPre=/bin/sleep 30
|
|
ExecStart=sh /opt/ionsphere/ionosphere-raspberry-pi/ionos.sh
|
|
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
|
|
EOF
|
|
##########################################
|
|
###################
|
|
cat > /opt/direwolf/dw.conf <<- "EOF"
|
|
#############################################################
|
|
# #
|
|
# Configuration file for Dire Wolf #
|
|
# #
|
|
# Linux version setting by hp3icc #
|
|
# #
|
|
#############################################################
|
|
#############################################################
|
|
# #
|
|
# FIRST AUDIO DEVICE PROPERTIES #
|
|
# (Channel 0 + 1 if in stereo) #
|
|
# #
|
|
#############################################################
|
|
ADEVICE plughw:1,0
|
|
#ADEVICE null null
|
|
# ADEVICE - plughw:1,0
|
|
# ADEVICE UDP:7355 default
|
|
# Number of audio channels for this souncard: 1 or 2.
|
|
#
|
|
ACHANNELS 1
|
|
#############################################################
|
|
# #
|
|
# CHANNEL 0 PROPERTIES #
|
|
# #
|
|
#############################################################
|
|
CHANNEL 0
|
|
MYCALL HP3ICC-10
|
|
MODEM 1200
|
|
#MODEM 1200 1200:2200
|
|
#MODEM 300 1600:1800
|
|
#MODEM 9600 0:0
|
|
#
|
|
#MODEM 1200 E+ /3
|
|
#
|
|
#
|
|
# If not using a VOX circuit, the transmitter Push to Talk (PTT)
|
|
# DON'T connect it directly!
|
|
#
|
|
# For the PTT command, specify the device and either RTS or DTR.
|
|
# RTS or DTR may be preceded by "-" to invert the signal.
|
|
# Both can be used for interfaces that want them driven with opposite polarity.
|
|
#
|
|
# COM1 can be used instead of /dev/ttyS0, COM2 for /dev/ttyS1, and so on.
|
|
#
|
|
#PTT CM108
|
|
#PTT COM1 RTS
|
|
#PTT COM1 RTS -DTR
|
|
#PTT /dev/ttyUSB0 RTS
|
|
#PTT /dev/ttyUSB0 DTR
|
|
#PTT GPIO 25
|
|
#PTT GPIO 26
|
|
# The Data Carrier Detect (DCD) signal can be sent to the same places
|
|
# as the PTT signal. This could be used to light up an LED like a normal TNC.
|
|
#DCD COM1 -DTR
|
|
#DCD GPIO 24
|
|
#pin18 (GPIO 24) - (cathode) LED (anode) - 270ohm resistor - 3.3v
|
|
#DCD GPIO 13
|
|
#############################################################
|
|
# #
|
|
# VIRTUAL TNC SERVER PROPERTIES #
|
|
# #
|
|
#############################################################
|
|
#
|
|
# Dire Wolf acts as a virtual TNC and can communicate with
|
|
# client applications by different protocols:
|
|
#
|
|
# - the "AGW TCPIP Socket Interface" - default port 8000
|
|
# - KISS protocol over TCP socket - default port 8001
|
|
# - KISS TNC via pseudo terminal (-p command line option)
|
|
#
|
|
#Setting to 0 disables UI-proto only AGW and TCP-KISS ports
|
|
AGWPORT 8000
|
|
KISSPORT 8001
|
|
#KISSPORT 0
|
|
#
|
|
# It is sometimes possible to recover frames with a bad FCS.
|
|
# This applies to all channels.
|
|
# 0 [NONE] - Don't try to repair.
|
|
# 1 [SINGLE] - Attempt to fix single bit error. (default)
|
|
# 2 [DOUBLE] - Also attempt to fix two adjacent bits.
|
|
# ... see User Guide for more values and in-depth discussion.
|
|
#
|
|
#FIX_BITS 0
|
|
#Enable fixing of 1 bits and use generic AX25 heuristics data (not APRS heuristi$
|
|
#FIX_BITS 1 AX25
|
|
#
|
|
#############################################################
|
|
# #
|
|
# BEACONING PROPERTIES #
|
|
# #
|
|
#############################################################
|
|
#GPSD
|
|
#TBEACON every=0:30 symbol="/v" comment="APRS TRACKER / Raspbian Proyect by hp3icc" via=WIDE2-2
|
|
#PBEACON delay=0:01 every=30 symbol="/r" lat=08^30.01N long=080^20.83W comment="APRS DIGI-IGATE / Raspbian Proyect by hp3icc" via=WIDE2-2
|
|
#PBEACON sendto=IG delay=0:40 every=30 symbol="/r" lat=08^30.01N long=080^20.83W comment="APRS DIGI-IGATE / Raspbian Proyect by hp3icc"
|
|
#############################################################
|
|
# #
|
|
# DIGIPEATER PROPERTIES #
|
|
# #
|
|
#############################################################
|
|
DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE
|
|
FILTER 0 0 t/poimqstunw
|
|
#############################################################
|
|
# #
|
|
# INTERNET GATEWAY #
|
|
# #
|
|
#############################################################
|
|
# First you need to specify the name of a Tier 2 server.
|
|
# The current preferred way is to use one of these regional rotate addresses:
|
|
# noam.aprs2.net - for North America
|
|
# soam.aprs2.net - for South America
|
|
# euro.aprs2.net - for Europe and Africa
|
|
# brazil.d2g.com
|
|
#
|
|
#IGSERVER igates.aprs.fi:14580
|
|
#IGSERVER noam.aprs2.net:14580
|
|
#IGSERVER cx2sa.net:14580
|
|
|
|
#IGLOGIN HP3ICC-10 12345
|
|
IGTXVIA 0 WIDE2-2
|
|
#
|
|
#
|
|
#IGFILTER f/HP3ICC-5/600
|
|
#IGFILTER p/HP
|
|
#m/600
|
|
#
|
|
FILTER IG 0 t/poimqstunw
|
|
IGTXLIMIT 6 10
|
|
#
|
|
EOF
|
|
########################
|
|
cat > /lib/systemd/system/dmrid-mmdvm.service <<- "EOF"
|
|
[Unit]
|
|
Description=DMRIDupdate MMDVMHost
|
|
Wants=network-online.target
|
|
After=syslog.target network-online.target
|
|
|
|
[Service]
|
|
User=root
|
|
#ExecStartPre=/bin/sleep 1800
|
|
ExecStart=/opt/MMDVMHost/DMRIDUpdate.sh
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
EOF
|
|
###################
|
|
cat > /lib/systemd/system/mmdvmh.service <<- "EOF"
|
|
[Unit]
|
|
Description=MMDVM Host Service
|
|
After=syslog.target network.target
|
|
|
|
[Service]
|
|
User=root
|
|
WorkingDirectory=/opt/MMDVMHost
|
|
#ExecStartPre=/bin/sleep 10
|
|
ExecStart=/opt/MMDVMHost/MMDVMHost /opt/MMDVMHost/MMDVM.ini
|
|
#ExecStart=/usr/bin/screen -S MMDVMHost -D -m /home/MMDVMHost/MMDVMHost /home/M$
|
|
ExecStop=/usr/bin/screen -S MMDVMHost -X quit
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
EOF
|
|
################
|
|
cat > /lib/systemd/system/direwolf.service <<- "EOF"
|
|
[Unit]
|
|
Description=DireWolf is a software "soundcard" modem/TNC and APRS decoder
|
|
Documentation=man:direwolf
|
|
AssertPathExists=/opt/direwolf/dw.conf
|
|
|
|
[Unit]
|
|
Description=Direwolf Service
|
|
#Wants=network-online.target
|
|
After=sound.target syslog.target
|
|
#network-online.target
|
|
|
|
[Service]
|
|
User=root
|
|
ExecStart=sudo direwolf -c /opt/direwolf/dw.conf
|
|
#ExecStart=/usr/bin/direwolf -t 0 -c /opt/direwolf/dw.conf
|
|
StandardOutput=syslog
|
|
StandardError=syslog
|
|
SyslogIdentifier=direwolf
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
EOF
|
|
#####
|
|
cat > /lib/systemd/system/dmrid-ysf2dmr.service <<- "EOF"
|
|
[Unit]
|
|
Description=DMRIDupdate YSF2DMR
|
|
Wants=network-online.target
|
|
After=syslog.target network-online.target
|
|
|
|
[Service]
|
|
User=root
|
|
#ExecStartPre=/bin/sleep 1800
|
|
ExecStart=/opt/YSF2DMR/DMRIDUpdate.sh
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
EOF
|
|
#########
|
|
cat > /lib/systemd/system/direwolf-rtl.service <<- "EOF"
|
|
[Unit]
|
|
Description=Direwolf-RTL Service
|
|
Wants=network-online.target
|
|
After=syslog.target network-online.target
|
|
|
|
[Service]
|
|
User=root
|
|
#ExecStartPre=/bin/sleep 1800
|
|
ExecStart=/opt/direwolf/rtl.sh
|
|
# | direwolf -c /home/pi/direwolf/sdr.conf
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
#ExecStart= /usr/local/bin/rtl_fm -M fm -f 144.39M -p 0 -s 24000 -g 42 - | /usr/local/bin/direwolf-rtl -c /home/pi/direwolf/sdr.conf -r 24000 -D 1 -B 1200 -
|
|
EOF
|
|
#############
|
|
|
|
cat > /lib/systemd/system/multimon-rtl.service <<- "EOF"
|
|
[Unit]
|
|
Description=Direwolf-RTL Service
|
|
Wants=network-online.target
|
|
After=syslog.target network-online.target
|
|
|
|
[Service]
|
|
User=root
|
|
#ExecStartPre=/bin/sleep 1800
|
|
ExecStart=sudo pymultimonaprs
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
#####################
|
|
cat > /lib/systemd/system/ysf2dmr.service <<- "EOF"
|
|
[Unit]
|
|
Description=YSF2DMR Service
|
|
After=syslog.target network.target
|
|
|
|
[Service]
|
|
User=root
|
|
WorkingDirectory=/opt/YSF2DMR
|
|
ExecStartPre=/bin/sleep 30
|
|
ExecStart=/opt/YSF2DMR/YSF2DMR /opt/YSF2DMR/YSF2DMR.ini
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
EOF
|
|
############
|
|
|
|
###############
|
|
cat > /opt/MMDVMHost/MMDVM.ini <<- "EOF"
|
|
[General]
|
|
Callsign=HP3ICC
|
|
Id=714000000
|
|
Timeout=180
|
|
Duplex=0
|
|
ModeHang=3
|
|
#RFModeHang=10
|
|
#NetModeHang=3
|
|
Display=None
|
|
#Display=OLED
|
|
Daemon=0
|
|
|
|
[Info]
|
|
RXFrequency=438800000
|
|
TXFrequency=438800000
|
|
Power=1
|
|
# The following lines are only needed if a direct connection to a DMR master is being used
|
|
Latitude=0.0
|
|
Longitude=0.0
|
|
Height=0
|
|
Location=Panama
|
|
Description=Multi-Mode-MMDVM
|
|
URL=www.google.co.uk
|
|
|
|
[Log]
|
|
# Logging levels, 0=No logging
|
|
DisplayLevel=1
|
|
FileLevel=1
|
|
FilePath=/var/log/mmdvm
|
|
FileRoot=MMDVMHost
|
|
FileRotate=0
|
|
|
|
[CW Id]
|
|
Enable=0
|
|
Time=10
|
|
# Callsign=
|
|
|
|
[DMR Id Lookup]
|
|
File=/opt/MMDVMHost/DMRIds.dat
|
|
Time=24
|
|
|
|
[NXDN Id Lookup]
|
|
File=NXDN.csv
|
|
Time=24
|
|
|
|
[Modem]
|
|
# Port=/dev/ttyACM0
|
|
Port=/dev/ttyAMA0
|
|
#Port=\\.\COM4
|
|
#Protocol=uart
|
|
# Address=0x22
|
|
TXInvert=1
|
|
RXInvert=0
|
|
PTTInvert=0
|
|
TXDelay=100
|
|
RXOffset=0
|
|
TXOffset=0
|
|
DMRDelay=0
|
|
RXLevel=50
|
|
TXLevel=50
|
|
RXDCOffset=0
|
|
TXDCOffset=0
|
|
RFLevel=50
|
|
# CWIdTXLevel=50
|
|
# D-StarTXLevel=50
|
|
DMRTXLevel=50
|
|
YSFTXLevel=50
|
|
# P25TXLevel=50
|
|
# NXDNTXLevel=50
|
|
# POCSAGTXLevel=50
|
|
FMTXLevel=50
|
|
RSSIMappingFile=RSSI.dat
|
|
UseCOSAsLockout=0
|
|
Trace=0
|
|
Debug=0
|
|
|
|
[Transparent Data]
|
|
Enable=0
|
|
RemoteAddress=127.0.0.1
|
|
RemotePort=40094
|
|
LocalPort=40095
|
|
# SendFrameType=0
|
|
|
|
[UMP]
|
|
Enable=0
|
|
# Port=\\.\COM4
|
|
Port=/dev/ttyACM1
|
|
|
|
[D-Star]
|
|
Enable=0
|
|
Module=C
|
|
SelfOnly=0
|
|
AckReply=1
|
|
AckTime=750
|
|
AckMessage=0
|
|
ErrorReply=1
|
|
RemoteGateway=0
|
|
# ModeHang=10
|
|
WhiteList=
|
|
|
|
[DMR]
|
|
Enable=1
|
|
Beacons=0
|
|
BeaconInterval=60
|
|
BeaconDuration=3
|
|
ColorCode=1
|
|
SelfOnly=0
|
|
EmbeddedLCOnly=1
|
|
DumpTAData=0
|
|
# Prefixes=234,235
|
|
# Slot1TGWhiteList=
|
|
# Slot2TGWhiteList=
|
|
CallHang=3
|
|
TXHang=4
|
|
# ModeHang=10
|
|
# OVCM Values, 0=off, 1=rx_on, 2=tx_on, 3=both_on, 4=force off
|
|
# OVCM=0
|
|
|
|
[System Fusion]
|
|
Enable=1
|
|
LowDeviation=0
|
|
SelfOnly=0
|
|
TXHang=4
|
|
RemoteGateway=1
|
|
# ModeHang=10
|
|
|
|
[P25]
|
|
Enable=0
|
|
NAC=293
|
|
SelfOnly=0
|
|
OverrideUIDCheck=0
|
|
RemoteGateway=0
|
|
TXHang=5
|
|
# ModeHang=10
|
|
|
|
[NXDN]
|
|
Enable=0
|
|
RAN=1
|
|
SelfOnly=0
|
|
RemoteGateway=0
|
|
TXHang=5
|
|
# ModeHang=10
|
|
|
|
[POCSAG]
|
|
Enable=0
|
|
Frequency=439987500
|
|
|
|
[FM]
|
|
Enable=0
|
|
# Callsign=HP3ICC
|
|
CallsignSpeed=20
|
|
CallsignFrequency=1000
|
|
CallsignTime=10
|
|
CallsignHoldoff=0
|
|
CallsignHighLevel=50
|
|
CallsignLowLevel=20
|
|
CallsignAtStart=1
|
|
CallsignAtEnd=1
|
|
CallsignAtLatch=0
|
|
RFAck=K
|
|
ExtAck=N
|
|
AckSpeed=20
|
|
AckFrequency=1750
|
|
AckMinTime=4
|
|
AckDelay=1000
|
|
AckLevel=50
|
|
# Timeout=180
|
|
TimeoutLevel=80
|
|
CTCSSFrequency=88.4
|
|
CTCSSThreshold=30
|
|
# CTCSSHighThreshold=30
|
|
# CTCSSLowThreshold=20
|
|
CTCSSLevel=20
|
|
KerchunkTime=0
|
|
HangTime=7
|
|
AccessMode=1
|
|
COSInvert=0
|
|
RFAudioBoost=1
|
|
MaxDevLevel=90
|
|
ExtAudioBoost=1
|
|
|
|
[D-Star Network]
|
|
Enable=0
|
|
GatewayAddress=127.0.0.1
|
|
GatewayPort=20010
|
|
LocalPort=20011
|
|
# ModeHang=3
|
|
Debug=0
|
|
|
|
[DMR Network]
|
|
Enable=1
|
|
# Type may be either 'Direct' or 'Gateway'. When Direct you must provide the Master's
|
|
# address as well as the Password, and for DMR+, Options also.
|
|
Type=Direct
|
|
Address=3021.master.brandmeister.network
|
|
Port=62031
|
|
#Local=62032
|
|
Password=*********
|
|
Jitter=360
|
|
Slot1=1
|
|
Slot2=1
|
|
# Options=
|
|
# ModeHang=3
|
|
Debug=0
|
|
|
|
[System Fusion Network]
|
|
Enable=1
|
|
LocalAddress=127.0.0.1
|
|
#LocalPort=3200
|
|
GatewayAddress=europelink.pa7lim.nl
|
|
GatewayPort=42000
|
|
# ModeHang=3
|
|
Debug=0
|
|
|
|
[P25 Network]
|
|
Enable=0
|
|
GatewayAddress=127.0.0.1
|
|
GatewayPort=42020
|
|
LocalPort=32010
|
|
# ModeHang=3
|
|
Debug=0
|
|
|
|
[NXDN Network]
|
|
Enable=0
|
|
Protocol=Icom
|
|
LocalAddress=127.0.0.1
|
|
LocalPort=14021
|
|
GatewayAddress=127.0.0.1
|
|
GatewayPort=14020
|
|
# ModeHang=3
|
|
Debug=0
|
|
|
|
[POCSAG Network]
|
|
Enable=0
|
|
LocalAddress=127.0.0.1
|
|
LocalPort=3800
|
|
GatewayAddress=127.0.0.1
|
|
GatewayPort=4800
|
|
# ModeHang=3
|
|
Debug=0
|
|
|
|
[TFT Serial]
|
|
# Port=modem
|
|
Port=/dev/ttyAMA0
|
|
Brightness=50
|
|
|
|
[HD44780]
|
|
Rows=2
|
|
Columns=16
|
|
# For basic HD44780 displays (4-bit connection)
|
|
# rs, strb, d0, d1, d2, d3
|
|
Pins=11,10,0,1,2,3
|
|
# Device address for I2C
|
|
I2CAddress=0x20
|
|
# PWM backlight
|
|
PWM=0
|
|
PWMPin=21
|
|
PWMBright=100
|
|
PWMDim=16
|
|
DisplayClock=1
|
|
UTC=0
|
|
|
|
[Nextion]
|
|
# Port=modem
|
|
Port=/dev/ttyAMA0
|
|
Brightness=50
|
|
DisplayClock=1
|
|
UTC=0
|
|
#Screen Layout: 0=G4KLX 2=ON7LDS
|
|
ScreenLayout=2
|
|
IdleBrightness=20
|
|
|
|
[OLED]
|
|
Type=3
|
|
Brightness=1
|
|
Invert=0
|
|
Scroll=0
|
|
Rotate=1
|
|
Cast=0
|
|
LogoScreensaver=0
|
|
|
|
[LCDproc]
|
|
Address=localhost
|
|
Port=13666
|
|
#LocalPort=13667
|
|
DimOnIdle=0
|
|
DisplayClock=1
|
|
UTC=0
|
|
|
|
[Lock File]
|
|
Enable=0
|
|
File=/tmp/MMDVM_Active.lck
|
|
|
|
[Remote Control]
|
|
Enable=0
|
|
Address=127.0.0.1
|
|
Port=7642
|
|
|
|
|
|
EOF
|
|
########
|
|
cat > /opt/YSF2DMR/YSF2DMR.ini <<- "EOF"
|
|
[Info]
|
|
RXFrequency=438800000
|
|
TXFrequency=438800000
|
|
Power=1
|
|
Latitude=0.0
|
|
Longitude=0.0
|
|
Height=0
|
|
Location=Panama
|
|
Description=Multi-Mode
|
|
URL=www.google.co.uk
|
|
|
|
[YSF Network]
|
|
Callsign=HP3ICC
|
|
Suffix=ND
|
|
#Suffix=RPT
|
|
DstAddress=127.0.0.1
|
|
DstPort=42000
|
|
LocalAddress=127.0.0.1
|
|
#LocalPort=42013
|
|
EnableWiresX=0
|
|
RemoteGateway=0
|
|
HangTime=1000
|
|
WiresXMakeUpper=0
|
|
# RadioID=*****
|
|
# FICHCallsign=2
|
|
# FICHCallMode=0
|
|
# FICHBlockTotal=0
|
|
# FICHFrameTotal=6
|
|
# FICHMessageRoute=0
|
|
# FICHVOIP=0
|
|
# FICHDataType=2
|
|
# FICHSQLType=0
|
|
# FICHSQLCode=0
|
|
DT1=1,34,97,95,43,3,17,0,0,0
|
|
DT2=0,0,0,0,108,32,28,32,3,8
|
|
Daemon=0
|
|
|
|
[DMR Network]
|
|
Id=714000000
|
|
#XLXFile=XLXHosts.txt
|
|
#XLXReflector=950
|
|
#XLXModule=D
|
|
StartupDstId=714
|
|
# For TG call: StartupPC=0
|
|
StartupPC=0
|
|
Address=3021.master.brandmeister.network
|
|
Port=62031
|
|
Jitter=500
|
|
EnableUnlink=0
|
|
TGUnlink=4000
|
|
PCUnlink=0
|
|
# Local=62032
|
|
Password=****************
|
|
# Options=
|
|
TGListFile=TGList-DMR.txt
|
|
Debug=0
|
|
|
|
[DMR Id Lookup]
|
|
File=/opt/YSF2DMR/DMRIds.dat
|
|
Time=24
|
|
DropUnknown=0
|
|
|
|
[Log]
|
|
# Logging levels, 0=No logging
|
|
DisplayLevel=1
|
|
FileLevel=1
|
|
FilePath=/var/log/ysf2dmr/
|
|
FileRoot=YSF2DMR
|
|
|
|
[aprs.fi]
|
|
Enable=0
|
|
AprsCallsign=HP3ICC
|
|
Server=noam.aprs2.net
|
|
#Server=euro.aprs2.net
|
|
Port=14580
|
|
Password=12345
|
|
APIKey=APIKey
|
|
Refresh=240
|
|
Description=APRS Description
|
|
|
|
|
|
EOF
|
|
###################
|
|
|
|
cat > /etc/pymultimonaprs.json <<- "EOF"
|
|
{
|
|
"callsign": "HP3ICC-10",
|
|
"passcode": "12345",
|
|
"gateway": ["igates.aprs.fi:14580","noam.aprs2.net:14580"],
|
|
"preferred_protocol": "any",
|
|
"append_callsign": true,
|
|
"source": "rtl",
|
|
"rtl": {
|
|
"freq": 144.390,
|
|
"ppm": 0,
|
|
"gain": 24,
|
|
"offset_tuning": false,
|
|
"device_index": 0
|
|
},
|
|
"alsa": {
|
|
"device": "default"
|
|
},
|
|
"beacon": {
|
|
"lat": 8.5211,
|
|
"lng": -80.3599,
|
|
"table": "/",
|
|
"symbol": "r",
|
|
"comment": "APRS RX-IGATE / Raspbian Proyect by hp3icc",
|
|
"status": {
|
|
"text": "",
|
|
"file": false
|
|
},
|
|
"weather": false,
|
|
"send_every": 300,
|
|
"ambiguity": 0
|
|
}
|
|
}
|
|
EOF
|
|
#######
|
|
cat > /opt/ionsphere/ionosphere-raspberry-pi/config/config.yml <<- "EOF"
|
|
rtl:
|
|
path: "rtl_fm"
|
|
frequency: "144.390M"
|
|
gain: "49.6"
|
|
ppm-error: "0"
|
|
squelch-level: "0"
|
|
sample-rate: "22050"
|
|
additional-flags: ""
|
|
multimon:
|
|
path: "multimon-ng"
|
|
additional-flags: ""
|
|
beacon:
|
|
enabled: false
|
|
call-sign: ""
|
|
interval: 30m
|
|
comment: ""
|
|
handlers:
|
|
- id: "4967ade5-7a97-416f-86bf-6e2ae8a5e581"
|
|
name: "stdout"
|
|
- id: "b67ac5d5-3612-4618-88a9-a63d36a1777c"
|
|
name: "aprsis"
|
|
options:
|
|
enabled: true
|
|
server: "igates.aprs.fi:14580"
|
|
call-sign: "HP3ICC-10"
|
|
passcode: "12345"
|
|
filter: ""
|
|
EOF
|
|
#############
|
|
cat > /opt/direwolf/rtl.sh <<- "EOF"
|
|
#!/bin/sh
|
|
PATH=/bin:/usr/bin:/usr/local/bin
|
|
unset LANG
|
|
rtl_fm -M fm -f 144.39M -p 0 -s 24000 -g 42 - | /usr/local/bin/direwolf -c /opt/direwolf/sdr.conf -r 24000 -D 1 -B 1200 -
|
|
EOF
|
|
sudo chmod +x /opt/direwolf/rtl.sh
|
|
###############################################
|
|
##############################
|
|
#dvswitch
|
|
|
|
cd /opt
|
|
|
|
wget http://dvswitch.org/buster
|
|
|
|
chmod +x buster
|
|
|
|
./buster
|
|
|
|
apt-get update -y
|
|
|
|
apt-get install dvswitch-server -y
|
|
|
|
cd /opt/YSFGateway/
|
|
sudo sed -i 's/42000/42500/' YSFGateway.ini
|
|
#/opt/YSFGateway/YSFGateway.ini
|
|
systemctl restart ysfgateway.service
|
|
|
|
####
|
|
cat > /opt/MMDVM_Bridge/MMDVM_Bridge.ini <<- "EOF"
|
|
[General]
|
|
Callsign=N0CALL
|
|
Id=1234567
|
|
Timeout=180
|
|
Duplex=0
|
|
|
|
[Info]
|
|
RXFrequency=147000000
|
|
TXFrequency=147000000
|
|
Power=1
|
|
Latitude=8.5211
|
|
Longitude=-80.3598
|
|
Height=0
|
|
Location=Panama
|
|
Description=MMDVM_Bridge
|
|
URL=https://groups.io/g/DVSwitch
|
|
|
|
[Log]
|
|
# Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
|
|
DisplayLevel=1
|
|
FileLevel=2
|
|
FilePath=/var/log/mmdvm
|
|
FileRoot=MMDVM_Bridge
|
|
|
|
[DMR Id Lookup]
|
|
File=/var/lib/mmdvm/DMRIds.dat
|
|
Time=24
|
|
|
|
[NXDN Id Lookup]
|
|
File=/var/lib/mmdvm/NXDN.csv
|
|
Time=24
|
|
|
|
[Modem]
|
|
Port=/dev/null
|
|
RSSIMappingFile=/dev/null
|
|
Trace=0
|
|
Debug=0
|
|
|
|
[D-Star]
|
|
Enable=0
|
|
Module=B
|
|
|
|
[DMR]
|
|
Enable=0
|
|
ColorCode=1
|
|
EmbeddedLCOnly=1
|
|
DumpTAData=0
|
|
|
|
[System Fusion]
|
|
Enable=0
|
|
|
|
[P25]
|
|
Enable=0
|
|
NAC=293
|
|
|
|
[NXDN]
|
|
Enable=0
|
|
RAN=1
|
|
Id=12345
|
|
|
|
[D-Star Network]
|
|
Enable=0
|
|
GatewayAddress=127.0.0.1
|
|
GatewayPort=20010
|
|
LocalPort=20011
|
|
Debug=0
|
|
|
|
[DMR Network]
|
|
Enable=0
|
|
Address=hblink.dvswitch.org
|
|
Port=62031
|
|
Jitter=360
|
|
Local=62032
|
|
Password=passw0rd
|
|
# for DMR+ see https://github.com/DVSwitch/MMDVM_Bridge/blob/master/DOC/DMRplus_startup_options.md
|
|
# for XLX the syntax is: Options=XLX:4009
|
|
# Options=
|
|
Slot1=0
|
|
Slot2=1
|
|
Debug=0
|
|
|
|
[System Fusion Network]
|
|
Enable=0
|
|
LocalAddress=0
|
|
LocalPort=3200
|
|
GatewayAddress=127.0.0.1
|
|
GatewayPort=4200
|
|
Debug=0
|
|
|
|
[P25 Network]
|
|
Enable=0
|
|
GatewayAddress=127.0.0.1
|
|
GatewayPort=42020
|
|
LocalPort=32010
|
|
Debug=0
|
|
|
|
[NXDN Network]
|
|
Enable=0
|
|
#LocalAddress=127.0.0.1
|
|
Debug=0
|
|
LocalPort=14021
|
|
GatewayAddress=127.0.0.1
|
|
GatewayPort=14020
|
|
EOF
|
|
####
|
|
##################
|
|
##DMRI DVS service
|
|
cat > /lib/systemd/system/dmrid-dvs.service <<- "EOF"
|
|
[Unit]
|
|
Description=DMRIDupdate DVS
|
|
Wants=network-online.target
|
|
After=syslog.target network-online.target
|
|
|
|
[Service]
|
|
User=root
|
|
#ExecStartPre=/bin/sleep 1800
|
|
ExecStart=/opt/MMDVM_Bridge/DMRIDUpdate.sh
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
##########
|
|
#web
|
|
|
|
sudo groupadd www-data
|
|
|
|
sudo usermod -G www-data -a pi
|
|
|
|
sudo chown -R www-data:www-data /var/www/html
|
|
|
|
sudo chmod -R 775 /var/www/html
|
|
#############################
|
|
|
|
|
|
mkdir /var/www/web-dvs
|
|
chmod +777 /var/www/web-dvs
|
|
chmod +777 /var/www/html/*
|
|
sudo cp -r /var/www/html/* /var/www/web-dvs/
|
|
sudo rm -r /var/www/html/*
|
|
##
|
|
|
|
cat > /opt/DMRIDUpdate.sh <<- "EOF"
|
|
#! /bin/bash
|
|
###############################################################################
|
|
#
|
|
# CONFIGURATION
|
|
#
|
|
# Full path to DMR ID file, without final slash
|
|
DMRIDPATH=/opt
|
|
DMRIDFILE=${DMRIDPATH}/DMRIds.dat
|
|
# DMR IDs now served by RadioID.net
|
|
#DATABASEURL='https://ham-digital.org/status/users.csv'
|
|
DATABASEURL='https://www.radioid.net/static/user.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 ysf2dmr
|
|
eval ${RESTARTCOMMAND}
|
|
EOF
|
|
#######
|
|
|
|
cp /opt/DMRIDUpdate.sh /opt/MMDVMHost/
|
|
cd /opt/MMDVMHost/
|
|
sudo sed -i 's/\/opt/\/opt\/MMDVMHost/' DMRIDUpdate.sh
|
|
sudo sed -i 's/systemctl restart mmdvmhost.service/systemctl restart mmdvmh.service/' DMRIDUpdate.sh
|
|
|
|
|
|
cp /opt/DMRIDUpdate.sh /opt/YSF2DMR/
|
|
cd /opt/YSF2DMR/
|
|
sudo sed -i 's/\/opt/\/opt\/YSF2DMR/' DMRIDUpdate.sh
|
|
sudo sed -i 's/systemctl restart mmdvmhost.service/systemctl restart ysf2dmr.service/' DMRIDUpdate.sh
|
|
|
|
|
|
|
|
cp /opt/DMRIDUpdate.sh /opt/MMDVM_Bridge/
|
|
cd /opt/MMDVM_Bridge/
|
|
sudo sed -i 's/\/opt/\/opt\/MMDVM_Bridge/' DMRIDUpdate.sh
|
|
sudo sed -i 's/systemctl restart mmdvmhost.service/systemctl restart mmdvm_bridge.service/' DMRIDUpdate.sh
|
|
|
|
rm /opt/DMRIDUpdate.sh
|
|
|
|
###########################
|
|
sudo systemctl stop mmdvm_bridge.service
|
|
sudo systemctl stop dmrid-dvs.service
|
|
sudo systemctl stop analog_bridge.service
|
|
sudo systemctl disable analog_bridge.service
|
|
sudo systemctl disable mmdvm_bridge.service
|
|
sudo systemctl disable dmrid-dvs.service
|
|
sudo systemctl disable lighttpd.service
|
|
sudo systemctl stop lighttpd.service
|
|
sudo rm -r /var/www/html/*
|
|
###########################
|
|
cat > /etc/modprobe.d/raspi-blacklist.conf <<- "EOF"
|
|
blacklist snd_bcm2835
|
|
# blacklist spi and i2c by default (many users don't need them)
|
|
#blacklist spi-bcm2708
|
|
#blacklist i2c-bcm2708
|
|
blacklist snd-soc-pcm512x
|
|
blacklist snd-soc-wm8804
|
|
# dont load default drivers for the RTL dongle
|
|
blacklist dvb_usb_rtl28xxu
|
|
blacklist rtl_2832
|
|
blacklist rtl_2830
|
|
EOF
|
|
########
|
|
|
|
|
|
################################
|
|
cd /usr/share/alsa/
|
|
sudo sed -i 's/defaults.ctl.card 0/defaults.ctl.card 1/' alsa.conf
|
|
sudo sed -i 's/defaults.pcm.card 0/defaults.pcm.card 1/' alsa.conf
|
|
###################################
|
|
echo finalizando instalacion
|
|
sudo chown -R mmdvm:mmdvm /opt/MMDVMHost/MMDVMHost
|
|
sudo chmod +777 /opt/*
|
|
sudo chmod +777 /opt/MMDVMHost-Websocketboard/*
|
|
sudo chmod +777 /opt/WSYSFDash/*
|
|
sudo chmod +777 /opt/direwolf/*
|
|
sudo chmod +777 /opt/direwolf/dw.conf
|
|
sudo chmod +777 /opt/direwolf/sdr.conf
|
|
sudo chmod +777 /opt/direwolf/src/*
|
|
sudo chmod +777 /opt/MMDVMHost/*
|
|
sudo chmod +777 /opt/MMDVMHost/MMDVM.ini
|
|
sudo chmod +777 /opt/YSF2DMR/*
|
|
sudo chmod +777 /opt/YSF2DMR/YSF2DMR.ini
|
|
sudo chmod +777 /opt/ionsphere/*
|
|
sudo chmod +777 /opt/ionsphere/ionosphere-raspberry-pi/config/config.yml
|
|
sudo chmod +777 /opt/pymultimonaprs/*
|
|
sudo chmod +777 /opt/multimon-ng/*
|
|
sudo chmod +777 /opt/kalibrate-rtl/*
|
|
sudo chmod +777 /opt/YSFClients/*
|
|
sudo chmod +777 /opt/MMDVM_CM/*
|
|
sudo chmod +777 /opt/MMDVM_Bridge/*
|
|
sudo chmod +777 /opt/MMDVM_Bridge/MMDVM_Bridge.ini
|
|
sudo chmod +777 /etc/pymultimonaprs.json
|
|
|
|
sudo chmod +x /usr/bin/python3
|
|
sudo chmod +x /opt/MMDVM_Bridge/DMRIDUpdate.sh
|
|
sudo chmod +x /opt/YSF2DMR/DMRIDUpdate.sh
|
|
sudo chmod +x /opt/MMDVMHost/DMRIDUpdate.sh
|
|
|
|
sudo chmod 755 /lib/systemd/system/YSFReflector.service
|
|
sudo chmod 755 /lib/systemd/system/monp.service
|
|
sudo chmod 755 /lib/systemd/system/dmrid-ysf2dmr.service
|
|
sudo chmod 755 /lib/systemd/system/dmrid-dvs.service
|
|
sudo chmod 755 /lib/systemd/system/dmrid-mmdvm.service
|
|
sudo chmod 755 /lib/systemd/system/mmdvmh.service
|
|
sudo chmod 755 /lib/systemd/system/direwolf.service
|
|
sudo chmod 755 /lib/systemd/system/direwolf-rtl.service
|
|
sudo chmod 755 /lib/systemd/system/multimon-rtl.service
|
|
sudo chmod 755 /lib/systemd/system/ionos.service
|
|
sudo chmod 755 /lib/systemd/system/ysf2dmr.service
|
|
sudo chmod 755 /lib/systemd/system/http.server-mmdvmh.service
|
|
sudo chmod 755 /lib/systemd/system/logtailer-mmdvmh.service
|
|
sudo chmod 755 /lib/systemd/system/http.server-ysf.service
|
|
sudo chmod 755 /lib/systemd/system/logtailer-ysf.service
|
|
sudo systemctl daemon-reload
|
|
|
|
sudo systemctl enable monp.service
|
|
###################
|
|
|
|
cp /bin/menu /bin/MENU
|
|
chmod +x /bin/MENU
|
|
chmod +x /bin/menu*
|
|
|
|
|
|
|
|
##########################
|
|
|
|
sudo timedatectl set-timezone America/Panama
|
|
|
|
#####
|
|
sudo cat > /boot/wpa_supplicant.conf <<- "EOF"
|
|
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
|
|
update_config=1
|
|
country=PA
|
|
##################################################################
|
|
# #
|
|
# Favor tomar como referencia, las dos redes wifi que aparecen #
|
|
# abajo, puede editar con los datos de su red wifi o agregar un #
|
|
# network nuevo, por cada red wifi nueva que quiera almacenar. #
|
|
# #
|
|
# Raspbian proyect by HP3ICC, 73. #
|
|
# #
|
|
##################################################################
|
|
network={
|
|
ssid="Coloque_aqui_nombre_de_red_wifi"
|
|
psk="Coloque_aqui_la_clave_wifi"
|
|
}
|
|
network={
|
|
ssid="WiFi-Net"
|
|
psk="Panama310"
|
|
}
|
|
EOF
|
|
#######
|
|
#
|
|
cd /tmp
|
|
|
|
sudo rm /usr/local/bin/direwolf
|
|
|
|
wget https://github.com/hp3icc/TE1Rev5b/raw/main/direwolf
|
|
|
|
sudo cp /tmp/direwolf /usr/local/bin/
|
|
|
|
sudo chmod +x /usr/local/bin/direwolf
|
|
#
|
|
sudo rm -r /opt/direwolf/build/*
|
|
cd /opt/direwolf/build
|
|
cmake ..
|
|
make -j4
|
|
sudo make install
|
|
#####
|
|
cat > /tmp/completado.sh <<- "EOF"
|
|
#!/bin/bash
|
|
while : ; do
|
|
choix=$(whiptail --title "Raspbian Proyect HP3ICC Esteban Mackay 73." --menu " Precione enter (return o intro) para finalizar la instalacion y reiniciar su equipo " 11 100 3 \
|
|
1 " Iniciar Reinicio de Raspberry " 3>&1 1>&2 2>&3)
|
|
exitstatus=$?
|
|
#on recupere ce choix
|
|
#exitstatus=$?
|
|
if [ $exitstatus = 0 ]; then
|
|
echo "Your chosen option:" $choix
|
|
else
|
|
echo "You chose cancel."; break;
|
|
fi
|
|
# case : action en fonction du choix
|
|
case $choix in
|
|
1)
|
|
sudo reboot
|
|
;;
|
|
esac
|
|
done
|
|
exit 0
|
|
EOF
|
|
sudo chmod +x /tmp/completado.sh
|
|
sh /tmp/completado.sh
|