feat: migrate bookworm binaries to filesystem-mirror structure

This commit is contained in:
N4IRS 2026-07-09 13:45:14 -04:00
commit 564fc27a47
15 changed files with 1661 additions and 0 deletions

1
etc/cron.daily/DVSM_Update Symbolic link
View file

@ -0,0 +1 @@
/usr/local/sbin/DVSM_Update.sh

View file

@ -0,0 +1,27 @@
/var/log/mmdvm/MMDVM_Bridge.log
{
firstaction
# $1 = the full path to the log file is passed to this script
# The path contains ".log" and a trailing space, so strip it.
parameter=$1
parameter="${parameter%%.*}"
today=$(date +"%Y-%m-%d")
filename=$parameter-$today.log
echo $filename $1 >/tmp/out.txt
if [ -f "$filename" ]; then
mv $filename $1
fi
endscript
daily
rotate 7
maxage 7
dateext
dateformat -%Y-%m-%d
extension .log
ifempty
create
postrotate
systemctl reload mmdvm_bridge
endscript
}

View file

@ -0,0 +1,25 @@
[Unit]
Description=MMDVM_Bridge Service
# Description=Place this file in /lib/systemd/system
# Description=N4IRS 07/01/2024
After=netcheck.service
Requires=netcheck.service
[Service]
Type=simple
Restart=always
RestartSec=3
Restart=on-abort
StandardOutput=null
WorkingDirectory=/opt/MMDVM_Bridge
ExecStartPre = /usr/bin/sh -c 'echo "Starting MMDVM_Bridge: [`date +%%T.%%3N`]" >> /var/log/netcheck'
ExecStart=/opt/MMDVM_Bridge/MMDVM_Bridge /opt/MMDVM_Bridge/MMDVM_Bridge.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,99 @@
; MMDVM_Bridge export / import configuration file.
; This file should be placed along side of MMDVM_Bridge or you can supply
; an absolute path in the DVSWITCH environment variable, e.g:
; DVSWITCH=/etc/MMDVM_Bridge/DVSwitch.ini
; before executing MMDVM_Bridge
;
; Another method to set the enviorment variable is to use the systemd unit file
; by adding:
; Environment=DVSWITCH=/etc/MMDVM_Bridge/DVSwitch.ini
; to /lib/systemd/system/mmdvm_bridge.service
; Configure the Quantar Repeater Partner
; Note that the TX and RX ports are already reversed for MMDVM_Bridge <--> Quantar_Bridge
[QUANTAR]
address = 0.0.0.0 ; Address to send IMBE TLV frames to (export)
txPort = 34103 ; Port to send IMBE TLV frames to (export)
rxPort = 34100 ; Port to listen for IMBE TLV frames on (import)
quantarPort = 1994 ; HDLC frames To/From the Quantar repeater
debug = 0 ; Debug 0 = off, 1 = on (adds lots of additional messages)
logLevel = 2 ; Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
logFilePath = /var/log/dvswitch/Quantar_Bridge.log
; Configure the DMR Partner
; Audio format is AMBE 72 bit
[DMR]
address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
txPort = 31100 ; Port to send AMBE TLV frames to (export)
rxPort = 31103 ; Port to listen on (import)
slot = 2 ; Export slot
exportTG = 0 ; Which TG to export
hangTimerInFrames = 0 ; Use 50 for 3 seconds of hang time (3000 / 60)
talkerAlias = %callsign %location %description ; Get callsign location and description from MMDVM_Bridge.ini
; Configure the D-Star Partner
; Audio format is AMBE 48 bit (DSAMBE)
[DSTAR]
address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
txPort = 32100 ; Port to send AMBE TLV frames to (export)
rxPort = 32103 ; Port to listen on (import)
fallbackID = 1234567 ; In case we can not find a valid DMR id in the database, export this one
exportTG = 9 ; Which TG to export
slot = 2 ; Export slot
RemotePort = 54321 ; Port to send Gateway commands to
message = %location %description ; Get location and description from MMDVM_Bridge.ini
; Configure the NXDN Partner
; Audio format is AMBE 72 bit
[NXDN]
address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
txPort = 33100 ; Port to send AMBE TLV frames to (export)
rxPort = 33103 ; Port to listen on (import)
fallbackID = 1234567 ; In case we can not find a valid DMR id in the database, export this one
nxdnFallbackID = 12345 ; Use this ID when the input DMR ID is not found in the database
translate = 1234=4321 ; Translate NXDN TG < -- > DMR TG (bidirectional)
slot = 2 ; Export slot
RemotePort = 6075 ; Port to send Gateway commands to
; Configure the P25 Partner
; Audio format is IMBE 88 bit
[P25]
address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
txPort = 34100 ; Port to send AMBE TLV frames to (export)
rxPort = 34103 ; Port to listen on (import)
slot = 2 ; Export slot
RemotePort = 6074 ; Port to send Gateway commands to
; Configure the Yaesu Fusion Partner
; Audio format is AMBE 72 bit
; Audio format is IMBE 88 bit
[YSF]
address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
txPort = 35100 ; Port to send AMBE TLV frames to (export)
rxPort = 35103 ; Port to listen on (import)
txWidePort = 35105 ; Port to send IMBE TLV frames to for YSFw (export)
fallbackID = 1234567 ; In case we can not find a valid DMR id in the database, export this one
exportTG = 9 ; Which TG to export
slot = 2 ; Export slot
RemotePort = 6073 ; Port to send Gateway commands to
; Configure the BrandMeister connection
; Simple Terminal Feature Update
; Audio format is AMBE 72 bit
[STFU] ; Brandmeister Open DMR Terminal (ODMRT) Protocol
BMAddress = 3102.repeater.net ; Brandmeister ODMRT server address
BMPort = 54006 ; Brandmeister ODMRT port
BMPassword = passw0rd ; Your Brandmeister password
Address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
txPort = 36100 ; Port to send AMBE TLV frames to (export)
rxPort = 36103 ; Port to listen on (import)
UserID = 1234567 ; Your DMR ID
TalkerAlias = N0CALL Name City ; Max 27 characters
StartTG = 3166 ; Startup talk group
LogLevel = 3 ; STFU log level (0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error)
[ASL]
address = 127.0.0.1
txPort = 30100
rxPort = 30103

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1 @@
Binary not available for i386

View file

@ -0,0 +1,104 @@
[General]
Callsign=N0CALL
Id=1234567
Timeout=180
Duplex=0
[Info]
RXFrequency=222340000
TXFrequency=224940000
Power=1
Latitude=41.7333
Longitude=-50.3999
Height=0
Location=Iceberg, North Atlantic
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

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1 @@
Binary not available for i386

1364
opt/MMDVM_Bridge/dvswitch.sh Executable file

File diff suppressed because it is too large Load diff

39
usr/local/sbin/DVSM_Update.sh Executable file
View file

@ -0,0 +1,39 @@
#!/usr/bin/env bash
# set -o errexit
# N4IRS 10/30/2020
# Version 1.6.0
#################################################
# #
# Download updated host files and setup links #
# #
#################################################
# Use dvswitch.sh to get the host files
/opt/MMDVM_Bridge/dvswitch.sh update
# create symbolic links for ircddbgateway
DIR="/usr/share/ircddbgateway/"
if [ -d "$DIR" ]; then
rm /usr/share/ircddbgateway/DCS_Hosts.txt
rm /usr/share/ircddbgateway/DExtra_Hosts.txt
rm /usr/share/ircddbgateway/DPlus_Hosts.txt
ln -s /var/lib/mmdvm/DCS_Hosts.txt /usr/share/ircddbgateway/DCS_Hosts.txt
ln -s /var/lib/mmdvm/DExtra_Hosts.txt /usr/share/ircddbgateway/DExtra_Hosts.txt
ln -s /var/lib/mmdvm/DPlus_Hosts.txt /usr/share/ircddbgateway/DPlus_Hosts.txt
fi
# if private host file(s) do not exist create empty ones
FILE="/var/lib/mmdvm/private_NXDNHosts.txt"
if [ ! -f "$FILE" ]; then
touch $FILE
fi
FILE="/var/lib/mmdvm/private_P25Hosts.txt"
if [ ! -f "$FILE" ]; then
touch $FILE
fi
exit 0