AFRN (AlterFRN client)
The AlterFRN gateway client was hamctl’s first service. Its manifest exposes the full
frnconsole.cfg as INI sections, plus the sound maps as editable tables and the sound
directories as managed file sets.
Install
hamctl install afrn # downloads the matching arch tarball + unpacks it
This uses the manifest’s [install] block (a download method) to fetch the right
per-architecture build of the AFRN client from the official site and unpack it into
place. See Installing payloads.
What you can edit
frnconsole.cfg— every active setting, as INI sections, with types/enums/help derived from the official manual. Comments are preserved; only changed values are rewritten. (Keys that ship commented-out, like thePTT=/COS=device lines, are edited in the file directly — the editor only rewrites existing uncommented lines.)connsounds/rogersounds— connection/roger sound maps, edited as responsive paginated record tables.- Sound directories — browse, upload, replace, and delete the
.wavfiles the config references, via managed file sets. - Audio devices —
Input device/Output deviceoffer a picker of the host’s detected ALSA devices (e.g.ALSA:default,ALSA:plughw:1,0); you can still type a value.
Notes
- Per-arch binaries are selected by a
binary_globwith the{arch}token. - Multiple sound directories are supported; a
file-typed column offers a suggestion list of what exists on disk. - hamctl runs the client with
-p(no PID file); see the crash-loop note below.
Troubleshooting
FATAL: Audio is not responding: check your sound card or power supply — the client
opened the audio device but no samples flowed. The usual cause is a freshly-enabled
codec whose mixer comes up muted: playback defaults on, but capture switches default
off, so the RX stream is silent. Enable a capture source and persist it:
amixer -c0 set 'Line In Capture Switch' on # or 'Mic1 Capture Switch' for a mic
amixer -c0 set 'ADC Gain Capture' 5
alsactl store 0 # survive reboot
On boards with no sound hardware at all (/proc/asound/cards → “no soundcards”), plug a
USB audio adapter or enable the SoC codec — e.g. on Allwinner/Armbian add analog-codec
to overlays= in /boot/armbianEnv.txt and reboot.
Crash-loop with FRN client already running? (check /var/run/frnclient.pid) — a stale
PID file from a previous crash. hamctl now launches the client with -p/--nopidfile and
also lists the PID file under [run] cleanup, so it is cleared before each (re)launch.
If you hit this on an older build, rm /run/frnclient.pid and restart the service.