Nvidia HDMI audio is a widely asked topic, but I've not been able to find the answer for my case.
Card displayed by lspci
$ lspci
...
01:00.0 VGA compatible controller: NVIDIA Corporation GF114 [GeForce GTX 560 Ti] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF114 HDMI Audio Controller (rev a1)
Device displayed by aplay
$ aplay -l
...
card 2: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 8: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: NVidia [HDA NVidia], device 9: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
All outputs unmuted by alsamixer
But the card does not appear in the Sound controller from System settings.
I'm currently using "nvidia-325" driver, but I tried "nouveau" and several other versions
My HDMI output is detected to be /proc/asound/card2/eld#1.0
$ cat /proc/asound/card2/eld#1.0
monitor_present 1
eld_valid 1
monitor_name DENON-AVAMP
connection_type HDMI
...
speaker-test
does not find the device
$ speaker-test -c 2 -r 48000 -D hw:2,3
speaker-test 1.0.25
Playback device is hw:2,7
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Playback open error: -19,No such device
Can someone help me with my problem ? Or at least tell me why doesn't my device appear on sound settings ?
I have some issues myself, but so far I have discovered that you need to test the different id's:
-c [2/6]
- test in stereo or 5.1hw:2,[3,7,8,9]
- 2 is the ID of your card, but as you can see from the list there are 4 different options. Only one of these give me audio.I have no idea why this has to be so complicated, so I would love to see someone answer this more thoroughly, but I hope my answer at least helps you along the way.
When speaker-test fails, all other programs using alsa-lib should also fail with -D hw:2,3.
Playback open error: -19,No such device
looks like speaker-test tries to open the wrong device:should reveal the device name alsa-lib tries to open.
From a first view, I'd say it's a bug in alsa-lib as it tries to open card0, device3 instead of card2, device3. A temporary fix would be to use symbolic links pointing to the correct device...