jmri: deploy udev rules for stable /dev/jmri/* symlinks

Rules were documented but never deployed — /dev/jmri/nce was missing
entirely, only /dev/jmri/loconet existed (created manually).

Adds:
- templates/99-jmri-devices.rules.j2: LocoBuffer-NG -> loconet,
  NCE Power Pro (Microchip CDC) -> nce
- Task to deploy rules + trigger udev settle
- Trigger udev handler (reload-rules alone is insufficient)
This commit is contained in:
Hermes Agent service account
2026-08-01 21:18:06 -05:00
parent 02af5d26dc
commit 63b0bc72fe
3 changed files with 35 additions and 0 deletions

View File

@@ -3,6 +3,10 @@
ansible.builtin.command: udevadm control --reload-rules
changed_when: false
- name: Trigger udev
ansible.builtin.command: udevadm trigger --subsystem-match=tty
changed_when: false
- name: Reload systemd
ansible.builtin.systemd:
daemon_reload: true

View File

@@ -43,6 +43,27 @@
groups: dialout
append: true
# ---------------------------------------------------------------------------
# Phase 1 — Stable USB device symlinks
# Creates /dev/jmri/loconet and /dev/jmri/nce via udev ID_SERIAL matching.
# ---------------------------------------------------------------------------
- name: Create /dev/jmri directory (udev will populate it)
ansible.builtin.file:
path: /dev/jmri
state: directory
mode: '0755'
- name: Deploy udev rules for JMRI USB devices
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
- Trigger udev
# ---------------------------------------------------------------------------
# Phase 2 — LocoNet traffic monitor

View File

@@ -0,0 +1,10 @@
# JMRI USB device symlinks — managed by Ansible, do not edit manually.
# Creates stable /dev/jmri/* symlinks regardless of USB enumeration order.
# LocoNet interface — RR-CirKits LocoBuffer-NG
SUBSYSTEM=="tty", ENV{ID_SERIAL}=="RR-CirKits_LocoBuffer-NG_CDC_ACM_SERIAL_DEVICE_AA5700218A", \
SYMLINK+="jmri/loconet", MODE="0666"
# NCE command station — Microchip CDC (Power Pro)
SUBSYSTEM=="tty", ENV{ID_SERIAL}=="Microchip_Technology_Inc._Simple_CDC_Device_Demo", \
SYMLINK+="jmri/nce", MODE="0666"