From 9ebd19ab522d280f2717b8510d859e1dd8d7ee21 Mon Sep 17 00:00:00 2001 From: Hermes Agent service account Date: Wed, 29 Jul 2026 22:17:29 -0500 Subject: [PATCH] =?UTF-8?q?jmri:=20remove=20udev=20symlink=20phase=20?= =?UTF-8?q?=E2=80=94=20JMRI=20uses=20/dev/ttyACM*=20natively?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ansible/roles/jmri/defaults/main.yml | 10 -------- ansible/roles/jmri/tasks/main.yml | 20 --------------- .../jmri/templates/99-jmri-devices.rules.j2 | 25 ------------------- 3 files changed, 55 deletions(-) delete mode 100644 ansible/roles/jmri/templates/99-jmri-devices.rules.j2 diff --git a/ansible/roles/jmri/defaults/main.yml b/ansible/roles/jmri/defaults/main.yml index b563ddc..dd66a4f 100644 --- a/ansible/roles/jmri/defaults/main.yml +++ b/ansible/roles/jmri/defaults/main.yml @@ -44,15 +44,5 @@ jmri_monitor_quiet_start: 1 # hour (24h) to stop polling jmri_monitor_quiet_end: 10 # hour (24h) to resume polling jmri_monitor_stop_delay: 30 # seconds of OFF state before stopping JMRI -# --------------------------------------------------------------------------- -# USB device identification (ENV{ID_SERIAL} from udev — the segment of the -# by-id symlink name before the -ifNN suffix) -# --------------------------------------------------------------------------- -# LocoBuffer-NG (LocoNet bridge) → /dev/jmri/loconet -jmri_dev_loconet_serial: "RR-CirKits_LocoBuffer-NG_CDC_ACM_SERIAL_DEVICE_AA5700218A" -# NCE command station → /dev/jmri/nce ← triggers service start/stop -jmri_dev_nce_serial: "Microchip_Technology_Inc._Simple_CDC_Device_Demo" -# FTDI LCC interface → /dev/jmri/lcc -jmri_dev_lcc_serial: "ftdi_usb_serial_converter_ftDYQHZX" diff --git a/ansible/roles/jmri/tasks/main.yml b/ansible/roles/jmri/tasks/main.yml index 611f225..75c882f 100644 --- a/ansible/roles/jmri/tasks/main.yml +++ b/ansible/roles/jmri/tasks/main.yml @@ -36,26 +36,6 @@ groups: dialout append: true -# --------------------------------------------------------------------------- -# Phase 1 — Stable udev device symlinks -# Creates /dev/jmri/nce, /dev/jmri/loconet, /dev/jmri/lcc -# --------------------------------------------------------------------------- -- name: Create /dev/jmri symlink directory (static — survives reboots) - ansible.builtin.file: - path: /etc/jmri - state: directory - owner: root - group: root - mode: '0755' - -- name: Deploy udev rules for stable JMRI device symlinks - ansible.builtin.template: - src: 99-jmri-devices.rules.j2 - dest: /etc/udev/rules.d/99-jmri-devices.rules - owner: root - group: root - mode: '0644' - notify: Reload udev # --------------------------------------------------------------------------- # Phase 2 — LocoNet traffic monitor diff --git a/ansible/roles/jmri/templates/99-jmri-devices.rules.j2 b/ansible/roles/jmri/templates/99-jmri-devices.rules.j2 deleted file mode 100644 index 4e56a68..0000000 --- a/ansible/roles/jmri/templates/99-jmri-devices.rules.j2 +++ /dev/null @@ -1,25 +0,0 @@ -# /etc/udev/rules.d/99-jmri-devices.rules -# Managed by Ansible — do not edit manually. -# -# Creates stable /dev/jmri/* symlinks for all three JMRI serial interfaces. -# Uses ID_SERIAL (full serial string) to match by-id symlink identity, -# so device numbering (ttyACM0, ttyACM1, etc.) doesn't matter after reboots. -# Ownership: root:dialout mode 0660 — jmri user is a member of dialout. - -# NCE command station (Microchip CDC) -# Appears when layout is powered on; disappears when layout powers off. -SUBSYSTEM=="tty", ENV{ID_SERIAL}=="{{ jmri_dev_nce_serial }}", \ - SYMLINK+="jmri/nce", \ - GROUP="dialout", MODE="0660" - -# RR-CirKits LocoBuffer-NG (LocoNet bridge) -# USB-powered — always present when server is running. -SUBSYSTEM=="tty", ENV{ID_SERIAL}=="{{ jmri_dev_loconet_serial }}", \ - SYMLINK+="jmri/loconet", \ - GROUP="dialout", MODE="0660" - -# FTDI USB serial (LCC interface) -# USB-powered — always present when server is running. -SUBSYSTEM=="tty", ENV{ID_SERIAL}=="{{ jmri_dev_lcc_serial }}", \ - SYMLINK+="jmri/lcc", \ - GROUP="dialout", MODE="0660"