Sound over HDMI

kr651129

Well-Known Member

Reaction score: 7
Messages: 332

I've googled this and can't figure out where to begin. I have an nVidia GeForce 210 video card and I'd like to get sound working over HDMI.

The HDMI audio is seen by the system

Code:
# lspci | grep -i nvidia
01:00.0 VGA compatible controller: nVidia Corporation GT200 [GeForce 210] (rev a2)
01:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1)
but it doesn't appear in sndstat

Code:
# cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: <HDA NVidia GT21x HDMI PCM #0 DisplayPort> (play)
pcm1: <HDA NVidia GT21x HDMI PCM #0 DisplayPort> (play)
pcm2: <HDA NVidia GT21x HDMI PCM #0 DisplayPort> (play)
pcm3: <HDA NVidia GT21x HDMI PCM #0 DisplayPort> (play)
pcm4: <HDA Realtek ALC892 PCM #0 Analog> (play/rec) default
pcm5: <HDA Realtek ALC892 PCM #1 Analog> (play/rec)
pcm6: <HDA Realtek ALC892 PCM #2 Digital> (play)
Where do I begin to get this working?
 

wblock@

Beastie Himself
Developer

Reaction score: 3,649
Messages: 13,850

In /boot/loader.conf:
Code:
hw.snd.default_unit="1"
 
OP
OP
K

kr651129

Well-Known Member

Reaction score: 7
Messages: 332

Thanks! I've added that and also made sure to add snd_driver_load="YES" to make sure the correct driver was loaded and I'm still coming up with no sound.
 

wblock@

Beastie Himself
Developer

Reaction score: 3,649
Messages: 13,850

Please show the output of /dev/sndstat again.
 
OP
OP
K

kr651129

Well-Known Member

Reaction score: 7
Messages: 332

Code:
> cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: <HDA NVidia GT21x HDMI PCM #0 DisplayPort> (play)
pcm1: <HDA NVidia GT21x HDMI PCM #0 DisplayPort> (play) default
pcm2: <HDA NVidia GT21x HDMI PCM #0 DisplayPort> (play)
pcm3: <HDA NVidia GT21x HDMI PCM #0 DisplayPort> (play)
pcm4: <HDA Realtek ALC892 PCM #0 Analog> (play/rec)
pcm5: <HDA Realtek ALC892 PCM #1 Analog> (play/rec)
pcm6: <HDA Realtek ALC892 PCM #2 Digital> (play)
 
OP
OP
K

kr651129

Well-Known Member

Reaction score: 7
Messages: 332

Here's what I'm getting on 0-3

Code:
pcm0: chn_write(): pcm0:virtual:dsp0.vp1: play interrupt timeout, channel dead
pcm0: chn_write(): pcm0:virtual:dsp0.vp0: play interrupt timeout, channel dead
 

wblock@

Beastie Himself
Developer

Reaction score: 3,649
Messages: 13,850

Looks like it should be
Code:
hw.snd.default_unit="0"
However, the "channel dead" error says that something else is missing. Whether that's in snd_hda(4) or elsewhere, I don't know. It may only work when X is running and the driver for that card is loaded.
 
OP
OP
K

kr651129

Well-Known Member

Reaction score: 7
Messages: 332

I've already set it to 0 just for testing and couldn't get anything out of it. I'll try to load snd_hda when I get home tonight. Is there any benifit to compiling it vs loading it in /boot/loader.conf ? I would have thought that snd_driver_load="YES" would have loaded this for me, no?
 

wblock@

Beastie Himself
Developer

Reaction score: 3,649
Messages: 13,850

There is no benefit to building sound drivers into the kernel. snd_hda(4) is probably already loaded.
 
OP
OP
K

kr651129

Well-Known Member

Reaction score: 7
Messages: 332

Code:
> sudo kldload snd_hda
kldload: can't load snd_hda: File exists
Yep, looks like it's already loaded.
 

mix_room

Aspiring Daemon

Reaction score: 47
Messages: 598

Which driver are you using for the graphics card? I have sound over hdmi working on my nvidia card, but this required that x11/nvidia-drivers was installed.

I have in /boot/loader.conf
Code:
snd_hda_load="YES"
nvidia_load="YES"
hw.snd.default_unit="1"
and in /etc/X11/xorg.conf

Code:
Section "Device"
     Identifier     "Card0"
     Driver         "nvidia"
     VendorName     "nVidia Corporation"
     BoardName      "GT520 [GeForce GT520]"
EndSection
When I was using a radeon card I needed to enable sound over HDMI in the Xorg-config, but this is not necessary with the nvidia cards.

For sake of completion:
Code:
cat /dev/sndstat
...
Installed devices:
pcm0: <HDA NVidia (Unknown) PCM #0 DisplayPort> (play)
pcm1: <HDA NVidia (Unknown) PCM #1 DisplayPort> (play) default
...
If you have the possibility to check, try another target system. I have had problems with HDMI-synching. For example my PS3 would not sync with the TV until I performed a firmware update for the TV, if nothing else works this might be an avenue to explore.
 
OP
OP
K

kr651129

Well-Known Member

Reaction score: 7
Messages: 332

I'm defiantly not using x11/nvidia-driver, I'm using whatever FreeBSD picked at install and when I look for it in pkg_info it doesn't show up. I'll compile those and see if it makes a difference. I don't think the TV needs a firmware upgrade because I've been able to output audio to it over HDMI from other devices.
 

SR_Ind

Active Member

Reaction score: 16
Messages: 127

kr651129,

Does this sound card makes sound output at all? Did you check with any other OS? The HDMI ports themselves maybe faulty.

Just had a team members PC replaced. She wanted a new headset , but problem was narrowed down to the dead audio out sockets.
 

mav@

Aspiring Daemon
Developer

Reaction score: 218
Messages: 702

To make HDMI audio work with NVIDIA cards you must use binary x11/nvidia-drivers driver. There is no HDMI audio support in default Xorg drivers!

Also in FreeBSD 9.0 with GT2xx card you should set hint.hdac.%d.msi=0 tunable to workaround chip bug with MSI interrupts routing that caused timeouts mentioned above. Along with many other HDMI improvements this is enabled automatically in FreeBSD 9.1.
 
Top