Solved No Sound over HDMI with FreeBSD 12.2 + AMD RX580

As the title suggests, I cannot get any sound output from a TV plugged into the HDMI port of my RX580 gfx card. The machine is dual boot with Win7 which is working fine, so i know it's not a hardware issue. I'm pretty sure the TV is connected to the 4th port (pcm3) on the gfx card, so I have tried changing the hw.snd.default_unit to each available number (0..5) and then trying cat /dev/urandom > /dev/dsp, but I hear nothing from any unit. I've also checked mixer volumes are set to 100, and speakers are turned way UP! :cool:

Not sure where to go from here as there is nothing obvious wrong with the setup.. any suggestions appreciated!
 

Attachments

  • dmesg_grep_hda.txt
    451 bytes · Views: 104
  • sndstat.txt
    250 bytes · Views: 99
  • mixer.txt
    86 bytes · Views: 90
  • sndstat_verbose.txt
    6.2 KB · Views: 114
As the title suggests, I cannot get any sound output from a TV plugged into the HDMI port of my RX580 gfx card. The machine is dual boot with Win7 which is working fine, so i know it's not a hardware issue. I'm pretty sure the TV is connected to the 4th port (pcm3) on the gfx card, so I have tried changing the hw.snd.default_unit to each available number (0..5) and then trying cat /dev/urandom > /dev/dsp, but I hear nothing from any unit. I've also checked mixer volumes are set to 100, and speakers are turned way UP! :cool:

Not sure where to go from here as there is nothing obvious wrong with the setup.. any suggestions appreciated!
Try this
doas sysctl dev.hdac.0.polling=1
doas sysctl dev.hdac.1.polling=1
*doas or sudo depends what you have installed

then set default soundcard again and it should work i had these problems in the previous release on my desktop and my laptop too.
Right now i have connected my headphones and speakers to the output of the soundcard cause i had no reason to use the monitor's output there i have installed the android tvbox of my provider to watch tv and cable channels....
 
Try this
doas sysctl dev.hdac.0.polling=1
doas sysctl dev.hdac.1.polling=1
*doas or sudo depends what you have installed

then set default soundcard again and it should work i had these problems in the previous release on my desktop and my laptop too.
Right now i have connected my headphones and speakers to the output of the soundcard cause i had no reason to use the monitor's output there i have installed the android tvbox of my provider to watch tv and cable channels....

Tried this and catting random to each /dev/dspX device but still no joy! :-(

Thanks for the suggestions anyway, going to upgrade from 12.2 -> 13.0 soon so maybe that will fix it 🤞
 
Thanks for the help everyone, but it's now solved!!! :cool:

Upgraded to FreeBSD 13.0-RELEASE over the weekend, then established which unit is actually connected with the following;

$ sysctl dev.hdac.0.pindump=1
$ dmesg

Code:
hdaa0: Dumping AFG pins:
hdaa0: nid   0x    as seq device       conn  jack    loc        color   misc
hdaa0:  3 185600f0 15 0  Digital-out   Jack  Digital 0x18       Unknown 0
hdaa0:     Caps:    OUT              Sense: 0x7fffffff (disconnected, ELD valid)
hdaa0:  5 185600f0 15 0  Digital-out   Jack  Digital 0x18       Unknown 0
hdaa0:     Caps:    OUT              Sense: 0x7fffffff (disconnected, ELD valid)
hdaa0:  7 185600f0 15 0  Digital-out   Jack  Digital 0x18       Unknown 0
hdaa0:     Caps:    OUT              Sense: 0x7fffffff (disconnected, ELD valid)
>>>>>>>>>>>>>>>>
hdaa0:  9 185600f0 15 0  Digital-out   Jack  Digital 0x18       Unknown 0
hdaa0:     Caps:    OUT              Sense: 0xffffffff (connected, ELD valid)
<<<<<<<<<<<<<<<<
hdaa0: 11 185600f0 15 0  Digital-out   Jack  Digital 0x18       Unknown 0
hdaa0:     Caps:    OUT              Sense: 0x7fffffff (disconnected, ELD valid)
hdaa0: 13 185600f0 15 0  Digital-out   Jack  Digital 0x18       Unknown 0
hdaa0:     Caps:    OUT              Sense: 0x7fffffff (disconnected, ELD valid)
hdaa0: 15 585600f0 15 0  Digital-out   None  Digital 0x18       Unknown 0 DISA
hdaa0:     Caps:    OUT              Sense: 0x7fffffff (disconnected, ELD valid)
hdaa0: NumGPIO=0 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=0

$ dmesg | grep pcm
Code:
pcm0: <ATI R6xx (HDMI)> at nid 3 on hdaa0
pcm1: <ATI R6xx (HDMI)> at nid 5 on hdaa0
pcm2: <ATI R6xx (HDMI)> at nid 7 on hdaa0
>>>>>>>>>>
pcm3: <ATI R6xx (HDMI)> at nid 9 on hdaa0
<<<<<<<<<<
pcm4: <ATI R6xx (HDMI)> at nid 11 on hdaa0
pcm5: <ATI R6xx (HDMI)> at nid 13 on hdaa0

Finally, appended the following line to /etc/sysctl.conf
Code:
hw.snd.default_unit=3

Rebooted and now have working audio via HDMI (and it sounds great too!) :cool:
 
Back
Top