[12.2] Enable HDMI-sound with proprietary Nvidia drivers

So, after witnessing a user in IRC having serious problems getting HDMI sound to work, I thought I’d give this a go. So I unplugged my desktop and carried it towards the TV.

The set up I’m doing this on is running openSUSE 12.2 x86_64, GNOME 3.4.2, kernel 3.6.2-2-desktop, and NVIDIA proprietary driver version 304.51.

First of all the output of ‘/sbin/lspci -nnk’. I’ve snipped a bit here, so only my GPU and internal sound device is listed.

00:14.2 Audio device [0403]: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) [1002:4383] (rev 40) 
     Subsystem: ASUSTeK Computer Inc. M4A89GTD PRO/USB3 Motherboard [1043:8410] 
     Kernel driver in use: snd_hda_intel 
 06:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF106 [GeForce GTS 450] [10de:0dc4] (rev a1) 
     Subsystem: ASUSTeK Computer Inc. Device [1043:837a] 
     Kernel driver in use: nvidia 
 06:00.1 Audio device [0403]: NVIDIA Corporation GF106 High Definition Audio Controller [10de:0be9] (rev a1) 
     Subsystem: ASUSTeK Computer Inc. Device [1043:837a] 
     Kernel driver in use: snd_hda_intel 
                    The output of 'cat /proc/asound/cards'
0 [SB             ]: HDA-Intel - HDA ATI SB 
                       HDA ATI SB at 0xfbbf8000 irq 16 
1 [NVidia         ]: HDA-Intel - HDA NVidia 
                       HDA NVidia at 0xfe97c000 irq 25 

The output of ‘aplay -l’

**** List of PLAYBACK Hardware Devices **** 
card 0: SB [HDA ATI SB], device 0: VT2020 Analog [VT2020 Analog] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
card 0: SB [HDA ATI SB], device 1: VT2020 Digital [VT2020 Digital] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
card 0: SB [HDA ATI SB], device 2: VT2020 HP [VT2020 HP] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
card 1: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
card 1: NVidia [HDA NVidia], device 8: HDMI 0 [HDMI 0]
  Subdevices: 1/1 
  Subdevice #0: subdevice #0 
card 1: NVidia [HDA NVidia], device 9: HDMI 0 [HDMI 0] 
  Subdevices: 1/1 
  Subdevice #0: subdevice #0

First steps I did was to make sure that nothing in alsamixer related to HDMI-sound was muted. Hit to select your sound card, and to toggle muted outputs. MM will indicate a muted output.
http://bildr.no/thumb/1300945.jpeg](http://bildr.no/view/1300945)

Then I opened YaST>>Sound to check the order of the sound cards.

http://bildr.no/thumb/1300951.jpeg](http://bildr.no/view/1300951)

Then opened up pavucontrol, and made sure that pulseaudio was configured to use HDMI sound. I noticed that the indicator that something was playing was bouncing up and down. I also disabled my on-board device here, but I don’t think that should be necessary.

http://bildr.no/thumb/1300952.jpeg](http://bildr.no/view/1300952)

Still though, even if the indicator was moving, absolutely nothing got put through.

So I did what I usually do when having trouble with hardware, I check to see if the provider of the hardware has anything to offer. Duckduckgo.com is always helpful and landed me on >>this page<<](http://http.download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html).

I went through chapter 12. Troubleshooting, and were finally able to get some noise coming out of the TV issuing this command:

speaker-test -c 2 -r 48000 -D hw:1,7

If the former didn’t produce anything for you, consult your output of ‘aplay -l’, and modify the ‘hw:x,x’ part. The first x would be your card number, the second the device number.

Reading further, to make sure this was loaded on boot, the following line needed to be added to /etc/pulse/default.pa

load-module module-alsa-sink device=hw:1,7

Reboot, select your output i pavucontrol. For your media player you will also have to make sure that the correct output module is selected in preferences.
http://bildr.no/thumb/1300964.jpeg](http://bildr.no/view/1300964)