Can't get HDMI audio to work for ATI HD 5450 with default radeon driver despite enabling radeon.audio=1
I've been trying to get HDMI audio working for my ATI HD 5450 using the default "radeon" kernel drivers.
I have a vanilla install of RHEL except for getting the latest updates from yum (and have also tried Fedora 23, Ubuntu 16.04 and 17.04, and possibly others I can't remember).
I've been scouring the net for an answer but no luck yet.
This article provided some useful info but I still can't get any sound: http://forums.fedoraforum.org/showthread.php?p=1786436#post1786436
I've added the "radeon.audio=1" argument to the GRUB2 config with grubby.
sudo grubby --args="radeon.audio=1" --update-kernel /boot/vmlinuz-3.10.0-514.el7.x86_64
Confirmed with grubby that it's been applied:
$ sudo grubby --info=ALL
index=0
kernel=/boot/vmlinuz-3.10.0-514.el7.x86_64
args="ro crashkernel=auto rd.lvm.lv=linux/rhel-root rd.lvm.lv=linux/swap rhgb quiet LANG=en_AU.UTF-8 radeon.audio=1"
It has taken effect in /boot/grub2/grub.cfg:
linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/linux-rhel--root ro crashkernel=auto rd.lvm.lv=linux/rhel-root rd.lvm.lv=linux/swap rhgb quiet LANG=en_AU.UTF-8 radeon.audio=1
I restarted and can see with modprobe that the argument has been applied to the radeon driver:
$ sudo modprobe -c radeon | grep -i audio
options radeon audio=1
options radeon audio=1
However still no audio. No sound from speaker-test. No sound from CD. No sound from the GNOME speaker test in System Preferences.
I installed pavucontrol but nothing is muted. I tried stereo and 5.1 but no improvement.
I checked the official documentation for the radeon driver and it says HDMI audio is supported for Evergreeen cards since kernel 3.3, and RHEL 7.3 has kernel 3.10:
https://www.x.org/wiki/RadeonFeature/#index1h2
$ uname -a
Linux mediapc-rhel.localdomain 3.10.0-514.el7.x86_64 #1 SMP Wed Oct 19 11:24:13 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux
Any ideas? That's about the extent of my knowledge on how to assess the issue so all suggestions, no matter how simple, very welcome.
Responses
[ 4353.981883] [drm:radeon_dvi_detect [radeon]] *ERROR* HDMI-A-1: probed a monitor but no|invalid EDID
This might very well be relevant, as EDID is what tells the system whether or not the device on the other end of the HDMI connection is even capable of accepting sound, and ifit is, what audio formats it might accept.
You might want to look for files named /proc/asound/cardN/eld* and see what's in them. On my system, /proc/asound/card0 is the HDAudio chip integrated in the motherboard, and /proc/asound/card1 is the audio output of my NVIDIA GPU. In other words, for the purpose of HDMI audio output, the GPU will appear as an extra HDAudio sound card, so the "primary" sound card will not be involved at all.
When I connect the GPU's HDMI output to my TV, this is what I see in /proc/asound/card1/eld#0.0:
monitor_present 1
eld_valid 1
monitor_name SONY TV
connection_type HDMI
eld_version [0x2] CEA-861D or below
edid_version [0x3] CEA-861-B, C or D
manufacture_id 0xd94d
product_id 0x7001
port_id 0x200
support_hdcp 0
support_ai 0
audio_sync_delay 0
speakers [0x1] FL/FR
sad_count 1
sad0_coding_type [0x1] LPCM
sad0_channels 2
sad0_rates [0xe0] 32000 44100 48000
sad0_bits [0xe0000] 16 20 24
That is, my TV will accept only two-channel PCM audio with three specific sample rates and bits-per-sample values.
If the equivalent information has not been received from your HDMI display device, then the behavior will depend on the driver. It might behave like a speaker connector with the speakers unplugged, i.e. it will accept the audio output but won't actually produce sound; or it might report to the sound system that the audio capability is not available.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
