mirror of
https://github.com/thetechprepper/emcomm-tools-os-community.git
synced 2026-09-17 15:41:44 -04:00
Merge pull request #109 from thetechprepper/misc/reticulum-updates-1
misc/reticulum-updates-1
This commit is contained in:
+13
-3
@@ -1,7 +1,7 @@
|
||||
# ETC Regression Tests
|
||||
|
||||
- **Build**: ETC R7 Build 11
|
||||
- **Date**: 5 July 2026
|
||||
- **Build**: ETC R7 Build 12
|
||||
- **Date**: 16 July 2026
|
||||
|
||||
## Desktop/Launcher Icons
|
||||
|
||||
@@ -143,9 +143,19 @@
|
||||
* [ ] Heltec v4 PnP (/dev/et-lora)
|
||||
* [ ] Offline firmware: rnodeconf --autoinstall --nocheck --fw-version 1.86
|
||||
* [ ] et-reticulum
|
||||
* [ ] All blueprints
|
||||
* [ ] rnode blueprint
|
||||
* [ ] packet radio blueprint
|
||||
* [ ] transport blueprint
|
||||
* [ ] modem73 blueprint
|
||||
* [ ] local network blueprint
|
||||
* [ ] internet blueprint
|
||||
* [ ] All permutations of radios and LoRa connected/disconnected
|
||||
|
||||
## Modems
|
||||
|
||||
* [ ] modem73
|
||||
* [ ] mercury
|
||||
|
||||
## Email
|
||||
|
||||
* [ ] Thunderbird installed
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 16 July 2026
|
||||
# Purpose : User systemd unit file for EmComm Tools that starts mercury
|
||||
# : in a balanced configuration.
|
||||
#
|
||||
# Usage:
|
||||
# Check status : systemctl --user status et-service-mercury-balanced
|
||||
# Start service : systemctl --user start et-service-mercury-balanced
|
||||
# Stop service : systemctl --user stop et-service-mercury-balanced
|
||||
# Reload this config : systemctl --user daemon-reload
|
||||
|
||||
[Unit]
|
||||
Description=EmComm Tools mercury default service for balanced performance
|
||||
|
||||
[Service]
|
||||
ExecStart=/opt/emcomm-tools/bin/et-mercury balanced
|
||||
Restart=no
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,20 @@
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 16 July 2026
|
||||
# Purpose : User systemd unit file for EmComm Tools that starts mercury
|
||||
# : in a fast configuration.
|
||||
#
|
||||
# Usage:
|
||||
# Check status : systemctl --user status et-service-mercury-fast
|
||||
# Start service : systemctl --user start et-service-mercury-fast
|
||||
# Stop service : systemctl --user stop et-service-mercury-fast
|
||||
# Reload this config : systemctl --user daemon-reload
|
||||
|
||||
[Unit]
|
||||
Description=EmComm Tools mercury default service for fast performance
|
||||
|
||||
[Service]
|
||||
ExecStart=/opt/emcomm-tools/bin/et-mercury fast
|
||||
Restart=no
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,20 @@
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 16 July 2026
|
||||
# Purpose : User systemd unit file for EmComm Tools that starts mercury
|
||||
# : in a reliability configuration.
|
||||
#
|
||||
# Usage:
|
||||
# Check status : systemctl --user status et-service-mercury-reliability
|
||||
# Start service : systemctl --user start et-service-mercury-reliability
|
||||
# Stop service : systemctl --user stop et-service-mercury-reliability
|
||||
# Reload this config : systemctl --user daemon-reload
|
||||
|
||||
[Unit]
|
||||
Description=EmComm Tools mercury default service for reliability performance
|
||||
|
||||
[Service]
|
||||
ExecStart=/opt/emcomm-tools/bin/et-mercury reliability
|
||||
Restart=no
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -26,19 +26,22 @@ the supported tokens below.
|
||||
ET_CALLSIGN
|
||||
ET_RETICULUM_INTERFACE_AUTO_ENABLED
|
||||
ET_RETICULUM_INTERFACE_AX25KISS_ENABLED
|
||||
ET_RETICULUM_INTERFACE_MERCURY_ENABLED
|
||||
ET_RETICULUM_INTERFACE_MODEM73_ENABLED
|
||||
ET_RETICULUM_INTERFACE_RNODE_BANDWIDTH
|
||||
ET_RETICULUM_INTERFACE_RNODE_CODINGRATE
|
||||
ET_RETICULUM_INTERFACE_RNODE_ENABLED
|
||||
ET_RETICULUM_INTERFACE_RNODE_FREQUENCY
|
||||
ET_RETICULUM_INTERFACE_RNODE_SPREADINGFACTOR
|
||||
ET_RETICULUM_INTERFACE_RNODE_TXPOWER
|
||||
...
|
||||
```
|
||||
|
||||
* Valid characters are capitalized letters (`A-Z`) and underscores (`_`).
|
||||
* Start with the prefix: `ET_`.
|
||||
* Reticulum specific tokens start with the prefix: `ET_RETICULUM_`.
|
||||
|
||||
The following replacement tokens are planned, but have not yet been
|
||||
implemented.
|
||||
|
||||
|
||||
```
|
||||
ET_RETICULUM_INTERFACE_RNODE_BANDWIDTH
|
||||
ET_RETICULUM_INTERFACE_RNODE_CODINGRATE
|
||||
ET_RETICULUM_INTERFACE_RNODE_ENABLED
|
||||
ET_RETICULUM_INTERFACE_RNODE_FREQUENCY
|
||||
ET_RETICULUM_INTERFACE_RNODE_SPREADINGFACTOR
|
||||
ET_RETICULUM_INTERFACE_RNODE_TXPOWER
|
||||
```
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 14 June 2026
|
||||
# Updated : 16 July 2026
|
||||
# Blueprint : Local network only
|
||||
# Purpose : This configuration is a blueprint for running a node that
|
||||
# only interacts with other nodes on the local Ethernet or
|
||||
@@ -112,4 +113,4 @@
|
||||
|
||||
[[Default Interface]]
|
||||
type = AutoInterface
|
||||
enabled = Yes
|
||||
enabled = yes
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 16 July 2026
|
||||
# Blueprint : Radio-Only Node, transport disabled
|
||||
# Purpose : This confguration is a blueprint for a radio-only node.
|
||||
# It uses Mercury as the radio interface.
|
||||
|
||||
[reticulum]
|
||||
|
||||
# If you enable Transport, your system will route traffic
|
||||
# for other peers, pass announces and serve path requests.
|
||||
# This should only be done for systems that are suited to
|
||||
# act as transport nodes, ie. if they are stationary and
|
||||
# always-on. This directive is optional and can be removed
|
||||
# for brevity.
|
||||
|
||||
enable_transport = False
|
||||
|
||||
|
||||
# By default, the first program to launch the Reticulum
|
||||
# Network Stack will create a shared instance, that other
|
||||
# programs can communicate with. Only the shared instance
|
||||
# opens all the configured interfaces directly, and other
|
||||
# local programs communicate with the shared instance over
|
||||
# a local socket. This is completely transparent to the
|
||||
# user, and should generally be turned on. This directive
|
||||
# is optional and can be removed for brevity.
|
||||
|
||||
share_instance = Yes
|
||||
|
||||
|
||||
# If you want to run multiple *different* shared instances
|
||||
# on the same system, you will need to specify different
|
||||
# instance names for each. On platforms supporting domain
|
||||
# sockets, this can be done with the instance_name option:
|
||||
|
||||
instance_name = default
|
||||
|
||||
# You can configure whether Reticulum should discover
|
||||
# available interfaces from other Transport Instances over
|
||||
# the network. If this option is enabled, Reticulum will
|
||||
# collect interface information discovered from the network.
|
||||
|
||||
# discover_interfaces = No
|
||||
|
||||
|
||||
# You can configure Reticulum to panic and forcibly close
|
||||
# if an unrecoverable interface error occurs, such as the
|
||||
# hardware device for an interface disappearing. This is
|
||||
# an optional directive, and can be left out for brevity.
|
||||
# This behaviour is disabled by default.
|
||||
|
||||
# panic_on_interface_error = No
|
||||
|
||||
|
||||
# If you're connecting to a large external network, you
|
||||
# can use one or more external blackhole list to block
|
||||
# spammy and excessive announces onto your network. This
|
||||
# funtionality is especially useful if you're hosting public
|
||||
# entrypoints or gateways. The list source below provides a
|
||||
# functional example, but better, more timely maintained
|
||||
# lists probably exist in the community.
|
||||
|
||||
# blackhole_sources = 521c87a83afb8f29e4455e77930b973b
|
||||
|
||||
|
||||
[logging]
|
||||
# Valid log levels are 0 through 7:
|
||||
# 0: Log only critical information
|
||||
# 1: Log errors and lower log levels
|
||||
# 2: Log warnings and lower log levels
|
||||
# 3: Log notices and lower log levels
|
||||
# 4: Log info and lower (this is the default)
|
||||
# 5: Verbose logging
|
||||
# 6: Debug logging
|
||||
# 7: Extreme logging
|
||||
|
||||
loglevel = 4
|
||||
|
||||
|
||||
[interfaces]
|
||||
|
||||
[[Default Interface]]
|
||||
type = AutoInterface
|
||||
enabled = no
|
||||
|
||||
# See https://github.com/Rhizomatica/mercury/blob/mercuryv2/docs/RETICULUM.md
|
||||
[[Mercury HF]]
|
||||
type = TCPClientInterface
|
||||
mode = roaming
|
||||
interface_enabled = {{ET_RETICULUM_INTERFACE_MERCURY_ENABLED}}
|
||||
kiss_framing = yes
|
||||
target_host = 127.0.0.1
|
||||
target_port = 8100
|
||||
|
||||
# Index Mode Payload Rate (bps)
|
||||
# 0 DATAC1 980
|
||||
# 9 DATAC17 1410 (not yet supported)
|
||||
# 10 QAM16C2 3100 (not yet supported)
|
||||
bitrate = 980
|
||||
@@ -1,9 +1,9 @@
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 28 June 2026
|
||||
# Updated : 16 July 2026
|
||||
# Blueprint : Radio-Only Node, transport disabled
|
||||
# Purpose : This confguration is a blueprint for a radio-only node.
|
||||
# It uses modem73 as the radio interface. If a supported
|
||||
# et-lora device is detected, it will be enabled, too.
|
||||
# It uses modem73 as the radio interface.
|
||||
|
||||
[reticulum]
|
||||
|
||||
@@ -82,49 +82,7 @@
|
||||
|
||||
[[Default Interface]]
|
||||
type = AutoInterface
|
||||
enabled = No
|
||||
|
||||
[[RNode LoRa Interface]]
|
||||
type = RNodeInterface
|
||||
mode = roaming
|
||||
enabled = {{ET_RETICULUM_INTERFACE_RNODE_ENABLED}}
|
||||
|
||||
port = /dev/et-lora
|
||||
|
||||
# Set frequency to 915 MHz
|
||||
frequency = 915000000
|
||||
#frequency = {{ET_RETICULUM_INTERFACE_RNODE_FREQUENCY}}
|
||||
|
||||
# Set LoRa bandwidth to 125 KHz
|
||||
bandwidth = 125000
|
||||
#bandwidth = {{ET_RETICULUM_INTERFACE_RNODE_BANDWIDTH}}
|
||||
|
||||
# Set TX power in dBm
|
||||
#
|
||||
# 7 dBm = 5 mW
|
||||
# 10 dBm = 10 mW
|
||||
# 14 dBm = 25 mW
|
||||
# 17 dBm = 50 mW
|
||||
# 20 dBm = 100 mW
|
||||
# 22 dBm = 158 mW
|
||||
# 24 dBm = 251 mW
|
||||
# 27 dBm = 501 mW
|
||||
# 28 dBm = 631 mW
|
||||
# 30 dBm = 1000 mW (1 W)
|
||||
txpower = {{ET_RETICULUM_INTERFACE_RNODE_TXPOWER}}
|
||||
|
||||
# Select spreading factor 8. Valid
|
||||
# range is 7 through 12, with 7
|
||||
# being the fastest and 12 having
|
||||
# the longest range.
|
||||
spreadingfactor = 9
|
||||
#spreadingfactor = {{ET_RETICULUM_INTERFACE_RNODE_SPREADINGFACTOR}}
|
||||
|
||||
# Select coding rate 5. Valid range
|
||||
# is 5 throough 8, with 5 being the
|
||||
# fastest, and 8 the longest range.
|
||||
codingrate = 5
|
||||
#codingrate = {{ET_RETICULUM_INTERFACE_RNODE_CODINGRATE}}
|
||||
enabled = no
|
||||
|
||||
[[modem73]]
|
||||
type = Modem73Interface
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 7 June 2026
|
||||
# Updated : 28 June 2026
|
||||
# Updated : 16 July 2026
|
||||
# Blueprint : Radio-Only Node, transport disabled
|
||||
# Purpose : This confguration is a blueprint for a radio-only node.
|
||||
# It uses an AX.25 KISS radio interface. If a supported
|
||||
# et-lora device is detected, it will be enabled, too.
|
||||
# It uses an AX.25 KISS radio interface.
|
||||
|
||||
|
||||
[reticulum]
|
||||
@@ -84,7 +83,7 @@
|
||||
|
||||
[[Default Interface]]
|
||||
type = AutoInterface
|
||||
enabled = No
|
||||
enabled = no
|
||||
|
||||
[[Packet Radio AX.25 KISS]]
|
||||
type = AX25KISSInterface
|
||||
@@ -96,45 +95,3 @@
|
||||
|
||||
port = /tmp/kisstnc
|
||||
mtu = 256
|
||||
|
||||
[[RNode LoRa Interface]]
|
||||
type = RNodeInterface
|
||||
mode = roaming
|
||||
enabled = {{ET_RETICULUM_INTERFACE_RNODE_ENABLED}}
|
||||
|
||||
port = /dev/et-lora
|
||||
|
||||
# Set frequency to 915 MHz
|
||||
frequency = 915000000
|
||||
#frequency = {{ET_RETICULUM_INTERFACE_RNODE_FREQUENCY}}
|
||||
|
||||
# Set LoRa bandwidth to 125 KHz
|
||||
bandwidth = 125000
|
||||
#bandwidth = {{ET_RETICULUM_INTERFACE_RNODE_BANDWIDTH}}
|
||||
|
||||
# Set TX power in dBm
|
||||
#
|
||||
# 7 dBm = 5 mW
|
||||
# 10 dBm = 10 mW
|
||||
# 14 dBm = 25 mW
|
||||
# 17 dBm = 50 mW
|
||||
# 20 dBm = 100 mW
|
||||
# 22 dBm = 158 mW
|
||||
# 24 dBm = 251 mW
|
||||
# 27 dBm = 501 mW
|
||||
# 28 dBm = 631 mW
|
||||
# 30 dBm = 1000 mW (1 W)
|
||||
txpower = {{ET_RETICULUM_INTERFACE_RNODE_TXPOWER}}
|
||||
|
||||
# Select spreading factor 8. Valid
|
||||
# range is 7 through 12, with 7
|
||||
# being the fastest and 12 having
|
||||
# the longest range.
|
||||
spreadingfactor = 9
|
||||
#spreadingfactor = {{ET_RETICULUM_INTERFACE_RNODE_SPREADINGFACTOR}}
|
||||
|
||||
# Select coding rate 5. Valid range
|
||||
# is 5 throough 8, with 5 being the
|
||||
# fastest, and 8 the longest range.
|
||||
codingrate = 5
|
||||
#codingrate = {{ET_RETICULUM_INTERFACE_RNODE_CODINGRATE}}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 7 June 2026
|
||||
# Updated : 15 June 2026
|
||||
# Updated : 16 July 2026
|
||||
# Blueprint : Permament Transport Node
|
||||
# Purpose : This configuration is a blueprint for running a
|
||||
# node that runs as a 24x7 transport node with
|
||||
@@ -83,7 +83,8 @@
|
||||
|
||||
[[Default Interface]]
|
||||
type = AutoInterface
|
||||
enabled = Yes
|
||||
mode = ap
|
||||
enabled = yes
|
||||
|
||||
[[Packet Radio AX.25 KISS]]
|
||||
type = AX25KISSInterface
|
||||
@@ -144,7 +145,7 @@
|
||||
# configure.
|
||||
# [[TCP Client]]
|
||||
# type = TCPClientInterface
|
||||
# enabled = Yes
|
||||
# enabled = yes
|
||||
# mode = boundary
|
||||
# # Set the IP address to the remote TCP Server
|
||||
# target_host = IP_ADDRESS_HERE
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 7 June 2026
|
||||
# Updated : 5 July 2026
|
||||
# Blueprint : RNode-Only Node, transport disabled.
|
||||
# Updated : 16 July 2026
|
||||
# Blueprint : RNode-Only Node; transport disabled.
|
||||
# Purpose : This confguration is a blueprint for an RNode-only node.
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
|
||||
[[Default Interface]]
|
||||
type = AutoInterface
|
||||
enabled = No
|
||||
enabled = no
|
||||
|
||||
[[RNode LoRa Interface]]
|
||||
type = RNodeInterface
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 12 November 2024
|
||||
# Updated : 29 June 2026
|
||||
# Updated : 16 July 2026
|
||||
# Purpose : Stops all EmComm Tools soundcard-based services (i.e. modems)
|
||||
# and radio applications to ensure a clean start for the next mode.
|
||||
|
||||
@@ -31,8 +31,17 @@ stop_all_services() {
|
||||
# Stop modem73 with a sledge hammer (belt and suspenders) as the current
|
||||
# 1.0.7 version can hang on exit.
|
||||
systemctl --user stop et-service-modem73-default
|
||||
systemctl --user stop et-service-modem73-reliability
|
||||
systemctl --user stop et-service-modem73-fast
|
||||
systemctl --user stop et-service-modem73-faster
|
||||
systemctl --user stop et-service-modem73-fastest
|
||||
pkill -9 modem73
|
||||
|
||||
# Stop the Mercury HF modem
|
||||
systemctl --user stop et-service-mercury-balanced
|
||||
systemctl --user stop et-service-mercury-reliability
|
||||
systemctl --user stop et-service-mercury-fast
|
||||
|
||||
# Stop VARA with a sledge hammer
|
||||
pkill et-winlink
|
||||
pkill et-vara
|
||||
|
||||
Executable
+113
@@ -0,0 +1,113 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 16 July 2026
|
||||
# Purpose : Wrapper script for starting Mercury with PnP support
|
||||
#
|
||||
# Preconditions:
|
||||
# 1. Supported radio and audio interface are connected and properly detected
|
||||
#
|
||||
# Postconditions:
|
||||
# 1. Mercury started with sane defaults
|
||||
#
|
||||
# Notes:
|
||||
#
|
||||
# Mercury supports many modulation types and configuration options. To
|
||||
# keep usage simple, only three modulation settings have been configured
|
||||
# that map to a combination of reliability and speed for most general
|
||||
# purpose applications.
|
||||
#
|
||||
# The DATAC17 and QAM16C2 modes are documented on the RETICULUM.md
|
||||
# documenation on the mercury GitHub project, but are not yet supported
|
||||
# in version 1.9.9. Disabling these options from now.
|
||||
|
||||
|
||||
usage() {
|
||||
echo "usage: $(basename $0) <mode>"
|
||||
echo " <mode>"
|
||||
echo " reliability - Max reliability (Slower Speed) [DATAC1]"
|
||||
echo " balanced - Balanced (Reliability and Speed) [DATAC17]"
|
||||
echo " fast - Fast (Low Reliability) [QAM16C2]"
|
||||
}
|
||||
|
||||
if [[ $# -ne 1 ]]; then
|
||||
et-log "Can't started Mercury modem. Mode not specified."
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
MODE="$1"
|
||||
|
||||
case "${MODE}" in
|
||||
reliability)
|
||||
MODE_INDEX="0"
|
||||
;;
|
||||
balanced)
|
||||
MODE_INDEX="9"
|
||||
et-log "Mode not yet supported."
|
||||
exit 1
|
||||
;;
|
||||
fast)
|
||||
MODE_INDEX="10"
|
||||
et-log "Mode not yet supported."
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
et-log "Can't started Mercury modem. Mode not supported."
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
[[ -z ${ET_LOG_DIR} ]] && ET_LOG_DIR="${HOME}/.local/share/emcomm-tools"
|
||||
[[ ! -e ${ET_LOG_DIR} ]] && mkdir -p ${ET_LOG_DIR}
|
||||
|
||||
start() {
|
||||
update_config
|
||||
|
||||
if [[ $? -eq 0 ]]; then
|
||||
|
||||
systemctl is-active --quiet rigctld
|
||||
if [[ $? -ne 0 ]]; then
|
||||
et-log "Can't start Mercury. rigctld not running. Ensure radio is selected."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ALSA_DEVICE=$(et-system-info et-audio-card)
|
||||
|
||||
CMD="mercury -m ${MODE_INDEX} -i plughw:${ALSA_DEVICE} -o plughw:${ALSA_DEVICE} -A 127.0.0.1:4532"
|
||||
|
||||
et-log "Starting Mercury in mode ${MODE} with: '${CMD}'"
|
||||
echo
|
||||
${CMD}
|
||||
else
|
||||
et-log "Error configurating modem. Can't start Mercury"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
update_config () {
|
||||
|
||||
et-log "Attempting to start Mercury in mode: '${MODE}'"
|
||||
|
||||
# 1. Check if the symlink was created by the udev rules
|
||||
if [[ -e /dev/et-audio ]]; then
|
||||
|
||||
# 2. Check that this device was properly tagged with the ET_AUDIO env variable with a udev rule
|
||||
APLAY_OUT=$(arecord -l | grep ET_AUDIO)
|
||||
if [[ $? -eq 0 ]]; then
|
||||
|
||||
# Configure ALSA settings for sound card
|
||||
/opt/emcomm-tools/bin/et-audio update-config
|
||||
|
||||
else
|
||||
et-log "No ET_AUDIO device detected."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
et-log "No ET_AUDIO device plugged in."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
start
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 12 May 2026
|
||||
# Updated : 30 June 2026
|
||||
# Updated : 16 July 2026
|
||||
# Purpose : Wrapper script for starting Reticulum with PnP support
|
||||
#
|
||||
# Preconditions:
|
||||
@@ -108,6 +108,16 @@ if [[ $? -eq 0 ]]; then
|
||||
modem_options+=("modem73-fastest" "Fastest (Lowest Reliability) [QAM64]")
|
||||
fi
|
||||
|
||||
HAS_MERCURY_CONFIG=`grep "Mercury HF" ~/.reticulum/config`
|
||||
if [[ $? -eq 0 ]]; then
|
||||
modem_options+=("mercury-reliability" "Max reliability (Slower Speed) [DATAC1]")
|
||||
# The modes below, DATAC17 and QAM16C2, are documented on the RETICULUM.md
|
||||
# documenation on the mercury GitHub project, but are not yet supported in
|
||||
# version 1.9.9. Disabling these options from the UI for now.
|
||||
#modem_options+=("mercury-balanced" "Balanced (Reliability and Speed) [DATAC17]")
|
||||
#modem_options+=("mercury-fast" "Fast (Low Reliability) [QAM16C2]")
|
||||
fi
|
||||
|
||||
modem_choice=$(dialog \
|
||||
--clear \
|
||||
--title "Reticulum Configuration" \
|
||||
@@ -115,6 +125,14 @@ if [[ $? -eq 0 ]]; then
|
||||
13 70 10 \
|
||||
"${modem_options[@]}" \
|
||||
2>&1 >/dev/tty)
|
||||
EXIT_STATUS=$?
|
||||
|
||||
tput sgr0 && clear
|
||||
|
||||
if [[ ${EXIT_STATUS} -ne 0 ]]; then
|
||||
et-log "No modem selected"
|
||||
exit ${EXIT_STATUS}
|
||||
fi
|
||||
|
||||
dialog \
|
||||
--title "Note on Reticulum" \
|
||||
@@ -125,7 +143,8 @@ if [[ $? -eq 0 ]]; then
|
||||
tput sgr 0 && clear
|
||||
|
||||
if [[ ${EXIT_STATUS} -ne 0 ]]; then
|
||||
et-log "User canceled modem selection. Packet modem will not be started and interface will not be enabled."
|
||||
et-log "User does not want to start modem given required use of encryption."
|
||||
exit ${EXIT_STATUS}
|
||||
else
|
||||
case ${modem_choice} in
|
||||
300-packet)
|
||||
@@ -156,6 +175,18 @@ if [[ $? -eq 0 ]]; then
|
||||
et-log "Starting modem73 in fastest mode"
|
||||
start_and_wait_for_service et-service-modem73-fastest
|
||||
;;
|
||||
mercury-reliability)
|
||||
et-log "Starting mercury in reliability mode"
|
||||
start_and_wait_for_service et-service-mercury-reliability
|
||||
;;
|
||||
mercury-balanced)
|
||||
et-log "Starting mercury in balanced mode"
|
||||
start_and_wait_for_service et-service-mercury-balanced
|
||||
;;
|
||||
mercury-fast)
|
||||
et-log "Starting mercury in fast mode"
|
||||
start_and_wait_for_service et-service-mercury-fast
|
||||
;;
|
||||
*)
|
||||
et-log "No modem specified"
|
||||
;;
|
||||
@@ -178,6 +209,19 @@ else
|
||||
fi
|
||||
sed -i "s|{{ET_RETICULUM_INTERFACE_MODEM73_ENABLED}}|${INTERFACE_MODEM73_ENABLED}|g" ${RETICULUM_CONF_FILE}
|
||||
|
||||
############################################################
|
||||
# Mercurcy HF interface updates
|
||||
############################################################
|
||||
|
||||
# Enable/disable intereface based on PnP device detection
|
||||
IS_MERCURY_RUNNING=`ps -ef | grep [m]ercury`
|
||||
if [[ $? -eq 0 ]]; then
|
||||
INTERFACE_MERCURY_ENABLED="yes"
|
||||
else
|
||||
INTERFACE_MERCURY_ENABLED="no"
|
||||
fi
|
||||
sed -i "s|{{ET_RETICULUM_INTERFACE_MERCURY_ENABLED}}|${INTERFACE_MERCURY_ENABLED}|g" ${RETICULUM_CONF_FILE}
|
||||
|
||||
############################################################
|
||||
# AX.25 KISS (Packet Radio) interface updates
|
||||
############################################################
|
||||
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 17 July 2025
|
||||
# Purpose : Builds and installs the Mercury HF modem
|
||||
set -e
|
||||
trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
|
||||
trap 'et-log "\"${last_command}\" command failed with exit code $?."' ERR
|
||||
|
||||
. ./env.sh
|
||||
|
||||
APP="mercury"
|
||||
VERSION="1.9.9"
|
||||
APP_AND_VERSION="${APP}-${VERSION}"
|
||||
GIT_TAG="v${VERSION}"
|
||||
GIT_URL="https://github.com/Rhizomatica/mercury.git"
|
||||
GIT_WORKSPACE="mercury"
|
||||
INSTALL_DIR="/opt/${APP_AND_VERSION}"
|
||||
LINK_PATH="/opt/${APP}"
|
||||
|
||||
et-log "Installing ${APP} ${VERSION}"
|
||||
|
||||
CWD_DIR=`pwd`
|
||||
|
||||
cd ${ET_SRC_DIR}
|
||||
[[ ! -e ${GIT_WORKSPACE} ]] && git clone ${GIT_URL} ${GIT_WORKSPACE}
|
||||
|
||||
cd ${GIT_WORKSPACE} && git checkout ${GIT_TAG}
|
||||
|
||||
make && make install prefix="${INSTALL_DIR}"
|
||||
|
||||
[[ -e ${LINK_PATH} ]] && rm ${LINK_PATH}
|
||||
ln -v -s ${INSTALL_DIR} ${LINK_PATH}
|
||||
|
||||
stow -v -d /opt ${APP} -t /usr/local
|
||||
|
||||
cd ${CWD}
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 13 May 2026
|
||||
# Updated : 23 June 2026
|
||||
# Updated : 15 July 2026
|
||||
# Purpose : Install MeshChat for Reticulum
|
||||
set -e
|
||||
trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
|
||||
@@ -11,7 +11,7 @@ trap 'et-log "\"${last_command}\" command failed with exit code $?."' ERR
|
||||
. ../overlay/opt/emcomm-tools/bin/et-common
|
||||
|
||||
APP=ReticulumMeshChat
|
||||
VERSION="2.3.0-R7B7"
|
||||
VERSION="2.4.0-R7B11"
|
||||
INSTALL_DIR="/opt/${APP}-${VERSION}"
|
||||
INSTALL_BIN_DIR="${INSTALL_DIR}/bin"
|
||||
LINK_PATH="/opt/${APP}"
|
||||
|
||||
+3
-1
@@ -2,7 +2,8 @@
|
||||
#
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 16 March 2024
|
||||
# Updated : 5 July 2026 # Purpose : Main installer for EmComm Tools Community (ETC)
|
||||
# Updated : 16 July 2026
|
||||
# Purpose : Main installer for EmComm Tools Community (ETC)
|
||||
|
||||
. ./env.sh
|
||||
. ./functions.sh
|
||||
@@ -121,6 +122,7 @@ exitIfNotRoot
|
||||
./install-reticulum.sh
|
||||
./install-meshchat.sh
|
||||
./install-modem73.sh
|
||||
./install-mercury.sh
|
||||
./install-offline-rnode-firmware.sh
|
||||
|
||||
# Debrand Ubuntu
|
||||
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Author : Gaston Gonzalez
|
||||
# Date : 16 July 2026
|
||||
# Purpose : Test Mercury installation
|
||||
|
||||
OUT=$(which mercury)
|
||||
exit $?
|
||||
Reference in New Issue
Block a user