No audio output via HDA ATI HDMI

I have just connected an audio receiver to my Radeon RX480 card so that I am going with HDMI from my AMD card, to the receiver, then to the monitor. This is a dual-boot system, and this setup works perfectly in Windows, just to rule out any hardware issues.

The audio receiver is a Pioneer VSX-330.

My problem is: I just can’t get any sound output in openSUSE TW anymore, now that I’m going via HDMI. I tried everything I found on the net, like

*$ aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 0/1
Subdevice #0: subdevice #0*

… more devices

*$ speaker-test -c 2 -r 48000 -D hw:0,3

speaker-test 1.1.4

Playback device is hw:0,3
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 64 to 262144
Period size range from 32 to 131072
Using max buffer size 262144
Periods = 4
was set period_size = 65536
was set buffer_size = 262144
0 - Front Left
1 - Front Right
Time per period = 5.471329*

(nothing can be heard)

I tried all HDMI devices (3, 7, 8, 9, 10, 11), but nothing helped.

I also tried pavucontrol, and I let vlc run in the background, seeing that the volume level moves with the action on the screen, but still no sound. The kernel setting “radeon.audio=1” just causes a flickering screen, but nothing changes with respect to the missing audio output.

None of the test sounds in the multimedia configuration is working, and neither is there any sound output from VLC / DVB-S(2).

Running out of options now …

Any help is greatly appreciated.

Michael

Could you allow us a more detailed look at your PC audio configuration ?

Please in an xterm/konsole, as a regular user, run the following diagnostic script (while PC connected to Internet) :


/usr/sbin/alsa-info.sh

Select the ‘share/upload’ option when prompted. Let the script run to completion. After it completes look in the konsole/xterm and there will be a web/address URL for you to share. Please post that URL/address here. We can look at that then to check for anything misconfigured.
.

In addition to running the alsa-info.sh script, could you please also send the following in a konsole/xterm and post here the output


/sbin/lspci -nnk | grep -A2 VGA

The reason for that is I have read that HDMI hardware support for your hardware has only recently been provided (in custom kernels) and I do not know if it is integrated yet in the Tumbleweed kernel (although given Tumbleweed kernel is very recent, around 4.12.11 or so then it may be supported). I also read that one needs the ‘amdgpu-pro’ graphic driver running to support HDMI in the Radeon RX480 so I would like to read what graphic driver you are using.

I note Phoronix forum thread claims HDMI support for the mainstream kernel for the rX480 will not appear until the 4.13 kernel (or later).

Ergo for Tumbleweed you may need a custom kernel built with the amdgpu-pro and packaged wrt HDMI functionality to get the RX480 HDMI working.

Hmmm… I wonder if it would be worth trying the latest stable kernel?

OK, then … thanks for the replies so far. For the time being, I can help myself with a TOSlink cable from the built-in SPDIF of my mainboard; this proved to work.

$ /sbin/lspci --nnk | grep -A2
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/580] [1002:67df] (rev c7)
Subsystem: PC Partner Limited / Sapphire Technology Radeon RX 470/480 [174b:e347]
Kernel driver in use: amdgpu

$ uname -a
Linux capella.daheim.lan 4.13.1-1-default #1 SMP PREEMPT Sun Sep 10 12:02:44 UTC 2017 (0d725b5) x86_64 x86_64 x86_64 GNU/Linux

Going to run alsa-info.sh later (I just ran it, but I forgot to revert my configuration to the HDMI; it is using the SPDIF of the mainboard right now.)

OK that’s interesting. You managed to find a 4.13 kernel built by someone.

I’m asking myself now two things:
(a) Given you have a 4.13 kernel, does the amdgpu-pro graphic driver need to be running ? If so, then you are not running that driver as I do not believe the amdgpu driver is the same, and
(b) Has that capella.daheim 4.13 kernel been built as needed for HMDI support for the Rx480 and for amdgpu-pro driver support.

I don’t know if I have the technical competence to make that assessment (other than by trial and effort and failure or success).

I’ll take a look at the alsa-info.sh script output after you post it.

There is an openSUSE page on the amdgpu-pro : https://en.opensuse.org/SDB:AMDGPU-PRO and states “the AMDGPU-PRO driver provided for openSUSE Leap 42.2+, except Tumbleweed”. According to that page “AMDGPU-PRO cannot be included and integrated into the openSUSE distribution because it is not licensed as Free and Open Source Software”. So I think how that kernel you are using now, was built, is likely important to the question wrt the amdgpu-pro driver running.

I’m hoping someone who knows more about AMD graphic drivers current state chimes in here, as I no longer have radeon hardware and this topic on that specific has exceeded my current experience.

I got this kernel from the usual updates of Tumbleweed. I did not install anything from outside.

Here is the output of alsa-info.sh: http://www.alsa-project.org/db/?f=4fbbae50b9a4cb2f3cb5b72344d703cb51f9e631

OK - thanks. Based on that, then if the wiki pages I read are correct in articles I have seen on the web, then HDMI via the amdgpu-pro is not yet supported in openSUSE Tumbleweed with the usual updates. A custom kernel specifically built for the amdgpu-pro with HDMI enabled would be needed (I think). But I could be wrong, so it would help if someone who has played with Tumbleweed and the amdgpu-pro to chime in here and set the current record straight.

Thanks. I can not offer more here than what you already know. Your PC has two audio devices, where card-0 is the classic analog/digital sound (via an ALC1150) and card-1 is the HDMI. The HDMI devices are :

  • hw:1,3
  • hw:1,7
  • hw:1,8
  • hw:1,9
  • hw:1,10
  • hw:1,11

and if HDMI audio was enabled/working in the kernel, you could test to see which HDMI device by running :


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


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


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


aplay -D plughw:1,9 /usr/share/sounds/alsa/test.wav 


aplay -D plughw:1,10 /usr/share/sounds/alsa/test.wav 


aplay -D plughw:1,11 /usr/share/sounds/alsa/test.wav 

and if one wished to try the above and bypass pulse audio :


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


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


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


pasuspender -- aplay -D plughw:1,9 /usr/share/sounds/alsa/test.wav 


pasuspender -- aplay -D plughw:1,10 /usr/share/sounds/alsa/test.wav 


pasuspender -- aplay -D plughw:1,11 /usr/share/sounds/alsa/test.wav 

But in truth, I don’t expect HDMI sound to work with any of those, as I do not believe the Tumbleweed kernel you have installed yet provides the amdgpu-pro graphic driver nor the HDMI support for your hardware device. I should note thou this is based on me reading scattered articles and inferring in some cases between the lines, and I could be wrong.

I suspect you will need a different kernel with the necessary support embedded.
.

In addition to the above, be certain to unmute your PC master volume control (its muted currently) :


**Simple mixer control 'Master',0**
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 87
  Mono: Playback 81 [93%] -4.50dB] **[off]**

I edited my quote above wrt what I intended to say.

OK, I tried all of the above, but there is no sound output, as expected. Also, the Volume setting (Simple mixer control ‘Master’) that you referred to seems to be from card 0 (the ALC chip on board), not from HDMI.

Bummer. I’ll have to continue using the TOSlink until this is fixed.

This is a series of disappointments. My original plan was to get surround sound output from my PC. I had a TOSlink cable going from the PC to an audio receiver, which proved to work, but this was only 2.1 sound. Then I learned that in general, you cannot send 5.1 via TOSlink unless it is encoded as AC3, which can be easily done by hardware. Accordingly, in January this year I bought a SoundBlaster card (with SoundCore3D), connected the TOSlink between the SB card and the receiver.

While it has been working as expected in Windows (you can even choose between Dolby Digital or DTS encoding), I could not get any sound output via the TOSlink in Linux. In fact, the receiver indicated that the TOSlink was deactivated when Linux was started - I could even see it when looking at the end of the cable: the light went off during the boot process. As I did not find any way to keep it active, what I did then was to use the optical cable between the SB card SPDIF and the receiver, and another coax cable between the onboard SPDIF and the receiver, and to switch the sound source by hand at the receiver, depending on the OS that I was booting.

So my “brilliant” idea was to change the receiver to one with HDMI connection (the previous one did not have one), expecting that I could output sound via HDMI - I have it working on another PC, but with a 42.1 LEAP on it, an older graphics card (AMD HD3870), and getting the sound from the monitor by analog cable. I somewhat expected that this would work right away with my newer system with Tumbleweed and the newer AMD card. And as reported, it works in Windows, but again, no luck in Linux.

Not meant to be understood as ranting, but … sigh … I seem to need more patience.

Its possible you could get sound working with openSUSE Leap 42.2 or 42.3 (?) … as I think there may be a custom (not stock) amdgpu-pro enabled kernel (with HDMI support possibly enabled ?? ) for those PCs. You could also search to see if anyone who uses Tumbleweed has built such a kernel. Some preliminary code to enable HDMI for your PC hardware is out there on the Internet (I believe), but in addition to my not having the hardware (to test) it also exceeds my technical experience to build such a custom kernel for Tumbleweed.

Guys, we’re waiting on AMD to get the DC code upstreamed before HDMI audio and Freesync are available for newer GCN cards (including Polaris, of course), unless you want to hack-install amdgpu-pro into TW or build a kernel from here. They’re really not that far off.

If you absolutely need HDMI audio on TW, then I would suggest building/installing the kernel from the above link.

For curiosity, I could do a LEAP install on another SSD; got some spare ones on my shelf, going to report the results. On the other hand, as I said, for now I can use the TOSlink from my onboard SPDIF; it’s not an emergency. If there is some hope that it will be enabled in the not-too-far future, it is OK for me to wait.

Pull request for drm-next (4.15) was just made. We shall see, seems optimistic.

Pull request for DC/amdgpu

Still no luck here, everything silent … has that code from the pull request been incorporated already?