No sound from hdmi on a rx 480 with with a tv onone port a vga adapted monitor on the other

I have been trying to follow the advice and methods for troubleshooting and restoring sound with no success. I ran the aplay script and uploaded to http://www.alsa-project.org/db/?f=b5c8cdc1671f0ba8ab7685fff331adb12603e79c. My cpu is an fx8350, I have 32gb of ram, My motherboard is a Asus M5A99X Pro r2.0 with a MSI Radeon RX480 8GB graphics card. I have pulse and its additional software installed from Packman. In fact, I switched all packages to Packman. My OS is Tumbleweed. And…I have no clue how to proceed. I am so needing some help from the great minds in this forum. Would someone, please, point me in the right direction.

/sbin/lspci -nnk | grep -A2 VGA returns -

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480] [1002:67df] (
Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:3415]
Kernel driver in use: amdgpu

Maybe this one will help:
https://doc.opensuse.org/release-notes/x86_64/openSUSE/12.1/#15

Nope, not in this case. “Ellesmere [Radeon RX 470/480]” is from the Polaris family … Polaris is supported by the amdgpu kernel driver. Currently, amdgpu for Polaris doesn’t support hdmi/dp audio natively …though, what you presently can do to get it working is either

  • try the out of tree version that is available (as it includes the necessary DC/DAL driver that will provide support on such adapters), or
  • you can install the amdgpu-pro driver, which includes the DC/DAL code

…or you can wait for that the DC/DAL to go mainline (might be a while, as issues need to be resolved), and at which point, the vanilla amdgpu driver stack will provide such support.

I read and tried the information in the link. I am still with out sound. The PulseAudio Volume Control window shows the apps are generating an audio activity response, however the monitor speakers aren’t generating any sound. Additionally, my pc is a dual boot environment with Windows 10 and Tumbleweed residing on their own 1TB ssd. In the Windows environment, I have no sound issues with the same configuration. I did have sound with the MSI R7 260x 2GB OC. However, my two monitors were plugged into different ports; one was hdmi, the other was vga. As the new card doesn’t support vga directly, I purchased and am using an active HDMI-to-VGA adapter. Before seeking help, I did install the amdgpu pro driver. hence, I am so up the creek and at my limited wits end.:’(

Not surprising, as you should have read the next message in the thread lol!

well… from what you described, I’d suspect that you just need to switch it over to the correct audio output

What desktop are you using … if plasma, click on the volume, switch to the applications tab, then drag the stream your playing over to the devices tab and drop it onto the output device you want to hear the sound on (i.e. your rx470’s hdmi audio)

Upon re-reading, I’m a little confused about how you’re connecting to the monitors.

If it previously was

R7 260x

  • hdmi out to monitor 1’s hdim input <– then I’d think this is what hdmi audio would be coming across
  • vga out to monitor 2’s vga input

How are you now connecting with the new rx470/480 card?

my television/monitor (a haier 21.5 inch 1080p) is plugged directly to one of the two hdmi ports. the vga ( a hp pavilion vf52) is plugged into a hdmi-to-vga adapter.

I will try the drag and drop suggestion and report back. the desktop is KDE Plasma 5.8.4, KDE Frameworks 5.29.0, Qt 5.7.0, Kernel 4.9.0-2.g6bc0c0-default, OS type 64bit, Tumbleweed 20161219

I tried the drag and drop method…no change

Also, Tyler_K, can you, please, explain a little about this information:

  • try the out of tree version that is available (as it includes the necessary DC/DAL driver that will provide support on such adapters), or
  • you can install the amdgpu-pro driver, which includes the DC/DAL code

…or you can wait for that the DC/DAL to go mainline (might be a while, as issues need to be resolved), and at which point, the vanilla amdgpu driver stack will provide such support.

How would I implement an out of tree version? Where would I look to find it? And, if I already have AMDGPU Pro installed, do I need to concern myself with finding the tree version that contains the DC/DAL code?

here is some more info I am able to get

sudo lspci -v | grep -A7 -i “audio”
[sudo] password for root:
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA) (rev 40)
Subsystem: ASUSTeK Computer Inc. Device 84fb
Flags: bus master, slow devsel, latency 32, IRQ 16, NUMA node 0
Memory at feb00000 (64-bit, non-prefetchable) [size=16]
Capabilities: [50] Power Management version 2
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel


01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device aaf0
Subsystem: Micro-Star International Co., Ltd. [MSI] Device aaf0
Flags: bus master, fast devsel, latency 0, IRQ 49, NUMA node 0
Memory at fea60000 (64-bit, non-prefetchable) [size=16]
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+

cat /proc/asound/cards
0 [SB ]: HDA-Intel - HDA ATI SB
HDA ATI SB at 0xfeb00000 irq 16
1 [HDMI ]: HDA-Intel - HDA ATI HDMI
HDA ATI HDMI at 0xfea60000 irq 49
2 [C615 ]: USB-Audio - HD Webcam C615
HD Webcam C615 at usb-0000:07:00.0-1, high speed
lsmod| grep snd
snd_usb_audio 180224 1
snd_usbmidi_lib 28672 1 snd_usb_audio
snd_rawmidi 32768 1 snd_usbmidi_lib
snd_seq_device 16384 1 snd_rawmidi
snd_hda_codec_realtek 86016 1
snd_hda_codec_generic 69632 1 snd_hda_codec_realtek
snd_hda_codec_hdmi 45056 1
snd_hda_intel 36864 6
snd_hda_codec 135168 4 snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_core 81920 5 snd_hda_intel,snd_hda_codec,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hwdep 16384 2 snd_hda_codec,snd_usb_audio
snd_pcm 122880 6 snd_hda_intel,snd_hda_codec,snd_usb_audio,snd_hda_core,snd_hda_codec_hdmi
snd_timer 32768 1 snd_pcm
snd 90112 25 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_usb_audio,snd_timer,snd_rawmidi,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_usbmidi_lib,snd_seq_device,snd_hda_codec_realtek,snd_pcm
soundcore 16384 1 snd
usbcore 253952 15 uvcvideo,usbhid,snd_usb_audio,usb_storage,ehci_hcd,xpad,ohci_pci,usblp,xhci_pci,snd_usbmidi_lib,btusb,uas,ohci_hcd,xhci_hcd,ehci_pci

I’m trying to provide as much info as I can gather from my machine as I can. I hope it can be used and isn’t useless.[/size][/size]

50-sound.conf contains

options snd slots=snd-hda-intel,snd-hda-intel

NXNs.doyuXdAXYq0:ATI Technologies Inc

alias snd-card-0 snd-hda-intel

5Dex.jmaP8JGTPY5:SBx00 Azalia (Intel HDA)

alias snd-card-1 snd-hda-intel

and blacklist-radeon.conf contains

blacklist radeon

If I read this thread correctly, you are trying to output sound via HDMI to your monitor speakers. I note from the diagnostic script:



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

 0 [SB             ]: HDA-Intel - HDA ATI SB
                      HDA ATI SB at 0xfeb00000 irq 16
 1 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                      HDA ATI HDMI at 0xfea60000 irq 49
 2 [C615           ]: USB-Audio - HD Webcam C615
                      HD Webcam C615 at usb-0000:07:00.0-1, high speed

i.e. your HDMI device is sound card-1. By default all sound is automotically routed to sound card-0. Hence unless redirected in ‘pavucontrol’ configuration tab to HDMI your sound will go to the ATI SB and not to the HDMI.

I also note:


!!-------Mixer controls for card 1 [HDMI]

Card hw:1 'HDMI'/'HDA ATI HDMI at 0xfea60000 irq 49'
  Mixer name    : 'ATI R6xx HDMI'
  Components    : 'HDA:1002aa01,00aa0100,00100700'
  Controls      : 28
  Simple ctrls  : 4
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',1
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',2
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',3
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]

If I read that correct, it tells me your HDMI devices are hw:1,0 ; hw:1,1 ; hw:1,2 ; and hw:1,3 .

I would like you try in a terminal (as both a regular user, and also with root permissions) the following commands one at a time, and advise if ANY of them give sound. Apologies for so many, but I’m struggling with a head-cold flu and I can’t recall the difference between “-dplughw” and “-D plughw” . So try all 8 first as a regular user, then if that fails, try with root permissions.

aplay -dplughw:1,0 /usr/share/sounds/alsa/test.wav
aplay -dplughw:1,1 /usr/share/sounds/alsa/test.wav
aplay -dplughw:1,2 /usr/share/sounds/alsa/test.wav
aplay -dplughw:1,3 /usr/share/sounds/alsa/test.wav

and

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

Please advise if any yield sound.

Please ignore above … I gave wrong values (darn head cold) … I note:


APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/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

ie hdmi devices are hw:1,3 ; hw:1,7 ; hw:1,8 ; hw:1,9

So please send these commands in a konsole/xterm (one at at time) as a regular user (and if no sound from any there - then repeat with root permissions) :

aplay -dplughw:1,3 /usr/share/sounds/alsa/test.wav
aplay -dplughw:1,7 /usr/share/sounds/alsa/test.wav
aplay -dplughw:1,8 /usr/share/sounds/alsa/test.wav
aplay -dplughw:1,9 /usr/share/sounds/alsa/test.wav

and

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

apologies for the error.

Thank you oldcpu. And, certainly I am in a state of gratitude for of the help I am receiving. You mentioned an error, I see nothing but humanity at its best. Man and Man against the machine.:slight_smile:

As to the commands you said to try, I tried them both as user and root. Click and pasted, one at a time, so as to avoid any typographical errors. No sound.

as user

aplay -dplughw:1,3 /usr/share/sounds/alsa/test.wav
aplay: main:624: invalid duration argument ‘plughw:1,3’
johnson@localhost:~> aplay -dplughw:1,7 /usr/share/sounds/alsa/test.wav
aplay: main:624: invalid duration argument ‘plughw:1,7’
johnson@localhost:~> aplay -dplughw:1,8 /usr/share/sounds/alsa/test.wav
aplay: main:624: invalid duration argument ‘plughw:1,8’
johnson@localhost:~> aplay -dplughw:1,9 /usr/share/sounds/alsa/test.wav
aplay: main:624: invalid duration argument ‘plughw:1,9’
johnson@localhost:~> aplay -D plughw:1,3 /usr/share/sounds/alsa/test.wav
Playing WAVE ‘/usr/share/sounds/alsa/test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
johnson@localhost:~> aplay -D plughw:1,7 /usr/share/sounds/alsa/test.wav
Playing WAVE ‘/usr/share/sounds/alsa/test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
johnson@localhost:~> aplay -D plughw:1,8 /usr/share/sounds/alsa/test.wav
Playing WAVE ‘/usr/share/sounds/alsa/test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
johnson@localhost:~> aplay -D plughw:1,9 /usr/share/sounds/alsa/test.wav
Playing WAVE ‘/usr/share/sounds/alsa/test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

as root

aplay -dplughw:1,3 /usr/share/sounds/alsa/test.wav
aplay: main:624: invalid duration argument ‘plughw:1,3’
localhost:~ # aplay -dplughw:1,7 /usr/share/sounds/alsa/test.wav
aplay: main:624: invalid duration argument ‘plughw:1,7’
localhost:~ # aplay -dplughw:1,8 /usr/share/sounds/alsa/test.wav
aplay: main:624: invalid duration argument ‘plughw:1,8’
localhost:~ # aplay -dplughw:1,9 /usr/share/sounds/alsa/test.wav
aplay: main:624: invalid duration argument ‘plughw:1,9’
localhost:~ # aplay -D plughw:1,3 /usr/share/sounds/alsa/test.wav
Playing WAVE ‘/usr/share/sounds/alsa/test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
localhost:~ # aplay -D plughw:1,7 /usr/share/sounds/alsa/test.wav
Playing WAVE ‘/usr/share/sounds/alsa/test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
localhost:~ # aplay -D plughw:1,8 /usr/share/sounds/alsa/test.wav
Playing WAVE ‘/usr/share/sounds/alsa/test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
localhost:~ # aplay -D plughw:1,9 /usr/share/sounds/alsa/test.wav
Playing WAVE ‘/usr/share/sounds/alsa/test.wav’ : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

After reading the commands a little closer, I noticed what may be a syntax error

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

I made the change in the commands as below and re-ran the commands and got the “Playing WAVE…” output…still no sound.

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

I manned the aplay command and saw that -D and -d are both valid switches (if I have the term correctly). when I attempted to run the command I got

aplay -d plughw:1,9 /usr/share/sounds/alsa/test.wav
aplay: main:624: invalid duration argument ‘plughw:1,9’

and

aplay -dplughw:1,9 /usr/share/sounds/alsa/test.wav
aplay: main:624: invalid duration argument ‘plughw:1,9’

and attempting to insert a time…

aplay -d 30 plughw:1,9 /usr/share/sounds/alsa/test.wav
plughw:1,9: No such file or directory

Please, forgive my ignorance. Although I have been a suse user and fan since at least version 7.can’t remember, I still don’t have the skill set to tackle this issue.

If the “-d” is used in aplay with a ‘space’ afterward, it will be interpeted as a ‘duration’ switch and you will get a “invalid duration” argument. That is why the syntax is “-dplughw:1,3” and NOT “-d plughw:1,3”. Now if “-dplughw:1,3” is used, I believe the sound will be routed through pulse audio, and go not to hw:1,3 but will instead go to what ever device pulse audio has selected. You should not get a “invalid duration” argument with “-dplughw:1,3”.

Now if the “-D” is used as a switch, WITH a ‘space’ afterward, it should not go via pulse audio but rather should go direct to the alsa hardware device.

By your using the “-D plughw:1,3” as both a regular user and as a route user (and doing same for hw:1,7, hw:1,8, and hw:1,9) and not getting sound suggests to me that the graphic driver (which feed the alsa driver) is not properly configured to use your hardware.

Given the dmesg notes:


    5.660104] input: HDA ATI HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:02.0/0000:01:00.1/sound/card1/input6
    5.660174] input: HDA ATI HDMI HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:02.0/0000:01:00.1/sound/card1/input7
    5.660239] input: HDA ATI HDMI HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:02.0/0000:01:00.1/sound/card1/input8
    5.660293] input: HDA ATI HDMI HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:02.0/0000:01:00.1/sound/card1/input9

this is a puzzle to me. I had thought sound should be working with either the hw:1,3 or hw:1,7 or hw:1,8 or hw:1,9 .

I am thinking now the problem is as noted by Tyler_K with your graphic driver (which provides part of the HDMI sound functionality).

Ever since one of the 3.x versions of the kernel, one no longer needs to specify “radeon.audio=1” with the open source graphic driver, so with Tumbleweed if you were using the open source graphic driver then I do not think adding that boot code would help.

But I recall you noted your AMD device:


/sbin/lspci -nnk | grep -A2 VGA returns -

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480] [1002:67df] (
Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:3415]
Kernel driver in use: amdgpu 

I am not familiar with the amdgpu driver. I assume that is a proprietary amd driver ?

Anyway, in any case, I suspect Tyler_K is correct, and the amdgpu for Poalris does not support the hdmi/dp audio natively. I recommend you follow up on his comments (see post#3 above) and have him further amplify his post for aspects you do not understand.

Further - note this article from 9-Aug-2016: Open-Source AMD Polaris Audio Support Isn't Coming Until DAL Lands - Phoronix which states:

[INDENT=2]Just as a quick word of warning, the open-source AMD Linux driver stack won’t be supporting HDMI/DP audio with the new Radeon RX 460/470/480 “Polaris” graphics cards until its massive DAL code-base is merged. [/INDENT]

Again - I recommend you follow up on Tyler_K’s recommendation.

That’s unfortunate it wasn’t that easy.

If you have amdgpu-pro installed, then don’t bother (as amdgpu-pro includes the DC/DAL code) … if you wanted the vanilla amdgpu, you’d grab a copy of Alex Deucher’s staging development tree that includes (DC/DAL) … ~agd5f/linux - Unnamed repository; edit this file 'description' to name the repository.

I have a suspicion that “-A7” must be something floating around on the internet lol! See my recent comment here: https://forums.opensuse.org/showthread.php/521208-sound-device-not-found-listed-on-new-system-reboot-helps-sometimes?p=2801418#post2801418
for, the output you have shown for the amd adapter is indeed truncated

There shouldn’t be any need for that – your device is not supported by the radeon driver (some older GCN hardware can make use of radeon or amdgpu, but that is not applicable in your case. (For details, see here: https://forums.opensuse.org/showthread.php/521843-Black-Screen-after-Upgrade-to-42-2?p=2805225#post2805225))

There is a hybrid driver model now for the newer devices … amdgpu is the vanilla oss kernel driver whereas amdgpu-pro is the prop. kernel driver (the prop. package also includes some currently prop. userspace stuff for the driver stack). Currently there is a degree of difference between the two (the oss stack vs. the prop. stack) particularly with respect to openCL,Vulkan, DC/DAL, etc., but the differential will be on the order of 0.1% in the future (see my comment in the last link).

Anyway, in any case, I suspect Tyler_K is correct, and the amdgpu for Poalris does not support the hdmi/dp audio natively. I recommend you follow up on his comments (see post#3 above) and have him further amplify his post for aspects you do not understand.
yep, that’s the case with the oss amdgpu kernel driver currently.

However, the amdgpu-pro version should support it. My quick thoughts on this are:

  • is there a kernel parm required for it to be enabled? see the modinfo for the amdgpu-pro driver … perhaps an amdgpu.audio=1 is currently required for Polaris adapters
  • perhaps, on the computer, just swap the hdmi cable going to the tv to the other output on the Polaris card
  • though its likely just a repeat of what oldcpu had you attempt, have a look at PulseAudio/Examples - ArchWiki and see if that helps out
  • can you provide a screen shot (upload it to susepaste) of what pulseaudio audio control for the output tab looks like … similarly with the plasma volume app’s device tab

Thanks for that update. I see now on on the AMD page: http://support.amd.com/en-us/kb-articles/Pages/AMDGPU-PRO-Driver-for-Linux-Release-Notes.aspx for the amdgpu-pro driver.

and it supports Radeon™ RX 480 Graphics.

I note the OP states “Before seeking help, I did install the amdgpu pro driver.” … yet according to the first post, the OP has the amdgpu and not the amdgpu-pro driver.


/sbin/lspci -nnk | grep -A2 VGA returns -

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480] [1002:67df] (
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:3415]
        Kernel driver in use: **amdgpu** 

ie what they state they have installed (amdgpu-pro) is not consistent with what ‘lspci’ indicates (whch is amdgpu).
.