HDMI Audio not working

I bough a ASUS VivoMini VC66 this week and install Opensuse on it. However, when I plug a HDMI cable to the machine, the audio output is not working.
I had searched and read some related issues, and I still have no idea how to get it work.

I had installed pavucontrol. The configuration page show a list of Profile but all Build-in Audio (HDMI) are unplugged.

Below is the report from /usr/sbin/alsa-info.sh
http://www.alsa-project.org/db/?f=aa6fece6c14c74c88114eede8f3e15f97e4474d6

I don’t really understand the report. (I am quite new to Linux)
I wish someone could help/teach me to fix the issue.

Many thanks.

The report tells us your ASUTek VC66 has only the analog device recognized as sound card-0 (an ALC255) also with an HDMI (Codec: Intel Kabylake HDMI).

I do noted an error in the dmesg whic may (?) be relevant ?


    5.066308] snd_hda_intel 0000:00:1f.3: failed to add i915 component master (-19)

and a series of other HDMI messages:


    5.085228]  <ffffffffa045b469>] snd_hdac_i915_register_notifier 0x29/0x30 [snd_hda_core]
    5.085238]  <ffffffffa089ccb4>] patch_generic_hdmi 0x2b4/0x6b0 [snd_hda_codec_hdmi]
    5.085246]  <ffffffffa0542435>] hda_codec_driver_probe 0x65/0xf0 [snd_hda_codec]
    5.085250]  <ffffffff8146cca7>] driver_probe_device 0x1f7/0x420
--
    5.086206] --- end trace 42025597258258d2 ]---
    5.089339] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input11
    5.089379] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input12
    5.089412] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input13
    5.089445] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input14
    5.089478] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input15

also in aplay I note the HDMI detected:


!!Aplay/Arecord output
!!--------------------

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC255 Analog [ALC255 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 0**: PCH [HDA Intel PCH], **device 3**: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
**card 0**: PCH [HDA Intel PCH], **device 7**: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 0**: PCH [HDA Intel PCH], **device 8**: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

So it reads your HDMI could be hw:0,3 or hw:0,7 or hw:0,8 .

The HDMI does not show up in the mixer thou - and that is unexpected. Am I correct that this HDMI is on the motherboard ? I’m wondering if maybe you have an inappropriate setting in your BIOS ? Are there any relevant BIOS settings for HDMI ?

Out of curiousity, do any of these commands (copied into an xterm or konsole as a regular user) give sound via your HDMI ?


aplay -D plughw:0,3 /usr/share/sounds/alsa/test.wav

or


aplay -D plughw:0,7 /usr/share/sounds/alsa/test.wav

or


aplay -D plughw:0,8 /usr/share/sounds/alsa/test.wav

Searching the Internet on “Intel Kabylake HDMI alsa” and I see a lot of people having problems with GNU/Linux and this hardware. One bug report, for example, noted until after the power management puts the display to sleep at least once there is no sound. Upon waking the monitor sound is restored. That is VERY speculative …

I have read of users with this hardware clearing pulse audio settings which helped. ie emptied the directory under /home/username/.pulse and also emptying the directory under /home/username/.config/pulse (if there is such a directory - there may not be such) and then rebooting and testing. Again that is VERY speculative.

This does not read to be an easy nut to crack.

Let us know if any of the above aplay commands work.
.

Thanks for your reply. You had provided me some valuable information.

>> Am I correct that this HDMI is on the motherboard ?

Yes, I am currently using the on-board display card.
I tried that in Windows 10 (before I replace Windows 10 with Opensuse), the same HDMI outputs audio successfully.
Therefore, I believed that the BIIOS setting (UEFI in fact) should work.

>>Out of curiousity, do any of these commands (copied into an xterm or konsole as a regular user) give sound via your HDMI ?

I tried all of them without success.
The 0,3 shows: aplay: main:786: audio open error: Device or resource busy
The other two : Playing WAVE ‘/usr/share/sounds/alsa/test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

>>I have read of users with this hardware clearing pulse audio settings which helped. ie emptied the directory under /home/username/.pulse and also emptying the directory under /home/username/.config/pulse (if there is such a directory - there may not be such) and then rebooting and testing. Again that is VERY speculative.

I removed the ~/.config/pulse and restarted, but still no luck.

Thanks a lot for your time and help!

Hmmm.

that makes me think your HDMI device is hw:0,3.

Try a ‘lower case’ d instead of an upper case. ie


aplay -d plughw:0,3 /usr/share/sounds/alsa/test.wav

Do you get the same syntax error ?


although after posting that, I note the ‘lower-case’ is supposed to specify duration and not device. Possibly capital ‘N’ is better ? ie.


aplay -N plughw:0,3 /usr/share/sounds/alsa/test.wav

My reference in this case for aplay options is: https://linux.die.net/man/1/aplay

Do you have any idea as to what application seized the hw:0,3 device while you tested ? I hope you were not trying to play an audio with another application at the same time as this test.

Further to this - I want to know which device is blocking aplay from working here. What is the output of the following in a xterm as a regular user ? My guess is it is pulse audio.


lsof /dev/snd/*

This is the output:

lsof: WARNING: can’t stat() tracefs file system /sys/kernel/debug/tracing
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pulseaudi 2061 user 15u CHR 116,2 0t0 17032 /dev/snd/controlC0
pulseaudi 2061 user 22u CHR 116,2 0t0 17032 /dev/snd/controlC0
pulseaudi 2061 user 27u CHR 116,2 0t0 17032 /dev/snd/controlC0

Yes, you are right. I had the plusaudiocontrol open that is blocking the aplay. :stuck_out_tongue:

aplay -N plughw:0,3 /usr/share/sounds/alsa/test.wav:
plughw:0,3: No such file or directory

Ok, then try this:

pasuspender -- aplay -D plughw:0,3 /usr/share/sounds/alsa/test.wav

The idea (and I do not know if this will work) is to use pasuspender to suspend pulse audio for that one aplay command. And the aplay command is being sent to confirm hw:0,3 is your HDMI device. The problem (for me) is I do not know the syntax well and I am guessing.
.

Another possible syntax (as I am guessing at the syntax) is:

pasuspender /usr/bin/aplay -- -D plughw:0,3 /usr/share/sounds/alsa/test.wav

This is correct

pasuspender -- aplay -D plughw:0,3 /usr/share/sounds/alsa/test.wav

It outputs

Playing WAVE '/usr/share/sounds/alsa/test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

without sound

One last check - does your HDMI device have its own independent volume control ? If, ensure it is not muted.

Failing the above, I recommend you write a bug report on openSUSE which will give you help from the openSUSE sound packager, who is also an alsa sound driver developer. There is guidance for the bug report here: openSUSE:Submitting bug reports - openSUSE Wiki

Do not bother to reference this forum thread in the bug report as the support person in the bug report will not read a forum thread. Instead describe your problem and attach to it the text file from running (as a regular user) :


/usr/sbin/alsa-info.sh --no-upload

There is a reasonable probability you will obtain a quick fix by this method. And if there is no fix then that likely means the problem affects all GNU/Linux distros and not just openSUSE.
.

Thanks for helping.
I had created a bug report:
https://bugzilla.opensuse.org/show_bug.cgi?id=1034327

For the first time today, I checked to see what would happen if I plugged in my laptop to the HDMI out to the TV in my living room. I am using openSUSE Tumbleweed with KDE Plasma as my desktop. When the TV is plugged in, I get another device and I literally drag and drop the output from whatever stream onto the HDMI out and, BOOM, the sound is pushed out to the HDMI instead of the internal speakers. I did not special configuration, just used default KDE Plasma settings.

Not sure if that helps but it was super easy simple on KDE Plasma. I don’t know if the other desktops have it worked out yet.

Cheers!
-Nathan

It’s possible to read some rather silly ideas on the web. All you have done by doing that is to leave pulse set to it’s defaults some where else. Those settings are very probably exactly the same as the ones you have removed.

There is another way of sorting this sort of problem out. It’s late here in the UK but I’ll try and find some time tomorrow. One thing I will need to know is if you are running a kde desktop?

John

Probably ?

Possibly yes - possibly not. Who knows what the OP has changed ? Without us actually sitting on the PC and examining the settings applied, its difficult to say more.

The /usr/sbin/alsa-info.sh script provides good information on alsa configuration that can be shared with those trying to help, but I know of no equivalent script for pulse audio (to provide support people with information), nor an equivalent script output for KDE multimedia settings, or other desktop multimedia settings (that provide support people with information).

I think it would be useful for a developer to develop and distribute such diagnostic scripts to aid in providing audio (including HDMI audio) support for GNU/Linux.

Good luck here. I am the stage now where I think the OP needs to write a bug report and get support from the SuSE-GmbH sound packager.
.

I’m inclined to agree with the comments you have made about sound but things change too quickly at times and it looks like some of the earlier “features” have been bypassed and as you have mentioned there’s probably too many ways of setting volume for instance.

;)I’ll leave the root to what I would do 'till last.

I just thought it was worth trying something else before bug reporting. I effectively have 3 sound facilities. A card which I use, motherboard based which I don’t use and hdmi on the video card. I set the one I use as default in YAST. KDE uses it but orders the cards on the basis of what they were so if I want to test it in kde I have to select it and use the play left , right etc. Click apply and it doesn’t remember the order. Something is amiss. I initially got the correct one working via setting default in yast and a reset. The reset may not have been needed.

I haven’t touched the other however the lower right other option button in the yast sound window offers 2 things that can be done with the card that is selected. One is set as default. The other is volume controls, that can sort out one problem - that they are miss set pretty quickly. It also offers pulse settings but only to enable it. That may not be checked. It can also be used to re enable it if the card has been removed and has been re detected.

I looked at my hdmi setting by selecting it and clicking edit. It appeared to be set up however if I use the other - volume controls on it there aren’t any. On that basis I would go back to the edit window on it and click reset and see if that helped and then check that pulse was still enabled on it. This may or may not help but without going through it ???

The other thing I found that may just be down to using KDE is that alsa mixer and volume controls don’t do anything any more. KDE seems to have bypassed some of it’s functionality. Having found this to be fact I installed pavucontrol due to a suggestion on here in a recent thread. That clarified a lot. The controls in that did everything that they should. It also shows all 3 “cards”. The ones I don’t use on mine are shown as off. Now that I know about this utility it would be the first thing I would install given a sound problem. I installed alsa mixer first. Due to the problem that I was trying to track down I noticed that it’s volume control didn’t do anything. All it would do is mute when set to zero so it must have been telling pulse to mute.

So my root to a solution in order would be start button - settings - system settings - multimedia - audio and video - audio hardware set up and select each of the available cards that I wanted to use and try the play left play right. If some work then check the device preferences. The options for that seem a bit excessive to me but they are there. Other desktops should offer something similar. LXDE for instance does use alsa fully. - or the ones I have used did.

Then starting at the bottom from a desktop users point of view install pavucontrol and see what that makes of things - are the cards there, are they on, are the volume controls setting correct - don’t set them over 100%. YAST wont allow that but pulse will.

Then if things still aren’t right YAST probably to try to force a re install of the problem card as the last resort. I didn’t need to check that the kernel was actually spotting them but I’d guess that if YAST doesn’t at least show them it isn’t or is rejecting them for some reason.

Out of interest while this was all going on with my particular problem I’m pretty sure I noticed an option to play sound through all of them. Trouble is I have a feeling that it was kde being clever and not just offering that as an option in it’s settings.

My ~ pulse conf folder shows a number of sync and source links. The one off /etc doesn’t. Initially these weren’t there so suspect some sort of kde update did that but it might have happened due to another. This suggests that nothing will work if the folder is deleted.

There is another possible problems with hdmi - max achievable screen resolution. It’s an area I looked into some time ago as I wanted to install 10bit colour for photographic work - I couldn’t do it with my current screen resolution due to band width limitations. I more than vaguely remember more sever limitations on hdmi and on mac’s. In fact it was a problem what ever I could use at the time. I don’t see how this could interfere with sound and my video card mentions auto resolution so I assume would switch to what was needed if hdmi was plugged in.

:\I hope there aren’t too many weird typo’s in this.

John

The SuSE-GmbH packager has a question for you in the bug report:

If you can, please reply to the bug report.

Thank you for your input.:wink:

Yes, I am using KDE ( KDE with opensuse is awesome!!)

Looks like the problem is due to the drive problem.
Thanks for helping.

Thanks. I had replied.

This is most educational. For others watching this thread, the SuSE-GmbH sound packager in that bug report noted the following:

i.e. he has a drm-kmp package that might support the 8086:5912 Kabylake.

This is very good support - and I am most impressed.

I hope this works.