FreeBSD amd64 GENERIC kernel

Hans Petter Selasky hps at
Thu Dec 14 08:38:39 UTC 2017

On 12/14/17 08:20, blubee blubeeme wrote:
> On Thu, Dec 14, 2017 at 1:57 PM, Shane Ambler <FreeBSD at> wrote:
>> On 14/12/2017 01:22, blubee blubeeme wrote:
>>> What sources do kernel modules pull in?
>>> I'm looking at the generic kernel config for am64:
>>> # Sound support
>>> device sound # Generic sound driver (required)
>>> device snd_cmi # CMedia CMI8338/CMI8738
>>> device snd_csa # Crystal Semiconductor CS461x/428x
>>> device snd_emu10kx # Creative SoundBlaster Live! and Audigy
>>> device snd_es137x # Ensoniq AudioPCI ES137x
>>> device snd_hda # Intel High Definition Audio
>>> device snd_ich # Intel, NVidia and other ICH AC'97 Audio
>>> device snd_via8233 # VIA VT8233x Audio
>>> The device "sound" is required, does that mean if I totally uncomment out
>>> all the device including sound, then the machine won't boot?
>>> Does required mean a breaking kernel or just no sound?
>> Required means any of the following snd_* devices require it to build.
>> Commenting all devices you have listed results in a kernel that allows
>> the module from audio/oss to be loaded.
>> Having experimented with this a few days ago - while the sound and snd_*
>> loadable modules are built, they are also permanently linked into the
>> generic kernel which means we can't unload them after startup or prevent
>> them loading in loader.conf, so to use the audio/oss kernel module a
>> custom kernel needs to be built with these disabled.
>> It is also possible to add
>> WITHOUT_MODULES=sound snd_cmi snd_csa snd_emu10kx snd_es137x snd_hda
>> snd_ich snd_via8233
>> to /etc/make.conf.
>> Note that this leads to a generic kernel without sound that can be
>> confusing later when you have forgotten. I would recommend using the
>> custom kernel config with a descriptive name "ident NO_SOUND" so that
>> later you know why sound stops working.
>> I like to keep generic installed as kernel and give custom kernels
>> different names -
>> make buildkernel KERNCONF=NO_SOUND
>> make installkernel KERNCONF=NO_SOUND KODIR=/boot/kernel.no_sound
>> Add kernel="kernel.no_sound" to loader.conf to load it at boot.
>> Add kernels="kernel,kernel.no_sound" to easily choose between them in
>> the boot screen.
>> I must admit to a lack of documentation regarding the install and use of
>> audio/oss. While I didn't get far with config, I can contribute the
>> above to installation.
>> --
>> FreeBSD - the place to B...Software Developing
>> Shane Ambler
>> Hi Shane
> thanks for the tips, I just built a kernel with all of those sound drivers
> commented out.
> There was no problem, except for the total lack of sound, which is expected.
> My sound does make that default *beep* when I delete on an empty terminal
> though.
> My goal is to port OSS 4.2 to get rid of all the patches and legacy OSS
> stuff.
> OSS has ALSA emulation so I should be able to test /ports/audio packages
> to see what needs patching, updating etc...
> Once OSS 4.2 is in FreeBSD then I can work on adding OSS backends for
> Chromium
> and other software that I use.
> Chromium OSS feature request from 2009:
> Would they still accept an OSS backend today?


Most OSS v4 IOCTLs are supported by the in-base sound stack at 
/sys/dev/sound . Further there is a ALSA to OSS wrapper in 
audio/alsa-lib and audio/alsa-plugins which Chromium can use.

Making audio/oss the default audio stack in FreeBSD will not make most 
FreeBSD users happy. This port is intended for studio professionals 
which buy $1000 PCI audio devices for audio production. Now with the 
advent of HighSpeed USB and SuperSpeed USB audio, there is no real need 
to invest in an expensive PCI device unless you need to do realtime 
audio processing. Further a lot of audio equipment also comes with an 
ethernet plug :-)  Just FYI!


More information about the freebsd-multimedia mailing list