Merged the final updates in preparation for the official R3 release (3.0.0). These updates came out of the first TTP Campout and Field Training event held in Wickenburg, AZ.

This commit is contained in:
Gaston Gonzalez
2024-11-22 06:58:06 -07:00
18 changed files with 174 additions and 14 deletions
+3
View File
@@ -119,3 +119,6 @@ if ! shopt -oq posix; then
. /etc/bash_completion
fi
fi
# Set xterm colors for the default terminal profile
/opt/emcomm-tools/bin/et-term
+2 -1
View File
@@ -1,6 +1,6 @@
[Common]
ShowColumns=@Variant(\0\0\0\b\0\0\0\x6\0\0\0\x16\0\x63\0\x61\0l\0l\0l\0o\0g\0N\0\x61\0m\0\x65\0\0\0\x1\0\0\0\0\x1c\0\x63\0\x61\0l\0l\0l\0o\0g\0\x43\0o\0m\0m\0\x65\0n\0t\0\0\0\x1\0\0\0\0\xe\0\x63\0\x61\0l\0l\0l\0o\0g\0\0\0\x1\0\0\0\0\x1a\0\x62\0\x61\0n\0\x64\0t\0i\0m\0\x65\0s\0t\0\x61\0m\0p\0\0\0\x1\0\0\0\0\xe\0\x62\0\x61\0n\0\x64\0s\0n\0r\0\0\0\x1\0\0\0\0\x14\0\x62\0\x61\0n\0\x64\0o\0\x66\0\x66\0s\0\x65\0t\0\0\0\x1\0)
SortBy=@Variant(\0\0\0\b\0\0\0\x1\0\0\0\x18\0\x63\0\x61\0l\0l\0\x41\0\x63\0t\0i\0v\0i\0t\0y\0\0\0\n\0\0\0\x18\0\x61\0\x63\0k\0T\0i\0m\0\x65\0s\0t\0\x61\0m\0p)
SortBy=@Variant(\0\0\0\b\0\0\0\x2\0\0\0\x18\0\x63\0\x61\0l\0l\0\x41\0\x63\0t\0i\0v\0i\0t\0y\0\0\0\n\0\0\0\x18\0\x61\0\x63\0k\0T\0i\0m\0\x65\0s\0t\0\x61\0m\0p\0\0\0\x18\0\x62\0\x61\0n\0\x64\0\x41\0\x63\0t\0i\0v\0i\0t\0y\0\0\0\n\0\0\0\x14\0-\0t\0i\0m\0\x65\0s\0t\0\x61\0m\0p)
SubMode=0
[Configuration]
@@ -8,6 +8,7 @@ AcceptTCPRequests=true
AutoGrid=true
AutoreplyConfirmation=false
AutoreplyOnAtStartup=true
CallsignAging=30
CATNetworkPort=localhost:4532
CheckForUpdates=false
HeartbeatAckSNR=true
@@ -1,6 +1,6 @@
[Desktop Entry]
Type=Application
Exec=conky
Exec=/opt/emcomm-tools/bin/et-conky
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
@@ -0,0 +1,4 @@
[Setup]
host = localhost
callsign = N0CALL
+1
View File
@@ -21,6 +21,7 @@ ${font DejaVu Sans:bold:size=10}${color #8d5133}${alignc}DATE/TIME
${font DejaVu Sans Mono:size=11}${color yellow}${alignc}${time %A, %B %d %Y}
Local: ${alignr}${time %H:%M:%S}
UTC: ${alignr}${tztime UTC %H:%M:%S}
GPS Time: ${alignr}${execpi 30 et-system-info et-time}
${font DejaVu Sans:bold:size=10}${color #8d5133}${alignc}SYSTEM
${font DejaVu Sans Mono:size=11}${color yellow}Uptime : ${uptime}
@@ -9,7 +9,7 @@
<entry key="directionality" value="0"/>
<entry key="enabled" value="true"/>
<entry key="fixedAltitudeM" value="NaN"/>
<entry key="freeText" value="ETC R3"/>
<entry key="freeText" value="ETC R3 APMAIL WINLINK"/>
<entry key="gain" value="0"/>
<entry key="height" value="0"/>
<entry key="initialRateSecs" value="60"/>
@@ -1,6 +1,6 @@
# Author : Gaston Gonzalez
# Date : 30 September 2024
# Updated : 23 October 2024
# Updated : 21 November 2024
# Purpose : udev rules for the DigiRig Mobile v1.9
#
# Preconditions:
@@ -18,9 +18,18 @@ SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ENV{ET_DEVI
ENV{ET_DEVICE}="DIGIRIG_MOBILE", ENV{ET_SUBDEVICE}="CAT", GROUP="dialout", MODE="0660", SYMLINK+="et-cat", \
RUN+="/usr/bin/systemctl start rigctld"
# The audio chipset changed for DigiRig v1.9. This rule handles the original revision.
# Audio device will only match if PROGRAM above matches (exit status=0)
SUBSYSTEM=="sound", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="0012", \
PROGRAM="/opt/emcomm-tools/sbin/udev-tester.sh digirig-mobile", \
ACTION=="add", \
ENV{ET_DEVICE}="DIGIRIG_MOBILE", \
ATTR{id}="ET_AUDIO", \
ENV{ET_SUBDEVICE}="AUDIO", GROUP="audio", MODE="0660", SYMLINK+="et-audio"
SUBSYSTEM=="sound", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="013c", ENV{ET_DEVICE}=="", \
ACTION=="add", \
ATTR{id}="ET_AUDIO", \
ENV{ET_DEVICE}="DIGIRIG_MOBILE", ENV{ET_SUBDEVICE}="AUDIO", GROUP="audio", MODE="0660", SYMLINK+="et-audio"
# TODO: Add rules for earlier 1.9 release
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
#
# Author : Gaston Gonzalez
# Date : 21 November 2024
# Purpose : Wrapper script for starting conky as there issues with normal startup
sleep 3 && /usr/bin/conky > /dev/null 2>&1 &
+8 -1
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 24 October 2024
# Updated : 12 November 2024
# Updated : 20 November 2024
# Purpose : Wrapper script for starting JS8Call with PnP support
#
# Preconditions
@@ -33,6 +33,13 @@ notify_user() {
start() {
/opt/emcomm-tools/bin/et-kill-all && update-config && /usr/bin/js8call &
if [ ! -e /dev/et-gps ]; then
notify-send -u critical -i \
/usr/share/icons/Yaru/48x48/status/dialog-information.png \
"No GPS. Ensure your time is accurate when JS8 starts."
fi
}
update-config () {
+4 -4
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 6 November 2024
# Updated : 12 November 2024
# Updated : 20 November 2024
# Purpose : Configures the system for a specific mode of operation
# Use a simple text file to save the state of the last mode selected
@@ -66,11 +66,11 @@ options+=("${MODE_ID_NONE}" "No mode selected")
options+=("${MODE_ID_APRS_CLIENT}" "APRS Client (YAAC)")
options+=("${MODE_ID_APRS_DIGIPEATER}" "APRS Digipeater")
options+=("${MODE_ID_PACKET_DIGIPEATER}" "Packet Digipeater")
options+=("${MODE_ID_WINLINK_ARDOP}" "Winlink ARDOP")
options+=("${MODE_ID_WINLINK_PACKET}" "Winlink Packet")
options+=("${MODE_ID_WINLINK_ARDOP}" "Winlink over HF (ARDOP)")
options+=("${MODE_ID_WINLINK_PACKET}" "Winlink over VHF/UHF (AX.25 Packet)")
# Prompt user for option and save exit status
SELECTED_MODE=$(dialog --clear --menu "Select a mode:" 15 50 10 "${options[@]}" 3>&1 1>&2 2>&3)
SELECTED_MODE=$(dialog --clear --menu "Select a mode:" 15 65 10 "${options[@]}" 3>&1 1>&2 2>&3)
exit_status=$?
tput sgr 0 && clear
+11 -1
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 6 October 2024
# Updated : 8 November 2024
# Updated : 21 November 2024
# Purpose : Utility script for dumping system information
function usage() {
@@ -13,6 +13,7 @@ function usage() {
echo " et-audio-card - Display audio card and device: <card>,<device>"
echo " et-cat - Show state of CAT control interface"
echo " et-gps - Show state of GPS interface"
echo " et-time - Show if time is synched via GPS"
echo " et-mode - Show current mode"
echo " grid - Current grid square defined by user"
echo " ip - System IP address"
@@ -210,6 +211,15 @@ case $1 in
;;
esac
;;
et-time)
ET_OUT=$(${ET_HOME}/bin/et-time)
if [ $? -eq 0 ]; then
echo "Yes"
else
echo "No"
fi
;;
ip)
hostname -I | awk '{print $1}'
+12
View File
@@ -0,0 +1,12 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 20 November 2024
# Purpose : Set terminal colors to xterm colors
DEFAULT_PROFILE=$(gsettings get org.gnome.Terminal.ProfilesList default)
if [ $? -eq 0 ]; then
# strip single quotes from profile's UUID
PROFILE_UUID=$(echo ${DEFAULT_PROFILE} | sed "s|'||g")
gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:${PROFILE_UUID}/ palette "['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff']"
fi
+20
View File
@@ -0,0 +1,20 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 21 November 2024
# Purpose : Determines if time has been synchronized via GPS
if [ ! -e /dev/et-gps ]; then
et-log "No GPS detected. Can't verify time sync"
exit 1
fi
TRACKING_INFO=$(chronyc tracking | grep GPS)
if [ $? -ne 0 ]; then
et-log "GPS plugged in, but not used for time source. There may an internet connection."
exit 1
fi
et-log "Time appears to be synched via GPS"
echo ""
chronyc tracking | grep time
@@ -5,7 +5,7 @@
"rigctrl": {
"id": "1036",
"baud": "38400",
"ptt": "RTS"
"ptt": "RIG"
},
"notes": [
"05-06 CAT RATE = 38400bps",
@@ -23,7 +23,8 @@
"08-12 DATA BFO = USB",
"11-07 SSB BFO = AUTO",
"For digital operation always set Mode = DATA",
"For digital operation always set WDH = 3000"
"For digital operation always set WDH = 3000",
"For digital operation always set mode to USB"
],
"fieldNotes": [
"Long press [BAND] and select DATA using the VFO knob",
@@ -1,6 +1,7 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 11 October 2024
# Updated : 21 November 2024
# Purpose : Perform tests that can be used by the udev subsystem to aid
# in rule development. This is intended to by used with the PROGRAM
# directive inside of a udev rule.
@@ -26,6 +27,37 @@ test_yaesu_ft891() {
exit 1
}
# Exit with a 0 exit success if, and only if, the currently selected radio
# uses a DigiRig Mobile.
test_digirig_mobile() {
if [ -L "${ET_HOME}/conf/radios.d/active-radio.json" ]; then
ID=$(cat "${ET_HOME}/conf/radios.d/active-radio.json" | jq -r .id)
if [[ "$ID" == "digirig-mobile-no-cat" ]]; then
et-log "Old DigiRig Mobile detected for no CAT device"
exit 0
fi
if [[ "$ID" == "yaesu-ft818nd" ]]; then
et-log "Old DigiRig Mobile detected for FT-818ND"
exit 0
fi
if [[ "$ID" == "yaesu-ft857d" ]]; then
et-log "Old DigiRig Mobile detected for FT-857D"
exit 0
fi
if [[ "$ID" == "yaesu-ft897d" ]]; then
et-log "Old DigiRig Mobile detected for FT-897D"
exit 0
fi
fi
exit 1
}
usage() {
echo "usage: $(basename $0) <radio ID>"
}
@@ -39,6 +71,8 @@ case $1 in
yaesu-ft891)
test_yaesu_ft891
;;
digirig-mobile)
test_digirig_mobile
esac
exit 1
+43
View File
@@ -0,0 +1,43 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 20 November 2024
# Purpose : Install BBS client (Paracon)
set -e
trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
trap 'et-log "\"${last_command}\" command failed with exit code $?."' ERR
VERSION=1.1.0
DOWNLOAD_FILE=paracon_${VERSION}.pyz
BIN_FILE=paracon
INSTALL_DIR=/opt/paracon-${VERSION}
INSTALL_BIN_DIR="${INSTALL_DIR}/bin"
LINK_PATH=/opt/paracon
et-log "Installing BBS client dependencies..."
apt install \
python3 \
-y
et-log "Installing BBS client..."
if [ ! -e ${INSTALL_BIN_DIR} ]; then
et-log "Creating Paracon install directory: ${INSTALL_BIN_DIR}"
mkdir -v -p ${INSTALL_BIN_DIR}
fi
if [ ! -e ${INSTALL_BIN_DIR}/${BIN_FILE} ]; then
URL="https://github.com/mfncooper/paracon/releases/download/v${VERSION}/${DOWNLOAD_FILE}"
et-log "Downloading Paracon: ${URL}"
curl -s -L -o ${BIN_FILE} --fail ${URL}
mv -v ${BIN_FILE} ${INSTALL_BIN_DIR}
fi
chmod 755 ${INSTALL_BIN_DIR}/${BIN_FILE}
[ -e ${LINK_PATH} ] && rm ${LINK_PATH}
ln -s ${INSTALL_DIR} ${LINK_PATH}
stow -v -d /opt paracon -t /usr/local
+2 -1
View File
@@ -2,7 +2,7 @@
#
# Author : Gaston Gonzalez
# Date : 16 March 2024
# Updated : 5 November 2024
# Updated : 22 November 2024
# Purpose : Main installer for EmComm Tools OS Community
. ./env.sh
@@ -38,6 +38,7 @@ exitIfNotRoot
# Install packet tool chain
./install-direwolf.sh
./install-yaac.sh
./install-bbs-client.sh
# Install modems
./install-ardop.sh
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
# Author : Gaston Gonzalez
# Date : 21 November 2024
# Purpose : Test paracon installation
OUT=$(which paracon)
exit $?