snd_hda(4): speaker DISABLED after update to 9-CURRENT

Matthias Apitz guru at
Sun Feb 27 15:15:29 UTC 2011

El día Saturday, February 26, 2011 a las 01:52:02PM -0500, Eitan Adler escribió:

> On Sat, Feb 26, 2011 at 11:58 AM, Matthias Apitz <guru at> wrote:
> > Could someone please give me a hint how to get the speaker working again?
> Try changing sysctl hw.snd.default_unit=0/1/2

Thanks, but this was my first check as well and does not help.

I started to play around with the device.hints(5) config and here is
what I figured out:

It took me some tine to realize that 'cad0' is the modem, while the real
audio is 'cad1'.

So I set in device.hints(5):

# kenv | fgrep hdac
hint.hdac.0.cad1.nid20.config="as=1 seq=15 device=Headphones"
hint.hdac.0.cad1.nid28.config="as=2 seq=0  device=Speaker"

which is to be seen in the verbose logging on boot as:

# dmesg | fgrep hdac | more
hdac0:  Found modem FG nid=1 startnode=2 endnode=38 total=36
hdac0: Probing codec #1...
hdac0: HDA Codec #1: Realtek ALC880
hdac0:  HDA Codec ID: 0x10ec0880
hdac0:        Vendor: 0x10ec
hdac0:        Device: 0x0880
hdac0:      Revision: 0x08
hdac0:      Stepping: 0x00
hdac0: PCI Subvendor: 0x107c1734
hdac0:  Found audio FG nid=1 startnode=2 endnode=34 total=32
hdac0: Processing modem FG cad=0 nid=1...
hdac0: Processing audio FG cad=1 nid=1...
hdac0: GPIO: 0x40000002 NumGPIO=2 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=1
hdac0:  nid 20 0x01014010 as  1 seq  0      Line-out  Jack jack  1 loc 1 color   Green misc 0
hdac0: Patching pin config nid=20 0x01014010 -> 0x0121401f
hdac0:  nid 28 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc 1 color   Black misc 1
hdac0: Patching pin config nid=28 0x411111f0 -> 0x41111120

i.e. the above device.hints(5) are realized by snd_hda(4); but than it

hdac0: Patched pins configuration:
hdac0:  nid 20 0x0121401f as  1 seq 15    Headphones  Jack jack  1 loc 1 color   Green misc 0
hdac0:  nid 28 0x41111120 as  2 seq  0       Speaker  None jack  1 loc 1 color   Black misc 1 [DISABLED]

why is 'nid 28' DISABLED?

in the user-land the situation is like this:

there are 3 mixer (/dev/mixer0..2) and of course I checked if they are
all fully up, with one exeption:

# mixer -f /dev/mixer2 
Recording source: monitor

i.e. the recording level can't be controlled, why?

there are the following /dev/dsp* devices:

# ls /dev/dsp*
/dev/dsp0.0     /dev/dsp0.1     /dev/dsp1.0     /dev/dsp2.0

and with Skype (or also just with dd(1)) recording can be done from the
device /dev/dsp2 and audio is coming out from /dev/dsp0 (but only
through the headphone Jack).

What can I do to make the Speaker of the laptop working? The Speaker
itself works, for example without any application it just echoes
back what from the internal microphone or from the headset micro is

Thanks in advance


Matthias Apitz
t +49-89-61308 351 - f +49-89-61308 399 - m +49-170-4527211
e <guru at> - w

More information about the freebsd-multimedia mailing list