Under Ubuntu Intrepid Ibex (should also work for Hardy Herron) with pulseaudio.
(Gfx card: ATI HD 4850)
It is a simple fix that took me ages to work out. Basically, PulseAudio does not recognize the graphics card’s sound card. To fix, we simply force it to recognize it, and remove detection of alternatives to make it default. There is almost definitely a better way than removing the alternatives, but meh it works for me.
First, work out which device is your correct HDMI device (in this case, 1,3 as it is card 1, output 3):
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Intel [HDA Intel], device 0: ALC883 Analog [ALC883 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 1: ALC883 Digital [ALC883 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI] Subdevices: 0/1 Subdevice #0: subdevice #0
/etc/pulse/default.pa in your favourite text editor
line just before all the
#load_module lines (around line 32),
replacing 1,3 with whatever you found above):
add-autoload-sink output module-alsa-sink device=plughw:1,3 rate=48000 sink_name=output
Comment out the module-hal-detect section (around lines 40-47):
#### Automatically load driver modules depending on the hardware available #.ifexists module-hal-detect.so #load-module module-hal-detect #.else #### Alternatively use the static hardware detection module (for systems that #### lack HAL support) #load-module module-detect #.endif
Uncomment this line at the bottom of the file: set-default-sink output
Save and close the file, then log out and back in again (or
killall pulseaudio && pulseaudio) and, hopefully, your sound should work!