Debian Squeeze HDMI Sound problems


Posted on 2010-07-07

Apparently the sound over HDMI didn't work out of the box on my debian squeeze installation, I have now gotten it to work and thought I should document my efforts.

My setup is as follows:

  • Acer 3820T
  • Intel Core i3 330m
  • Intel HDA graphics card (on the same die as the CPU)
  • Debian Squeeze with gnome

I came across a post on forums.debian.net with a possible fix to my problem.

When I listed the audio-devices i got the following results:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC269 Analog [ALC269 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC269 Digital [ALC269 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: INTEL HDMI [INTEL HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0

This indicated that there where no problem with the driver/device itself (which I also knew because it was working flawlessly in windows). Others around the net seemed to have problem with the device not showing up as it should, which was probably related to them having dedicated graphic cards and trying to use the sound card on the mobo or something like that.

I tried to use aplay to play a sound through the device but were unsuccessful, so I continued to search for other solutions. However I later discovered that speaker-test also had the ability to play sound through a certain device, which worked. I assumed there were something wrong with aplay or the way I used it and tried to change the switches I enabled in gnome volume controller.

I saw three switches:

  • IEC958
  • IEC958 Default PCM
  • IEC958 1

With only the switch IEC958 1 activated I heard the test-sound over HDMI, success.

I now continued with boogachamp's suggestions and added /etc/asound.conf. This is how it looks like:

$ cat /etc/asound.conf 
pcm.!default {
    type plug
    slave.pcm {
        type hw
        card 0
        device 3
    }
}

Which I did, restarted alsa-utils (don't know if that really was necessary) and the media player I was using and it worked like charm.