From 0a14708fae04315e27739d546bc6be97db23a0c7 Mon Sep 17 00:00:00 2001 From: thetechprepper Date: Thu, 14 May 2026 21:49:46 -0700 Subject: [PATCH] reticulum - Added support for MeshChat to et-mode; enabled Reticulum to support multi-interface routing --- overlay/opt/emcomm-tools/bin/et-mode | 25 +++++++++-- .../template.d/reticulum/config.ax25.1200 | 4 +- scripts/install-meshchat.sh | 42 +++++++++++++++++++ scripts/install.sh | 5 ++- 4 files changed, 68 insertions(+), 8 deletions(-) create mode 100755 scripts/install-meshchat.sh diff --git a/overlay/opt/emcomm-tools/bin/et-mode b/overlay/opt/emcomm-tools/bin/et-mode index 65b86c4..507525c 100755 --- a/overlay/opt/emcomm-tools/bin/et-mode +++ b/overlay/opt/emcomm-tools/bin/et-mode @@ -2,7 +2,7 @@ # # Author : Gaston Gonzalez # Date : 6 November 2024 -# Updated : 12 May 2026 +# Updated : 13 May 2026 # Purpose : Configures the system for a specific mode of operation # Use a simple text file to save the state of the last mode selected @@ -19,7 +19,8 @@ MODE_ID_BBS_CLIENT2="bbs-client2" MODE_ID_BBS_SERVER="bbs-server" MODE_ID_CHAT_CLIENT="chat-chattervox" MODE_ID_PACKET_DIGIPEATER="packet-digipeater" -MODE_ID_RETICULUM_PACKET="reticulum-packet" +MODE_ID_RETICULUM_MESHCHAT="reticulum-meshchat" +MODE_ID_RETICULUM_NOMADNET="reticulum-nomadnet" MODE_ID_WINLINK_ARDOP="winlink-ardop" MODE_ID_WINLINK_PACKET="winlink-packet" MODE_ID_WINLINK_VARA_HF="winlink-vara-hf" @@ -179,7 +180,8 @@ if [ -e "${HOME}/.wine32/drive_c/VARA/VARA.exe" ]; then fi options+=("${MODE_ID_TIME_WWV}" "Sync clock to WWV") -options+=("${MODE_ID_RETICULUM_PACKET}" "Reticulum over AX.25 Packet") +options+=("${MODE_ID_RETICULUM_MESHCHAT}" "Reticulum MeshChat over AX.25 Packet") +options+=("${MODE_ID_RETICULUM_NOMADNET}" "Reticulum NomadNet over AX.25 Packet") # Prompt user for option and save exit status SELECTED_MODE=$(dialog --clear --menu "Select a mode:" 18 65 10 "${options[@]}" 3>&1 1>&2 2>&3) @@ -298,7 +300,22 @@ if [ $exit_status -eq 0 ]; then wwv_mode sudo /opt/emcomm-tools/sbin/wrapper-et-wwv.sh ;; - ${MODE_ID_RETICULUM_PACKET}) + ${MODE_ID_RETICULUM_MESHCHAT}) + select_reticulum_mode + et-log "Using ${TERM_MODE} as the modem." + + case "${TERM_MODE}" in + "1200") + start_and_wait_for_service et-service-reticulum-1200 + ;; + "300") + start_and_wait_for_service et-service-reticulum-300 + ;; + esac + + et-meshchat + ;; + ${MODE_ID_RETICULUM_NOMADNET}) select_reticulum_mode et-log "Using ${TERM_MODE} as the modem." diff --git a/overlay/opt/emcomm-tools/conf/template.d/reticulum/config.ax25.1200 b/overlay/opt/emcomm-tools/conf/template.d/reticulum/config.ax25.1200 index 4c55d13..dc51934 100644 --- a/overlay/opt/emcomm-tools/conf/template.d/reticulum/config.ax25.1200 +++ b/overlay/opt/emcomm-tools/conf/template.d/reticulum/config.ax25.1200 @@ -17,7 +17,7 @@ # always-on. This directive is optional and can be removed # for brevity. - enable_transport = False + enable_transport = True # By default, the first program to launch the Reticulum @@ -115,7 +115,7 @@ [[Default Interface]] type = AutoInterface - enabled = No + enabled = Yes [[Packet Radio AX25 KISS]] type = AX25KISSInterface diff --git a/scripts/install-meshchat.sh b/scripts/install-meshchat.sh new file mode 100755 index 0000000..1074413 --- /dev/null +++ b/scripts/install-meshchat.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# Author : Gaston Gonzalez +# Date : 13 May 2026 +# Purpose : Install MeshChat for Reticulum +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 +. ../overlay/opt/emcomm-tools/bin/et-common + +APP=ReticulumMeshChat +VERSION=2.3.0 +INSTALL_DIR="/opt/${APP}-${VERSION}" +INSTALL_BIN_DIR="${INSTALL_DIR}/bin" +LINK_PATH="/opt/${APP}" + +DOWNLOAD_FILE="${APP}-v${VERSION}-linux.AppImage" +URL="https://github.com/liamcottle/reticulum-meshchat/releases/download/v${VERSION}/${DOWNLOAD_FILE}" + +et-log "Installing ${APP} ${VERSION}..." + +if [[ ! -e ${DOWNLOAD_FILE} ]]; then + download_with_retries ${URL} ${DOWNLOAD_FILE} +fi + +chmod -v 755 ${DOWNLOAD_FILE} + +[[ ! -e "${INSTALL_BIN_DIR}" ]] && mkdir -v -p "${INSTALL_BIN_DIR}" + +mv ${DOWNLOAD_FILE} ${INSTALL_BIN_DIR} + +ET_WRAPPER_SCRIPT="${ET_HOME}/bin/et-meshchat" + +et-log "Creating wrapper script: ${ET_WRAPPER_SCRIPT}" +cat < ${ET_WRAPPER_SCRIPT} +#!/bin/bash + +${INSTALL_BIN_DIR}/${DOWNLOAD_FILE} +EOF + +chmod -v 755 ${ET_WRAPPER_SCRIPT} diff --git a/scripts/install.sh b/scripts/install.sh index 89fa035..2e283d6 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -2,7 +2,7 @@ # # Author : Gaston Gonzalez # Date : 16 March 2024 -# Updated : 11 May 2026 +# Updated : 13 May 2026 # Purpose : Main installer for EmComm Tools Community (ETC) . ./env.sh @@ -119,8 +119,9 @@ exitIfNotRoot # Security Patches ./patch-copy-fail.sh -# Install Reticulum and NomadNet +# Install Reticulum and related applications (NomadNet, MeshChat) ./install-reticulum.sh +./install-meshchat.sh # Debrand Ubuntu ./debrand.sh