Reorganize the repo so it can rebuild the audio hub on any Pi, not just the live `adac` box: - README.md: now a project landing page (overview, repo map, deploy summary) instead of the adac-specific maintenance guide. - MAINTENANCE.md: the "how it's wired / day-to-day upkeep" guide, genericized with <pi-host>/<pi-ip>/<lan-cidr>/<desktop-host> placeholders. - config/: the actual PipeWire/WirePlumber drop-ins as deploy-ready templates (<VOLT_SOURCE>/<VOLT_SINK>/<LAN_CIDR> placeholders, with the commands to resolve them in each file's header comment). - systemd/bt-agent.service, firmware/config.txt.snippet: the remaining deployable artifacts. - instances/adac.md: the live deployment's real values (host, IP, Volt serial, paired phones, history) — the one place machine-specific data lives. - RUNBOOK.md: replace the hardcoded LAN subnet with <lan-cidr>. - root-README.md: genericized; .gitignore keeps local harness settings out. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.2 KiB
Don't manage audio from the root account
This Pi is a PipeWire audio hub, but the audio system does not run as root. It
runs as the user account (uid 1000). PipeWire is a per-user service, so
pactl, wpctl, bluetoothctl, and systemctl --user only work when you are
logged in as user — run as root they talk to an empty session and everything
looks broken even when it's fine.
Log in as user instead
ssh user@<pi-host>.local # or: ssh user@<pi-ip>
Then read /home/user/README.md — that's the maintenance guide explaining how
the whole system is wired together and how to keep it running.
If you are already stuck at a root shell
You can reach the audio session without logging out by prefixing commands:
sudo -u user XDG_RUNTIME_DIR=/run/user/1000 pactl info
But prefer just logging in as user. Root is only needed for the handful of
system-level pieces (Bluetooth daemon, Avahi, firmware config in
/boot/firmware/config.txt); those are documented in /home/user/README.md too.
This file is deployed to
/root/README.mdon the Pi. In the project repo it'sroot-README.md; the maintenance guide it points to isMAINTENANCE.md.