8 to 9: Kernel modularization -- did it change?

Alex Goncharov alex-goncharov at comcast.net
Fri Feb 17 16:04:04 UTC 2012


,--- You/matt (Fri, 17 Feb 2012 07:31:03 -0800) ----*
| It's in the kernel in later versions of 9-CURRENT and in 9-RELEASE on.
| 
| You can't kldload or unload it because it's not a module, but part of
| the kernel.
| That doesn't preclude the presence of the file, I think.
| 
| 'kldstat -v | less' should show you what's "in there".

Thanks, indeed:

----------------------------------------
uname -sr; echo ==; kldstat | grep hda; echo ==; kldstat -v | grep hda
=>
FreeBSD 8.2-STABLE
==
11    1 0xffffffff81039000 14580    snd_hda.ko
==
11    1 0xffffffff81039000 14580    snd_hda.ko (/boot/kernel/snd_hda.ko)
	456 hdac/snd_hda_pcm
	457 pci/snd_hda
----------------------------------------

uname -sr; echo ==; kldstat | grep hda; echo ==; kldstat -v | grep hda
=>
FreeBSD 9.0-STABLE
==
==
	253 pci/snd_hda
	252 hdac/snd_hda_pcm
----------------------------------------

But am I not screwed up then? ->

I need to adjust the sound card pin assignments so that the sound can
be directed to the headphones when they are plugged in.

With FreeBSD 8, on several machines, I had gone through somewhat
painful but ultimately meaningful and manageable routine of building
the device.hints file.

Essentially (consider the following an non-ordered set):

    kldunload snd_hda.ko
    kenv | grep hdac
    sysctl hw.snd.verbose
    sysctl hw.snd.verbose=4
    kldload snd_hda.ko
    cat /dev/sndstat
    dmesg | grep ^hdac0
    kenv hint.hdac.0.cad0.nid15.config="as=1 seq=15 device=Headphones"
    kldload snd_hda.ko

I don't believe I can do it now that the snd_hda module cannot be
reloaded in a modified kernel environment.

So, how do I go about finding and modifying the sound card pin
assignments in FreeBSD 9?  (If I can't do it without temporarily
installing FreeBSD 8, it would be a huge disappointment. :)

Thanks,

-- Alex -- alex-goncharov at comcast.net --


More information about the freebsd-hackers mailing list