deploy: hardware-instance templating, wlan0 boot watchdog, deploy-time warnings in Cockpit

- deploy.conf templates interface names/USB IDs (@TOKEN@ substitution) across
  ap/* configs so a dongle swap only needs deploy.conf edited, not the repo
  configs themselves; drops ap/rtw88.conf (old 2.4GHz dongle retired for the
  DWA-171, which needs no such power-save override).
- failover/van-wlan-watchdog: recovers wlan0 from NM's post-boot no-secrets
  wedge (a boot-time supplicant race, not a real credential failure).
- deploy.sh: warn() collects dependency/config warnings (missing python3-gps,
  python3-paho-mqtt, mobile-broadband-provider-info, grpcurl, gpsd; netplan
  drift; unedited example configs) into /var/lib/vanlink/deploy-warnings.json,
  rendered as an amber Cockpit card so they're visible without reading deploy
  output.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Andreas Wrede
2026-08-01 11:25:11 -04:00
co-authored by Claude Sonnet 5
parent 8d5415f326
commit 5d88e1b30c
16 changed files with 401 additions and 63 deletions
+26
View File
@@ -0,0 +1,26 @@
# deploy.conf — hardware-instance identifiers for this Pi's vanlink deployment.
#
# These are the values that change when a USB Wi-Fi dongle, LAN adapter, or
# modem gets physically swapped (MAC-derived interface names are stable per
# physical device, but change when the device changes). Edit here and run
# `sudo ./deploy.sh` — it substitutes @TOKEN@ placeholders in the repo's
# config templates with these values before installing them.
#
# Find a new device's interface name after plugging it in: `iw dev` (wifi) or
# `ip -br link` (wired). USB vendor ID: `lsusb`.
# Preview a rendered file without deploying: `sudo ./deploy.sh render <file>`
# 5GHz AP radio (currently: Realtek RTL8852BU, driver rtw89_8852bu)
WIFI_5G_IFACE=wlxc83a35a4ee55
# 2.4GHz AP radio (currently: D-Link DWA-171, RTL8821CU, driver rtw88_8821cu)
WIFI_2G_IFACE=wlx3c3332002066
# Wired LAN port, USB-attached gigabit adapter (RTL8153-family)
LAN_USB_IFACE=enx00e04c331140
# Starlink dish uplink, USB-attached gigabit adapter (RTL8153-family)
STARLINK_IFACE=enxd8ec5eeb3512
# Cellular modem USB vendor ID (Quectel EC25-AF)
MODEM_USB_VENDOR=2c7c