audioctl(1) on Solnix vs Linux and the BSDs
On Solnix, audioctl is the illumos /usr/bin/audioctl, a subcommand-style mixer tool (list-devices, show-control, set-control and so on). The OpenBSD and NetBSD audioctl are flag-driven tools that read and set driver variables with name[=value] arguments, so scripts are not portable between them. Linux has no counterpart page in the bundle.
The manual pages
- Solnix: audioctl(1) from
pkgs.solnix.illumos-world-man· illumos.org - OpenBSD: audioctl(8) 8.0
- NetBSD: audioctl(1) 11.0
What Solnix runs
A default Solnix system runs the illumos audioctl at /usr/bin/audioctl. No other variants are shipped. It controls mixer settings such as playback volume and record gain.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| OpenBSD, NetBSD | command syntax | Solnix audioctl uses subcommands (list-devices, show-device, show-control, set-control, save-controls, load-controls, help). OpenBSD and NetBSD take variable names or name=value pairs directly, with no subcommands. A BSD invocation like 'audioctl rate=48000' does not map onto Solnix. Source: Solnix audioctl(1) SYNOPSIS; OpenBSD audioctl(8) SYNOPSIS; NetBSD audioctl(1) SYNOPSIS |
| OpenBSD, NetBSD | what is controlled | Solnix audioctl controls mixer settings such as playback volume and record gain. NetBSD audioctl sets the playback and recording format seen by software, not the hardware format. OpenBSD audioctl gets or sets audio driver variables such as rate, encoding and blksz. Source: Solnix audioctl(1) DESCRIPTION; NetBSD audioctl(1) DESCRIPTION; OpenBSD audioctl(8) variable table |
| OpenBSD, NetBSD | -d meaning | Solnix -d selects the audio device for show-device, show-control, set-control, save-controls and load-controls. NetBSD -d also gives the audio control device. OpenBSD has no -d and uses -f file for the device.Source: Solnix audioctl(1) SYNOPSIS; NetBSD audioctl(1) SYNOPSIS, -d; OpenBSD audioctl(8) -f |
| OpenBSD, NetBSD | -f meaning | On Solnix, -f is an option of save-controls only; its effect is not described in the page. On OpenBSD, -f file names the control device. On NetBSD, -f is the old form of the device option and will eventually be removed.Source: Solnix audioctl(1) SYNOPSIS (save-controls); OpenBSD audioctl(8) -f; NetBSD audioctl(1) COMPATIBILITY |
| OpenBSD, NetBSD | -w meaning and -n | Solnix has no -w or -n. OpenBSD -w wait redisplays variables every wait seconds. NetBSD -w sets variables from name=value arguments. Both BSDs use -n to suppress the variable name in output.Source: Solnix audioctl(1) SYNOPSIS; OpenBSD audioctl(8) -w, -n; NetBSD audioctl(1) -w, -n |
| OpenBSD, NetBSD | verbose and quiet flags | Solnix -v is accepted by show-device, show-control and set-control. The page does not describe its effect. OpenBSD has -q to suppress output when setting a variable. NetBSD has -a to print all variables. Solnix has neither.Source: Solnix audioctl(1) SYNOPSIS; OpenBSD audioctl(8) -q; NetBSD audioctl(1) -a |
| NetBSD | default device environment variable | Solnix reads AUDIODEV for the default device, and uses /dev/audio if it is unset. NetBSD reads AUDIOCTLDEVICE, with a final default of /dev/audioctl0. OpenBSD documents no environment variable and defaults to /dev/audioctl0. Source: Solnix audioctl(1) ENVIRONMENT VARIABLES; NetBSD audioctl(1) ENVIRONMENT; OpenBSD audioctl(8) -f |
| OpenBSD, NetBSD | saving and restoring state | Solnix has save-controls and load-controls to write and read a state file. The OpenBSD and NetBSD pages describe no equivalent. Source: Solnix audioctl(1) SYNOPSIS, ATTRIBUTES; OpenBSD audioctl(8) SYNOPSIS; NetBSD audioctl(1) SYNOPSIS |
| OpenBSD, NetBSD | output stability | Solnix display output is Not An Interface, so do not parse it. The subcommands are Committed, and control names, values and device names are Uncommitted. The BSD pages make no such statement. Source: Solnix audioctl(1) ATTRIBUTES |
| NetBSD | scripting advice | NetBSD warns that its audioctl parameters are global and can change if another application uses the device. It says audioplay(1) and audiorecord(1) are safer for scripting. The Solnix page has no such caveat. Source: NetBSD audioctl(1) CAVEATS; Solnix audioctl(1) DESCRIPTION |
Standards
- POSIX: audioctl is not a POSIX.1-2024 utility.
- Solnix: The audioctl command and its subcommands are Committed. Control names, values and device names are Uncommitted. The display output is Not An Interface. The state-file format used by save-controls and load-controls is Committed Private.
Writing portable scripts
- Do not share audioctl invocations across Solnix and the BSDs: the syntax differs completely. Wrap each in a per-OS branch.
- Do not parse Solnix audioctl display output: the manual marks it Not An Interface.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.