Some ideas (on 14.4p5 and 15.0p9) for working sound:
You don't say what programs you want to use for audio,
so I will offer general advice on how I got my
stuff working.
rc.conf:
sndiod_enable="YES"
pipewire_enable="YES"
virtual_oss_enable="YES"
The pipewire/sndiod entries may be optional, but some software had
an option to use it. The virtual_oss is what I rely on.
I use mixertui to select/set devices for default. It's in pkg/ports.
I also use this shell script to set a default for virtual_oss:
==============
#!/bin/sh
#
# Set the virtual oss device defaults
# to the dsp number passed, usually for the speakerphone.
#
DEV=${1}
if [ "x${1}" = "x" ]; then
DEV=6
fi
virtual_oss_cmd /dev/dsp.ctl -P /dev/dsp${DEV}
virtual_oss_cmd /dev/dsp.ctl -R /dev/dsp${DEV}
virtual_oss_cmd /dev/dsp.ctl
===========
Call it with the number 0 for pcm0 as the requested default device:
$ ./set-speakerphone.sh 0
I usually use both the script and mixertui before I
start chromium for a jitsi meeting. One must sacrifice
the correct number of chickens after all.
The most important item is to make sure that the ports
or packages you install are compiled with the proper
sound system support. This is what usually bites me
in the bottom trying to get sound working. So go
check the OPTIONS in make config and confirm that
the sound subsystem (e.g. pulseaudio) is actually compiled
in to the software you want to use.
For example, my poudriere build of chromium has these
options:
% pkg info chromium
chromium-146.0.7680.164_2
Name : chromium
Version : 146.0.7680.164_2
Installed on : Sat Apr 11 20:14:01 2026 PDT
Origin : www/chromium
Architecture : FreeBSD:14:amd64
Prefix : /usr/local
Categories : wayland www
Licenses : BSD3CLAUSE, LGPL21, MPL11
Maintainer : chro...@FreeBSD.org
WWW :
https://www.chromium.org/Home
Comment : Google web browser based on WebKit
Options :
ALSA : on
CODECS : on
CUPS : on
DEBUG : off
DRIVER : on
HEIMDAL : off
HEIMDAL_BASE : off
KERBEROS : on
LTO : off
MIT : off
PIPEWIRE : on
PULSEAUDIO : on
SNDIO : on
TEST : off
WIDEVINE : off
...
I recall some packages from the FreeBSD repositories
not having some common sound subsystems compiled in
as OPTIONS and had to rebuild them myself.
Anyway, using mixertui/virtual_oss before starting chromium
for a meeting allows for a speakerphone to be used easily.
Otherwise the laptop microphone and speaker will also
work when specified.
Hope this helps,
Mark