From 48ebdf1d9ea4fd3a7225af60013d4a32546e09ee Mon Sep 17 00:00:00 2001 From: Gaston Gonzalez Date: Thu, 10 Oct 2024 04:37:22 -0700 Subject: [PATCH] PnP - This is a WiP. Set shell to /bin/bash for new users; Added radio model to Conky display; Added initial rigctld wrapper script; Added active-radio command to et-system-info; Fixed missing ET_HOME env variable in rigctld wrapper; Added et user; Added CAT controller installer --- overlay/etc/adduser.conf | 2 +- overlay/etc/skel/.conkyrc | 10 ++++++---- overlay/etc/udev/rules.d/80-et-ic705.rules | 8 +++++--- overlay/lib/systemd/system/rigctld.service | 12 ++++++++++++ overlay/opt/emcomm-tools/bin/et-system-info | 17 +++++++++++++---- .../opt/emcomm-tools/sbin/wrapper-rigtctld.sh | 9 +++++---- scripts/configure-user.sh | 6 +++++- scripts/install-cat.sh | 12 ++++++++++++ scripts/install.sh | 3 ++- 9 files changed, 61 insertions(+), 18 deletions(-) create mode 100644 overlay/lib/systemd/system/rigctld.service create mode 100755 scripts/install-cat.sh diff --git a/overlay/etc/adduser.conf b/overlay/etc/adduser.conf index 47cc83b..f2beb6d 100644 --- a/overlay/etc/adduser.conf +++ b/overlay/etc/adduser.conf @@ -7,7 +7,7 @@ # The DSHELL variable specifies the default login shell on your # system. -#DSHELL=/bin/bash +DSHELL=/bin/bash # The DHOME variable specifies the directory containing users' home # directories. diff --git a/overlay/etc/skel/.conkyrc b/overlay/etc/skel/.conkyrc index 8c95f96..b22835a 100644 --- a/overlay/etc/skel/.conkyrc +++ b/overlay/etc/skel/.conkyrc @@ -17,15 +17,17 @@ conky.config = { }; conky.text = [[ -${font DejaVu Sans Mono:size=14}${alignc}${time %A, %B %d %Y} +${font DejaVu Sans Mono:size=12}${alignc}${time %A, %B %d %Y} Local: ${alignr}${time %H:%M:%S} UTC: ${alignr}${tztime UTC %H:%M:%S} Uptime: ${uptime} IP: ${execpi 60 /opt/emcomm-tools/bin/et-system-info ip} -${execp /opt/emcomm-tools/bin/et-system-info release} -CAT: ${execpi 15 /opt/emcomm-tools/bin/et-system-info et-cat} -GPS: ${execpi 15 /opt/emcomm-tools/bin/et-system-info et-gps} +Radio: ${execpi 10 et-system-info active-radio} +CAT : ${execpi 10 et-system-info et-cat} +GPS : ${execpi 10 et-system-info et-gps} + +${font DejaVu Sans Mono:size=10}${alignc}${execp /opt/emcomm-tools/bin/et-system-info release} ]]; diff --git a/overlay/etc/udev/rules.d/80-et-ic705.rules b/overlay/etc/udev/rules.d/80-et-ic705.rules index edfa36d..9102f96 100644 --- a/overlay/etc/udev/rules.d/80-et-ic705.rules +++ b/overlay/etc/udev/rules.d/80-et-ic705.rules @@ -1,6 +1,6 @@ # Author : Gaston Gonzalez # Date : 28 September 2024 -# Updated : 5 October 2024 +# Updated : 9 October 2024 # Purpose : udev rules for the Icom IC-705 # # Preconditions: @@ -9,6 +9,7 @@ # Postconditions: # 1. /dev/et-cat created # 2. /dev/et-gps created +# 3. rigctld is started # # Resources # - https://www.florian-wolters.de/posts/ic705-serial-device-symlinks/ @@ -21,12 +22,13 @@ KERNEL=="ttyACM[0-9]*", SUBSYSTEM=="tty", ATTRS{product}=="IC-705", \ # Create consistent device name/path for the CAT serial device ENV{ET_DEVICE}=="IC-705", SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="00", \ ACTION=="add", \ - ENV{ET_SUBDEVICE}="CAT", GROUP="dialout", MODE="0660", SYMLINK+="et-cat" + ENV{ET_SUBDEVICE}="CAT", GROUP="dialout", MODE="0660", SYMLINK+="et-cat", \ + RUN+="/opt/emcomm-tools/sbin/wrapper-rigtctld.sh start" # Create consistent device name/path for the GPS serial device ENV{ET_DEVICE}=="IC-705", SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="02", \ ACTION=="add", \ ENV{ET_SUBDEVICE}="GPS", GROUP="dialout", MODE="0660", SYMLINK+="et-gps", \ - RUN+="/opt/emcomm-tools/sbin/wrapper-gpsd.sh start" + RUN+="/usr/bin/systemctl start rigctld" # TODO: Add rules for sound card diff --git a/overlay/lib/systemd/system/rigctld.service b/overlay/lib/systemd/system/rigctld.service new file mode 100644 index 0000000..27a0636 --- /dev/null +++ b/overlay/lib/systemd/system/rigctld.service @@ -0,0 +1,12 @@ +[Unit] +Description=rigctld service +ConditionPathExists=/dev/et-cat +After=multi-user.target + +[Service] +User=et +ExecStart=/opt/emcomm-tools/sbin/wrapper-rigtctld.sh start +SuccessExitStatus=143 + +[Install] +WantedBy=multi-user.target diff --git a/overlay/opt/emcomm-tools/bin/et-system-info b/overlay/opt/emcomm-tools/bin/et-system-info index 3deac37..f801e19 100755 --- a/overlay/opt/emcomm-tools/bin/et-system-info +++ b/overlay/opt/emcomm-tools/bin/et-system-info @@ -2,14 +2,16 @@ # # Author : Gaston Gonzalez # Date : 6 October 2024 +# Updated : 10 October 2024 # Purpose : Utility script for dumping system information function usage() { echo "Usage: $(basename $0) " - echo " et-cat - Is CAT control connected" - echo " et-gps - Is the GPS connected" - echo " ip - System IP address" - echo " release - EmComm Tools Release" + echo " active-radio - Display model of active radio" + echo " et-cat - Is CAT control connected" + echo " et-gps - Is the GPS connected" + echo " ip - System IP address" + echo " release - EmComm Tools Release" } if [ $# -ne 1 ]; then @@ -18,6 +20,13 @@ if [ $# -ne 1 ]; then fi case $1 in + active-radio) + if [ -L "${ET_HOME}/conf/radios.d/active-radio.json" ]; then + cat /opt/emcomm-tools/conf/radios.d/active-radio.json | jq -r .model + else + echo "None" + fi + ;; et-cat) if [ -e /dev/et-cat ]; then echo "Yes"; else echo "No"; fi ;; diff --git a/overlay/opt/emcomm-tools/sbin/wrapper-rigtctld.sh b/overlay/opt/emcomm-tools/sbin/wrapper-rigtctld.sh index 17de7be..150b6f0 100755 --- a/overlay/opt/emcomm-tools/sbin/wrapper-rigtctld.sh +++ b/overlay/opt/emcomm-tools/sbin/wrapper-rigtctld.sh @@ -4,20 +4,21 @@ # Date : 9 October 2024 # Purpose : Wrapper startup/shutdown script around systemd/rigctld +ET_HOME=/opt/emcomm-tools ACTIVE_RADIO="${ET_HOME}/conf/radios.d/active-radio.json" CAT_DEVICE=/dev/et-cat do_full_auto() { - et-log "Found ET_DEVICE=$ET_DEVICE" + et-log "Found ET_DEVICE='${ET_DEVICE}'" case "$1" in IC-705) - echo "Automatically configuring $1.." + echo "Automatically configuring $1..." if [ -L ${ACTIVE_RADIO} ]; then rm -v ${ACTIVE_RADIO} fi - ln -v -s /opt/emcomm-tools/conf/radios.d/icom-ic705.json ${ACTIVE_RADIO} + ln -v -s ${ET_HOME}/conf/radios.d/icom-ic705.json ${ACTIVE_RADIO} ;; *) et-log "Full auto configuration not available for ET_DEVICE=$1" @@ -40,7 +41,7 @@ start() { fi if [ ! -L ${ACTIVE_RADIO} ]; then - et-log "No active defined. ${ACTIVE_RADIO} symlink is missing." + et-log "No active radio defined. ${ACTIVE_RADIO} symlink is missing." exit 1 fi diff --git a/scripts/configure-user.sh b/scripts/configure-user.sh index 5dc8d24..07f8890 100755 --- a/scripts/configure-user.sh +++ b/scripts/configure-user.sh @@ -6,10 +6,14 @@ # Purpose : Configure users and groups set -e +ET_GID=1981 + et-log "Adding '${ET_GROUP}' group..." -groupadd -g 1981 ${ET_GROUP} +groupadd -g ${ET_GID} ${ET_GROUP} et-log "Configuring users..." +et-log "Adding et system user..." +useradd -m -s /bin/bash et cp -r ../overlay/etc/skel /etc/ [ ! -e /etc/skel/Desktop ] && mkdir /etc/skel/Desktop diff --git a/scripts/install-cat.sh b/scripts/install-cat.sh new file mode 100755 index 0000000..07460cd --- /dev/null +++ b/scripts/install-cat.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# +# Author : Gaston Gonzalez +# Date : 9 October 2024 +# Purpose : Install script for CAT control + +et-log "Updating CAT control systemd script..." +cp ../overlay/lib/systemd/system/rigctld.service /lib/systemd/system/ +systemctl daemon-reload + +et-log "Disable automatic start of rigctl..." +systemctl disable rigctld diff --git a/scripts/install.sh b/scripts/install.sh index 4807a74..9e70bdf 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -2,7 +2,7 @@ # # Author : Gaston Gonzalez # Date : 16 March 2024 -# Updated : 6 October 2024 +# Updated : 9 October 2024 # Purpose : Main installer for EmComm Tools OS Community . ./env.sh @@ -31,5 +31,6 @@ exitIfNotRoot ./install-udev.sh ./install-gps.sh ./install-navit.sh +./install-cat.sh ./install-conky.sh