In this article, I am going to go through the process of setting up sound in FreeBSD (13.1-RC6, to be precise). All of the credits goes to the FreeBSD Handbook. I am merely just documenting the process.
Determing Correct Drivers
In order for our FreeBSD system to be able to output sound, we need to load the correct drivers. Since, the FreeBSD kernel uses the microkernel architecture, most of the system is dynamically configurable. That is, we can dynamically load different kernel modules depending on the hardware we have. On FreeBSD, kernel modules are loaded via the
kldload(8) command. FreeBSD makes available the
snd_driver module which is essentially a metadriver . It loades all of the common sound drivers so that we can determine which one we need. So let’s use that for our system as well.
# kldload snd_driver
We can now view the contents of
This can give use hints for the required driver sound card. We can have the driver automatically be loaded at boot by telling it to the FreeBSD loader. The configuration for the loader is done in
/boot/loader.conf. Tell it to load our
snd_driver with the
There are various ways we can test if sound is working on our system. Since all we care is that the sound card is able to output sound, we can use the
/dev/dsp device node to test this. We can send any data to that device file and the speakers will produce sound.
cat <(echo "hello") > /dev/dsp
It is to be noted that, the
/dev/dsp devices won’t show up in the output of
ls as they’re created automatically when needed.