Pi-Star digital-voice stack
hamctl can act as an on-device configurator for the Pi-Star digital-voice stack — MMDVMHost and the mode gateways/bridges — editing the real config files and controlling the existing systemd units.
Shipped manifests: mmdvmhost, dmrgateway, ysfgateway, dgidgateway, m17gateway,
nxdngateway, p25gateway, ysf2nxdn, ysf2p25, aprsgateway, dapnetgateway,
timeserver. WiFi scalars (wpa-supplicant) appear under OS Configuration.
On a Pi-Star device
Set in hamctl.toml:
use_systemd = true
config_root = "/etc" # manifests use {root}/mmdvmhost, etc.
log_root = "/var/log/pi-star" # for the Activity feed
Each service’s form edits /etc/<name> in place (comments preserved, only changed lines
rewritten, secrets shown as password fields), and Start/Stop/Restart drive
systemctl … <service-id>.service. Because the config files already exist on a Pi-Star
image, these services show as installed immediately.
On a plain Linux box
The MMDVM stack is published by upstream as source only (no binary releases), so
those services declare a build [install] recipe — hamctl install mmdvmhost
clones and compiles from source. Install the build dependencies first:
sudo apt-get install -y build-essential git nlohmann-json3-dev libmosquitto-dev
hamctl install mmdvmhost preflight-checks these and won’t build until they’re present.
See Installing payloads for the full
breakdown.
Conventions
- Each manifest’s
idequals the systemd unit basename; there’s no[run]block (the daemons are installed/run separately). - Pi-Star booleans are the literals
1/0(type = "bool",true_value = "1",false_value = "0"); secrets usetype = "password". - The section-less D-Star files are handled with
ini_section = ""virtual sections. - Expert/hardware sections (modem, displays) are clearly labelled. The modem
Portoffers a serial-device picker of the host’s detected ports (/dev/ttyACM0,/dev/serial/by-id/…).
Monitoring
MMDVMHost’s log is the single all-mode activity source: its manifest carries the
lastheard and modem status monitors that power the Activity page.