You are not logged in.

#1 2015-10-10 03:54:07

darkengine
Member
Registered: 2015-10-10
Posts: 2

Intel Haswell HDMI audio worked once, now does not

I'm having a quite strange issue with HDMI audio. I watched a movie on my TV with HDMI audio via Pulseaudio and ALSA, and it worked no problem. I opened up pavucontrol, switched the sink for mpv from analog out to HDMI and it jumped over flawlessly. However, I tried to do the same thing tonight, and it is simply not working. I have ruled out the TV and HDMI cable as issues. I have tried using the linux-lts kernel, which also does not fix it. It's not a Pulseaudio problem, as killing Pulseaudio and using aplay on every available device does not generate any sound out the HDMI jack either.

Here is the output of aplay -l:

**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: ALC668 Analog [ALC668 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
~/ cat /proc/asound/modules 
 0 snd_hda_intel
 1 snd_hda_intel

Two sound cards, one analog, and one for the HDMI jack. For some reason, the HDMI card has two outputs. Neither make any sound when targetted with aplay.

Running pulseaudio -vvv in a terminal and trying to play audio while the output device is set to HDMI gives this output:

I: [alsa-sink-HDMI 1] alsa-sink.c: Underrun!
I: [alsa-sink-HDMI 1] alsa-sink.c: Increasing wakeup watermark to 65.99 ms
I: [alsa-sink-HDMI 1] alsa-sink.c: Underrun!
I: [alsa-sink-HDMI 1] alsa-sink.c: Increasing minimal latency to 86.00 ms
D: [alsa-sink-HDMI 1] alsa-sink.c: Latency set to 86.00ms
D: [alsa-sink-HDMI 1] alsa-sink.c: hwbuf_unused=337600
D: [alsa-sink-HDMI 1] alsa-sink.c: setting avail_min=85283
D: [alsa-sink-HDMI 1] alsa-sink.c: Latency set to 86.00ms
D: [alsa-sink-HDMI 1] alsa-sink.c: hwbuf_unused=337600
D: [alsa-sink-HDMI 1] alsa-sink.c: setting avail_min=85283
I: [alsa-sink-HDMI 1] alsa-sink.c: Underrun!
I: [alsa-sink-HDMI 1] alsa-sink.c: Increasing wakeup watermark to 75.99 ms
I: [alsa-sink-HDMI 1] alsa-sink.c: Underrun!
I: [alsa-sink-HDMI 1] alsa-sink.c: Increasing minimal latency to 96.00 ms

and so on, increasing the minimal latency and wakeup watermark (whatever those are) by a few milliseconds every half second or so.

Trying to play a video with mpv while the output it set to HDMI causes the video to play very slowly. It plays gradually smoother as Pulseaudio increases the latency and wakeup watermark. At no point during this process does any sound come out the HDMI port at all.

Interestingly, this seems to be the very same issue suffered by this guy.

This has me quite stumped. Thanks in advance for any input you might have.

EDIT: I should also mention, Pulseaudio is able to correctly identify the plugged in state of the HDMI output. That is, when the cable is not plugged in, pavucontrol says "(unplugged)" next to the output, and when the cable is plugged in, it says "(plugged in)" next to it.

Last edited by darkengine (2015-10-10 04:13:44)

Offline

#2 2015-11-27 13:42:21

xsnake
Member
Registered: 2015-11-27
Posts: 11

Re: Intel Haswell HDMI audio worked once, now does not

I ran into the exact same issue (same hardware and error messages). I used the HDMI output a couple of times this summer to watch movies on the TV, and audio worked as expected. When I tried to use it again this week, I wouldn't get any audio output (video worked fine). In the meantime, I had set up a KVM virtual machine with GPU Passthrough, and I found out that the kernel parameter "intel_iommu=on" was breaking HDMI audio, due to this kernel bug.

The good news is that simply amending this kernel parameter to "intel_iommu=on,igfx_off" resolves the issue, but in my case (and for many others) it also breaks the ability to perform the GPU Passthrough...

So is there any chance you are running the kernel with "intel_iommu=on"? I have read that some distros have this enabled by default, so you might want to try "intel_iommu=off" or "intel_iommu=on,igfx_off".

Offline

Board footer

Powered by FluxBB