Merge pull request #109 from thetechprepper/misc/reticulum-updates-1

misc/reticulum-updates-1
This commit is contained in:
thetechprepper
2026-07-16 18:00:58 -07:00
committed by GitHub
18 changed files with 415 additions and 115 deletions
+13 -3
View File
@@ -1,7 +1,7 @@
# ETC Regression Tests # ETC Regression Tests
- **Build**: ETC R7 Build 11 - **Build**: ETC R7 Build 12
- **Date**: 5 July 2026 - **Date**: 16 July 2026
## Desktop/Launcher Icons ## Desktop/Launcher Icons
@@ -143,9 +143,19 @@
* [ ] Heltec v4 PnP (/dev/et-lora) * [ ] Heltec v4 PnP (/dev/et-lora)
* [ ] Offline firmware: rnodeconf --autoinstall --nocheck --fw-version 1.86 * [ ] Offline firmware: rnodeconf --autoinstall --nocheck --fw-version 1.86
* [ ] et-reticulum * [ ] 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 * [ ] All permutations of radios and LoRa connected/disconnected
## Modems
* [ ] modem73
* [ ] mercury
## Email ## Email
* [ ] Thunderbird installed * [ ] 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
+11 -8
View File
@@ -26,19 +26,22 @@ the supported tokens below.
ET_CALLSIGN ET_CALLSIGN
ET_RETICULUM_INTERFACE_AUTO_ENABLED ET_RETICULUM_INTERFACE_AUTO_ENABLED
ET_RETICULUM_INTERFACE_AX25KISS_ENABLED ET_RETICULUM_INTERFACE_AX25KISS_ENABLED
ET_RETICULUM_INTERFACE_MERCURY_ENABLED
ET_RETICULUM_INTERFACE_MODEM73_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 (`_`). * Valid characters are capitalized letters (`A-Z`) and underscores (`_`).
* Start with the prefix: `ET_`. * Start with the prefix: `ET_`.
* Reticulum specific tokens start with the prefix: `ET_RETICULUM_`. * 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 # Author : Gaston Gonzalez
# Date : 14 June 2026 # Date : 14 June 2026
# Updated : 16 July 2026
# Blueprint : Local network only # Blueprint : Local network only
# Purpose : This configuration is a blueprint for running a node that # Purpose : This configuration is a blueprint for running a node that
# only interacts with other nodes on the local Ethernet or # only interacts with other nodes on the local Ethernet or
@@ -112,4 +113,4 @@
[[Default Interface]] [[Default Interface]]
type = AutoInterface 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 # Author : Gaston Gonzalez
# Date : 28 June 2026 # Date : 28 June 2026
# Updated : 16 July 2026
# Blueprint : Radio-Only Node, transport disabled # Blueprint : Radio-Only Node, transport disabled
# Purpose : This confguration is a blueprint for a radio-only node. # Purpose : This confguration is a blueprint for a radio-only node.
# It uses modem73 as the radio interface. If a supported # It uses modem73 as the radio interface.
# et-lora device is detected, it will be enabled, too.
[reticulum] [reticulum]
@@ -82,50 +82,8 @@
[[Default Interface]] [[Default Interface]]
type = AutoInterface type = AutoInterface
enabled = No 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}}
[[modem73]] [[modem73]]
type = Modem73Interface type = Modem73Interface
mode = roaming mode = roaming
@@ -1,10 +1,9 @@
# Author : Gaston Gonzalez # Author : Gaston Gonzalez
# Date : 7 June 2026 # Date : 7 June 2026
# Updated : 28 June 2026 # Updated : 16 July 2026
# Blueprint : Radio-Only Node, transport disabled # Blueprint : Radio-Only Node, transport disabled
# Purpose : This confguration is a blueprint for a radio-only node. # Purpose : This confguration is a blueprint for a radio-only node.
# It uses an AX.25 KISS radio interface. If a supported # It uses an AX.25 KISS radio interface.
# et-lora device is detected, it will be enabled, too.
[reticulum] [reticulum]
@@ -84,7 +83,7 @@
[[Default Interface]] [[Default Interface]]
type = AutoInterface type = AutoInterface
enabled = No enabled = no
[[Packet Radio AX.25 KISS]] [[Packet Radio AX.25 KISS]]
type = AX25KISSInterface type = AX25KISSInterface
@@ -96,45 +95,3 @@
port = /tmp/kisstnc port = /tmp/kisstnc
mtu = 256 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 # Author : Gaston Gonzalez
# Date : 7 June 2026 # Date : 7 June 2026
# Updated : 15 June 2026 # Updated : 16 July 2026
# Blueprint : Permament Transport Node # Blueprint : Permament Transport Node
# Purpose : This configuration is a blueprint for running a # Purpose : This configuration is a blueprint for running a
# node that runs as a 24x7 transport node with # node that runs as a 24x7 transport node with
@@ -83,7 +83,8 @@
[[Default Interface]] [[Default Interface]]
type = AutoInterface type = AutoInterface
enabled = Yes mode = ap
enabled = yes
[[Packet Radio AX.25 KISS]] [[Packet Radio AX.25 KISS]]
type = AX25KISSInterface type = AX25KISSInterface
@@ -144,7 +145,7 @@
# configure. # configure.
# [[TCP Client]] # [[TCP Client]]
# type = TCPClientInterface # type = TCPClientInterface
# enabled = Yes # enabled = yes
# mode = boundary # mode = boundary
# # Set the IP address to the remote TCP Server # # Set the IP address to the remote TCP Server
# target_host = IP_ADDRESS_HERE # target_host = IP_ADDRESS_HERE
@@ -1,7 +1,7 @@
# Author : Gaston Gonzalez # Author : Gaston Gonzalez
# Date : 7 June 2026 # Date : 7 June 2026
# Updated : 5 July 2026 # Updated : 16 July 2026
# Blueprint : RNode-Only Node, transport disabled. # Blueprint : RNode-Only Node; transport disabled.
# Purpose : This confguration is a blueprint for an RNode-only node. # Purpose : This confguration is a blueprint for an RNode-only node.
@@ -82,7 +82,7 @@
[[Default Interface]] [[Default Interface]]
type = AutoInterface type = AutoInterface
enabled = No enabled = no
[[RNode LoRa Interface]] [[RNode LoRa Interface]]
type = RNodeInterface type = RNodeInterface
+10 -1
View File
@@ -2,7 +2,7 @@
# #
# Author : Gaston Gonzalez # Author : Gaston Gonzalez
# Date : 12 November 2024 # Date : 12 November 2024
# Updated : 29 June 2026 # Updated : 16 July 2026
# Purpose : Stops all EmComm Tools soundcard-based services (i.e. modems) # Purpose : Stops all EmComm Tools soundcard-based services (i.e. modems)
# and radio applications to ensure a clean start for the next mode. # 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 # Stop modem73 with a sledge hammer (belt and suspenders) as the current
# 1.0.7 version can hang on exit. # 1.0.7 version can hang on exit.
systemctl --user stop et-service-modem73-default 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 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 # Stop VARA with a sledge hammer
pkill et-winlink pkill et-winlink
pkill et-vara pkill et-vara
+113
View File
@@ -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
+46 -2
View File
@@ -2,7 +2,7 @@
# #
# Author : Gaston Gonzalez # Author : Gaston Gonzalez
# Date : 12 May 2026 # Date : 12 May 2026
# Updated : 30 June 2026 # Updated : 16 July 2026
# Purpose : Wrapper script for starting Reticulum with PnP support # Purpose : Wrapper script for starting Reticulum with PnP support
# #
# Preconditions: # Preconditions:
@@ -108,6 +108,16 @@ if [[ $? -eq 0 ]]; then
modem_options+=("modem73-fastest" "Fastest (Lowest Reliability) [QAM64]") modem_options+=("modem73-fastest" "Fastest (Lowest Reliability) [QAM64]")
fi 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 \ modem_choice=$(dialog \
--clear \ --clear \
--title "Reticulum Configuration" \ --title "Reticulum Configuration" \
@@ -115,6 +125,14 @@ if [[ $? -eq 0 ]]; then
13 70 10 \ 13 70 10 \
"${modem_options[@]}" \ "${modem_options[@]}" \
2>&1 >/dev/tty) 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 \ dialog \
--title "Note on Reticulum" \ --title "Note on Reticulum" \
@@ -125,7 +143,8 @@ if [[ $? -eq 0 ]]; then
tput sgr 0 && clear tput sgr 0 && clear
if [[ ${EXIT_STATUS} -ne 0 ]]; then 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 else
case ${modem_choice} in case ${modem_choice} in
300-packet) 300-packet)
@@ -156,6 +175,18 @@ if [[ $? -eq 0 ]]; then
et-log "Starting modem73 in fastest mode" et-log "Starting modem73 in fastest mode"
start_and_wait_for_service et-service-modem73-fastest 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" et-log "No modem specified"
;; ;;
@@ -178,6 +209,19 @@ else
fi fi
sed -i "s|{{ET_RETICULUM_INTERFACE_MODEM73_ENABLED}}|${INTERFACE_MODEM73_ENABLED}|g" ${RETICULUM_CONF_FILE} 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 # AX.25 KISS (Packet Radio) interface updates
############################################################ ############################################################
+36
View File
@@ -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}
+2 -2
View File
@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# Author : Gaston Gonzalez # Author : Gaston Gonzalez
# Date : 13 May 2026 # Date : 13 May 2026
# Updated : 23 June 2026 # Updated : 15 July 2026
# Purpose : Install MeshChat for Reticulum # Purpose : Install MeshChat for Reticulum
set -e set -e
trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG 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 . ../overlay/opt/emcomm-tools/bin/et-common
APP=ReticulumMeshChat APP=ReticulumMeshChat
VERSION="2.3.0-R7B7" VERSION="2.4.0-R7B11"
INSTALL_DIR="/opt/${APP}-${VERSION}" INSTALL_DIR="/opt/${APP}-${VERSION}"
INSTALL_BIN_DIR="${INSTALL_DIR}/bin" INSTALL_BIN_DIR="${INSTALL_DIR}/bin"
LINK_PATH="/opt/${APP}" LINK_PATH="/opt/${APP}"
+3 -1
View File
@@ -2,7 +2,8 @@
# #
# Author : Gaston Gonzalez # Author : Gaston Gonzalez
# Date : 16 March 2024 # 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 . ./env.sh
. ./functions.sh . ./functions.sh
@@ -121,6 +122,7 @@ exitIfNotRoot
./install-reticulum.sh ./install-reticulum.sh
./install-meshchat.sh ./install-meshchat.sh
./install-modem73.sh ./install-modem73.sh
./install-mercury.sh
./install-offline-rnode-firmware.sh ./install-offline-rnode-firmware.sh
# Debrand Ubuntu # Debrand Ubuntu
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 16 July 2026
# Purpose : Test Mercury installation
OUT=$(which mercury)
exit $?