No sound through AMD GPU and motherboard

Hey openSuse community,

two days ago, I installed openSuse on my main machine for the first time:

Gigabyte Z170-HD3P
i7, 16GB RAM, …
AMD RX480 8GB

I first installed Leap, but ended up with a black screen. So after a couple of hours trying to get the driver working, I installed Tumbleweed and it worked right away without any configuration O:)

My problem is, that I only get sound from the headphone jack on the front of my case. My monitors are connected via HDMI to the graphics card, but could also get sound from the headphone jack on the motherboard.
Unfortunately, none of those methods are working.

I configured my AMD soundcard via YaST with automatic settings (I don’t know what all of those settings mean), and added “radeon.audio=1”, which is often recommended with this problem. I also installed alsa-firmware.

lspci:

00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Skylake PCIe Controller (x16) (rev 07)
00:02.0 Display controller: Intel Corporation HD Graphics 530 (rev 06)
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)
00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA controller [AHCI mode] (rev 31)
00:1b.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Root Port #17 (rev f1)
00:1b.2 PCI bridge: Intel Corporation Sunrise Point-H PCI Root Port #19 (rev f1)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1)
00:1c.3 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #4 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)
00:1d.4 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #13 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
00:1f.3 Audio device: Intel Corporation Sunrise Point-H HD Audio (rev 31)
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480] (rev c7)
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device aaf0
03:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 04)
05:00.0 USB controller: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller
06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

Thanks for your help!

Simon

Install pavucontrol, fire it up and from the Output Devices, change your output device to HDMI.

Thanks for your reply.

I installed it, it was already set to HDMI. No sound.

http://i.imgur.com/oTX7rqa.png

http://i.imgur.com/Hi6PJTZ.png

Thanks,
Simon

Maybe you need to enable radeon.audio?
https://doc.opensuse.org/release-notes/x86_64/openSUSE/12.1/#15

Ahh … ok. … But please can you confirm something here (as your screen prints do not show things that are needed to confirm this fully done).

One can control / redirect audio on a per application basis in the ‘playback’ area of pavucontrol. So one can have HDMI selected in the menu’s that you have shown, and still have audio going to the wrong device. Please when playing a multimedia application, look in the left playback tab in pavucontrol (I assume this is Wiedergab) and confirm HDMI is selected there.

Now if that does not fix things, can you give us more information? Send the following command in a konsole/xterm with regular user permissions while PC is connected to the internet:


/usr/sbin/alsa-info.sh

and let script run to completion. Select ‘share/upload’ when asked. After script completes it will put a link/url where audio config setup was copied to on the internet. Post that link here please.

Note I am about to travel to a different continent in less than a couple of days, so dependent on the time of your reply it could be many days before I in turn reply - as I am not certain yet when I will get internet access after my travel (to a different continent).

I already saw that. It’s changed to HDMI on Chromium, and if I play sound, I see the sound bar jumping around. (you know what i mean…)

http://www.alsa-project.org/db/?f=0f4542a1b83d14c3332e722c50e142dd8e8673dd

Have a good trip! :slight_smile:

Chromium is not the best app to test this. Have you tried with other applications to see if sound works ?

OK thanks.

I note two instances of the intel sound module running. YaST does not handle such cases well.


!!Loaded ALSA modules
!!-------------------
snd_hda_intel
snd_hda_intel

Looking further at the script :


!!Soundcards recognised by ALSA
!!-----------------------------

 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xdf320000 irq 138
 1 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                      HDA ATI HDMI at 0xdf260000 irq 137

I note card-1 is HDMI. By default sound goes to card-0 which is the PCH (ie ALC887 analog sound). So that is one complexity. Now we can force HDMI to be card-0, but lets leave that for a later attempt.

I note (out of curiousity) the hardware sound codecs for each device.


Codec: Realtek ALC887-VD
Codec: Intel Skylake HDMI

The aplay is useful to see what sound devices are recognized. Looking at it I note:


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

APLAY

**** List of PLAYBACK Hardware Devices ****
**card 0**: PCH [HDA Intel PCH], **device 0:** ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 0**: PCH [HDA Intel PCH], **device 1**: ALC887-VD Digital [ALC887-VD Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 0**: PCH [HDA Intel PCH], **device 3**: HDMI 0 [HDMI 0]
  Subdevices: 1/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
**card 1**: HDMI [HDA ATI HDMI], **device 3**: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
**card 1**: HDMI [HDA ATI HDMI], **device 7**: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 1**: HDMI [HDA ATI HDMI], **device 8**: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 1**: HDMI [HDA ATI HDMI], **device 9**: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 1**: HDMI [HDA ATI HDMI], **device 10**: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
**card 1**: HDMI [HDA ATI HDMI], **device 11**: HDMI 5 [HDMI 5]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Wow ! Many HDMI selections. And your PC has two separte HDMI devices. … ie hw:0,3 ; hw:0,7 ; hw:0,8 ; hw:1,3 ; hw:1,7 ; hw:1,8 ; hw:1,9 ; hw:1,10 ; hw:1,11 . Do you see these many selections in pavucontrol ? If you pick the wrong one sound won’t work via HDMI.

Lets see if we can find out which is correct. Try sending these one at a time in a konsole/xterm as a regular user and advise if any yield sound:


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

then


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

then


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

then


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

then


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

then


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

then


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

then


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

Do any of those yield sound. What error messages do you get (if any) ?

I anticipate you may get an error like this for some:


aplay: main:###: audio open error: No such file or directory

but I do not expect that for all. I am curious if you get other errors.

Further to the above, I also note:


01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device aaf0

This suggests to me AMD graphics.

What graphic driver are you using ? That can also affect your audio output.

I’ve tried firefox, same result.

Yeah, I see a LOT of HDMI devices in pavucontrol: Digital Stereo, Digital Surround 5.1 and Digital Surround 7.1, each with (HDMI, HDMI2, HDMI3, …HDMI6), although both Digital Surround 5.1 and 7.1 start at HDMI2.
It says “(unplugged)” after all of them, except for "Digital stereo (HDMI) output. That is the one I’ve chosen. (although I have two monitors via HDMI…shouldn’t it show two as active since they are two independent speakers?)

Most of the commands just run for a couple of seconds, then I get control back. No output. Except for this one:


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

This one responds something like “error opening device: device or resource is used” (my system is set to german, it’s my translation lol!)
But this is only, if I’m playing music in firefox with firefox set to HDMI. If I open pavucontrol, set it to analog and run it again, it is like every other command.

As I wrote in my first post, I had trouble getting video drivers to work in Leap. I think the missing one was ‘amdgpu’, and now with Tumbleweed, my video is working right away.
How can I find that? Here is some lspci information…but doesn’t say the used driver, I think.


01:00.0 **VGA** compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480] [1002:67df] (rev c7) (prog-if 00 **VGA** controller])
        Subsystem: PC Partner Limited / Sapphire Technology Radeon RX 470/480 [174b:e347]
        Flags: bus master, fast devsel, latency 0, IRQ 125
        Memory at c0000000 (64-bit, prefetchable) [size=256]
        Memory at d0000000 (64-bit, prefetchable) [size=2]
        I/O ports at e000 [size=256]
        Memory at df200000 (32-bit, non-prefetchable) [size=256]
        Expansion ROM at 000c0000 [disabled] [size=128]
        Capabilities: [48] Vendor Specific Information: Len=08 <?>
        Capabilities: [50] Power Management version 3
        Capabilities: [58] Express Legacy Endpoint, MSI 00
        Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>

[/size][/size][/size][/size][/size]

yeah - but its a browser and more of the same. … ie could be same corrupt plug in. Don’t you have a media player and a .wav file you can test with ?

The names “[size=2][FONT=arial]HDMI, HDMI2, HDMI3, …HDMI6” do not match the aplay HDMI0, HDMI1, HDMI2, HDMI3, HDMI4, and HDMI5 (with no HDMI6). Further to add confusion, I see the aplay has an HDMI0, HDMI1, and HDMI2 associated with device-0 and an HDMI0, HDMI1, and HDMI2 associated with device 1.

I don’t know what says ‘unplugged’. Something in pavucontrol ? I would recommend you try each HDMI in pavucontrol. If there were an HDMI 0 then I would say possibly HDMI 0 (associated with hw:1,3 ) has the best chance of working, albeit you need to select the correct HDMI (ie device-0 or device-1). Likely you have two HDMI outputs on the back of your PC. Which one are you using ? The one associated with the motherboard or the one associated with the graphic card ?

I don’t understand that. Again - firefox is not a good app for a solid audio test.

Further , do NOT send that aplay text command at the same time as firefox running as firefox may have seized the audio driver and may be refusing to share it.

Possibly the audio driver is a red herring and not relevant. In the old days one needed to add a special boot code to get audio working with HDMI when using the radeon open source driver but that is no longer the case.

[size=2][FONT=arial]

[/FONT][/size]

Like I typed, upon reflection the graphic driver may be a red herring. Still if curious, type in a konsole/xterm
[/FONT][/size]


/sbin/lspci -nnk | grep vga -iA2

and there is a good chance that will tell us what graphic driver is in use.
.

Were you attempting to play music in firefox with firefox set to HDMI at the same time you tested the other HDMI aplay commands I gave ? Thats not a good way to test if so. Firefox is best closed when testing. You don’t want it fighting for control of the audio device when using the aplay command.

I do not have HDMI setup in my PC, and on my PC if I send the aplay command I get :

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

with no audio (which makes sense since my HDMI is not setup). Did you get that “Playing WAVE” message at all ?

With hw:1,3 yielding different results in me speculating that is the HDMI audio device you are using.
.

What driver are you using for your RX480?

  • the prop. amdgpu-pro stack includes DC/DAL code, so HDMI/DP audio is supported
  • the oss amdgpu stack does NOT yet* include the DC/DAL code, so HDMI/DP audio will NOT work … if you don’t mind rolling your own, there is a testing branch available that includes it … * in regards to the DC/DAL stuff making its way into the official stream, it could be a while still before that happens

HDMI audio from your intel device, OTOH, should work.

On Thu 09 Mar 2017 03:06:01 PM CST, Tyler K wrote:

What driver are you using for your RX480?

  • the prop. amdgpu-pro stack includes DC/DAL code, so HDMI/DP audio is
    supported
  • the oss amdgpu stack does NOT yet* include the DC/DAL code, so
    HDMI/DP audio will NOT work … if you don’t mind rolling your own,
    there is a testing branch available that includes it … * in regards
    to the DC/DAL stuff making its way into the official stream, it could
    be a while still before that happens

HDMI audio from your intel device, OTOH, should work.

Hi
Hmm I’m running the oss amdgpu driver (default kernels) on two systems
(laptops) both have HDMI/DP and it works fine? This is openSUSE
42.2/Tumbleweed and SLED 12 SP2.


Cheers Malcolm °¿° SUSE Knowledge Partner (Linux Counter #276890)
openSUSE Leap 42.1|GNOME 3.16.2|4.1.36-44-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

  • DCE6 (SI stuff) only very recently (less then a month) saw patches for HDMI/DP audio via older implementation pathway
  • DCE8 have probably supported via older style pathway from the get go <— your Mullins fits in here … I do not recall offhand what your other hardware is, but it certainly sounds (pun intended) like it fits in here too
  • DCE10 and above have only one codepath: they require DC/DAL

As the RX480 is a Polaris, its a no go unless you pursue the two routes mentioned above

Sure, .wav file playing in Amarok.

I have one HDMI port on my mainboard, and 2xHDMI+2xDP on my graphics card. I am using the two HDMI ports on my graphics card.
http://i.imgur.com/YLkLTGy.png

As in the picture, it says ‘unplugged’ behind everything in that menu (cant screenshot it…), except for “Digital Stereo (HDMI) output” and “off”.

Oh…okay, good to know.

.

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


Seems like it’s amdgpu, so not the prop. amdgpu-pro…

Yeah, forgot that. It says that.

As above, it seems like I’m running the amdgpu driver, not amdgpu-pro. (I read, that’s still in beta)
Where could I find this testing branch? Something like github?

That’s good to hear.

Thanks

I agree with Tyler_K. The one on your main board should work for audio. However I sense you want to use the one on the graphic card because of its graphics functionality.
.

Hey there.

I got my sound working now, so I want to write down what the summary of all that was, so that others having same issues will have an answer.

First of all, I should say that I’m using Arch Linux now. (but this would be the same on openSuse).
It is no problem with alsa or any sound driver. In fact, it is because of AMD DC (or DAL called previously). This is the part, what was missing in my KERNEL.
Unfortunately, it isn’t released in the Linux kernel yet, and, at the moment, won’t be any time soon. https://www.phoronix.com/scan.php?page=news_item&px=AMD-DAL-Renamed-DC

There are some kernels available that include that, but I don’t think that this would be a good long-term solution. I haven’t tried one out.

The proprietary driver amdgpu-pro claims to include it (although I didn’t test), but I wouldn’t recommend the driver anyway. My system graphics is super smooth, like scrolling on a website, with the xf86-video-amdgpu open driver. But with the amdgpu-pro one, it’s just choppy choppy as hell! I uninstalled it right away, because it was just so annoying to me.
https://aur.archlinux.org/packages/amdgpu-pro/ (yes, this is for arch).

So in the end, I am using normal aux cable for my monitor sound. Until, maybe, DC will make it into the main kernel.

Thanks for the help from all of you guys! :slight_smile: