Pointers to debug lack-of-audio

Alexander Motin mav at FreeBSD.org
Mon Nov 23 08:43:05 UTC 2009


Joe Greco wrote:
> I've got a bunch of HP dc7600 Small Form Factor PC's.  One of them is
>  running the latest version of PC-BSD, which is of course based on 
> FreeBSD 7.2-STABLE.  It appears to load the audio driver, but it's 
> mute.  The dc7600 sports a built-in speaker, and neither it nor any 
> of the jacks seem to produce sound.
> 
> I've looked over the saga of the snd_hda driver, and am not quite clear
> where to go.  It looks configured.  The pin mappings seem to make some 
> sort of sense, though I don't know what they ought to be.
> 
> # cat /dev/sndstat
> FreeBSD Audio Driver (newpcm: 32bit 2007061600/i386)
> Installed devices:
> pcm0: <HDA Realtek ALC260 PCM #0 Analog> at cad 0 nid 1 on hdac0 kld snd_hda
> [MPSAFE] (1p:1v/1r:1v channels duplex default)
> 
> So it probes fine.
> 
> Doing a kldunload/reload with verbose logging reveals
> 
> hdac0: <Intel 82801G High Definition Audio Controller> mem 0xfc500000-0xfc503fff irq 21 at device 27.0 on pci0
> hdac0: HDA Driver Revision: 20090624_0136
> hdac0: attempting to allocate 1 MSI vectors (1 supported)
> msi: routing MSI IRQ 257 to vector 60
> hdac0: using IRQ 257 for MSI
> msi: Assigning MSI IRQ 257 to local APIC 0
> hdac0: [MPSAFE]
> hdac0: [ITHREAD]
> hdac0: Probing codec #0...
> hdac0: HDA Codec #0: Realtek ALC260
> hdac0:  HDA Codec ID: 0x10ec0260
> hdac0:        Vendor: 0x10ec
> hdac0:        Device: 0x0260
> hdac0:      Revision: 0x04
> hdac0:      Stepping: 0x00
> hdac0: PCI Subvendor: 0x3011103c
> hdac0:  Found audio FG nid=1 startnode=2 endnode=28 total=26
> hdac0:
> hdac0: Processing audio FG cad=0 nid=1...
> hdac0: GPIO: 0x40000004 NumGPIO=4 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=1
> hdac0:  nid 15 0x9993e133 as  3 seq  3           AUX Fixed jack  3 loc 25 color   White misc 1
> hdac0:  nid 16 0x0221101f as  1 seq 15    Headphones  Jack jack  1 loc  2 color   Black misc 0
> hdac0:  nid 17 0x9707e120 as  2 seq  0      Line-out Fixed jack  7 loc 23 color   White misc 1
> hdac0:  nid 18 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc  1 color   Black misc 1
> hdac0:  nid 19 0x02a11930 as  3 seq  0           Mic  Jack jack  1 loc  2 color   Black misc 9
> hdac0:  nid 20 0x01813c31 as  3 seq  1       Line-in  Jack jack  1 loc  1 color    Blue misc 12
> hdac0:  nid 21 0x01014c10 as  1 seq  0      Line-out  Jack jack  1 loc  1 color   Green misc 12
> hdac0:  nid 22 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc  1 color   Black misc 1
> hdac0: Patching widget caps nid=23 0x00400000 -> 0x00700000
> hdac0:  nid 24 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc  1 color   Black misc 1
> hdac0:  nid 25 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc  1 color   Black misc 1
> hdac0: Patched pins configuration:
> hdac0:  nid 15 0x9993e133 as  3 seq  3           AUX Fixed jack  3 loc 25 color   White misc 1
> hdac0:  nid 16 0x0221101f as  1 seq 15    Headphones  Jack jack  1 loc  2 color   Black misc 0
> hdac0:  nid 17 0x9707e120 as  2 seq  0      Line-out Fixed jack  7 loc 23 color   White misc 1
> hdac0:  nid 18 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc  1 color   Black misc 1 [DISABLED]
> hdac0:  nid 19 0x02a11930 as  3 seq  0           Mic  Jack jack  1 loc  2 color   Black misc 9
> hdac0:  nid 20 0x01813c31 as  3 seq  1       Line-in  Jack jack  1 loc  1 color    Blue misc 12
> hdac0:  nid 21 0x01014c10 as  1 seq  0      Line-out  Jack jack  1 loc  1 color   Green misc 12
> hdac0:  nid 22 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc  1 color   Black misc 1 [DISABLED]
> hdac0:  nid 24 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc  1 color   Black misc 1 [DISABLED]
> hdac0:  nid 25 0x411111f0 as 15 seq  0       Speaker  None jack  1 loc  1 color   Black misc 1 [DISABLED]
> hdac0: 3 associations found:
> hdac0: Association 0 (1) out:
> hdac0:  Pin nid=21 seq=0
> hdac0:  Pin nid=16 seq=15
> hdac0: Association 1 (2) out:
> hdac0:  Pin nid=17 seq=0
> hdac0: Association 2 (3) in:
> hdac0:  Pin nid=19 seq=0
> hdac0:  Pin nid=20 seq=1
> hdac0:  Pin nid=15 seq=3
> hdac0: Tracing association 0 (1)
> hdac0:  Pin 21 traced to DAC 2
> hdac0:  Pin 16 traced to DAC 2 and hpredir 0
> hdac0: Association 0 (1) trace succeeded
> hdac0: Tracing association 1 (2)
> hdac0:  Unable to trace pin 17 seq 0 with min nid 0
> hdac0: Association 1 (2) trace failed

Here is at least one bug in codec configuration ^^^. This codec has only
one DAC, so it is unable to manage two playback devices.

> hdac0: Tracing association 2 (3)
> hdac0:  Pin 19 traced to ADC 4
> hdac0:  Pin 20 traced to ADC 4
> hdac0:  Pin 15 traced to ADC 4
> hdac0: Association 2 (3) trace succeeded
> hdac0: Tracing input monitor
> hdac0: Tracing beeper
> hdac0:  nid 23 traced to out
> hdac0: Enabling headphone/speaker audio routing switching:
> hdac0:  as=0 sense nid=16 [UNSOL]
> hdac0: Pin sense: nid=16 res=0x7fffffff
> hdac0: FG config/quirks: forcestereo ivref50 ivref80 ivref100 ivref

> I saw some mention of unmapped or incorrectly mapped audio outputs
> with snd_hda, but I'm not sure how to tell what they ought to be.
> I see some things are listed as [DISABLED] but haven't figured out
> whether that's reasonable or not.

Speakers sometimes controlled with setting GPIO signals. You may need to
experiment with them. Same time, your output connector configured for
automatic audio redirection, with default to speaker, but if it is
incapable of signaling jack presence, it won't ever receive any sound.

-- 
Alexander Motin


More information about the freebsd-multimedia mailing list