I am currently running Debian Wheezy on a HP Microserver N54L with an AMD Radeon 5450 video card.

I would like to be able to play audio from the console through the HDMI port of my video card and into my receiver, a Panasonic SA-XR57.

I previously achieved this on a Raspberry Pi running raspbian by setting the HDMI output to "safe mode" (the default mode was incompatible with my aging receiver), but I am not sure how to replicate these settings in Debian. Any ideas on how I could get started would be appreciated, because I'm not sure how to even start with this problem.

EDIT: I should make it clear that my problem is getting my receiver to handle the HDMI signal by working out how to change the HDMI settings to a more compatible mode, rather than anything specifically audio related.

EDIT2: I've discovered a few facts in the last couple of hours which I thought I should put up here.

The error I get on my receiver is "U70-1-2", of which in the manual says "the unit has received a signal for a picture format that is incompatible with the HDMI connection. Check the settings of the connected equipment". I get this error in the Linux console, the bios, and in grub menus. I also had this error with my Raspberry Pi, but it was solved by enabling "safe mode" in the rpi's config.txt file.

EDIT3: Okay, I've worked out how to change the resolution to something low and compatible (I believe this is the resolution in the rpi safe mode) in the console by adding video=HDMI-A-1:640x480@60 to my kernel parameters. This changes my resolution when I'm plugged into a tv, but if I plug into my receiver I get the same error on the receiver side. I think my next step is to disable EDID, which is also a feature of rpi's safe mode. I've googled a bit to no avail, so at the moment my question is:

How do I disable EDID during the boot process?

EDIT4: Today I've tried recompiling the kernel with CONFIG_DRM_LOAD_EDID_FIRMWARE enabled and booting with the kernel parameter drm_kms_helper.edid_firmware=HDMI-A-1:edid/1024x768.bin - which I believe should load a fixed EDID file in (although I'm not sure, because I've read conflicting things on whether or not the sample EDID files are hardwired into the kernel). On booting the receiver sends the same error and in dmesg I have the errors:

[ 346.374275] platform HDMI-A-1: firmware: agent aborted loading edid/1024x768.bin (not found?)

[ 346.374483] [drm] Got built-in EDID base block and 0 extensions from "edid/1024x768.bin" for connector "HDMI-A-1"

EDIT5: I have also tried getting the EDID file in Windows and loading that in to the kernel - which works, except still gives an error on my receiver. When I extracted the EDID file I used the same receiver but a different computer with a different graphics card - as far as I'm aware the EDID file is only dependent on the monitor (in this case receiver) so it shouldn't matter on the graphics card, is this correct? Turns out that Windows cannot read an EDID file for my receiver and I was scraping the one from my monitor.

EDIT6: Okay, I got it. It turns out that I needed audio enabled (radeon.audio=1 in kernel parameters) in order for my receiver to get signal. Makes sense, but very annoying that my receiver manual told me that it was a video error, I was planning on worrying about the audio afterwards!

  • My gut tells me that disabling EDID is not the solution to your problem. Have you tried sending the receiver standard HDTV modes (720p or 1080i)? To me it's likelier that the receiver is only designed to handle the two lower-bandwidth HDTV modes than needing extremely low resolutions and barfing over EDID requests. – drs Apr 22 '14 at 11:41
  • Also, I don't know Debian at all, but there should be an easier way to set a connector's resolution than editing the kernel parameters, no? – drs Apr 22 '14 at 11:42
  • You're right that my receiver only handles up to 720p and 1080i. I'm sending it 420p at the moment and it doesn't agree with it - however that resolution worked with the raspberry pi. I'm not 100% that the issue is EDID, but there is something in the raspberry pi safe mode configuration that caused it to work, and I thought disabling EDID would be work a shot. – user2696276 Apr 22 '14 at 14:04
  • And I think this issue would be easier to solve in X, but because I'm planning on running from the console I need (I think?) to set the HDMI configuration things up at a kernel level. I might have a play around trying to get it working under X so I might be able to troubleshoot what my specific problem is – user2696276 Apr 22 '14 at 14:06
  • Sorry, I didn't catch that you were limited to a console. You say you booted with the HDMI connected to the TV and verified it was 420p. Did you unplug the cable and then plug it into the receiver without rebooting? I don't know if the kernel will honor the mode specified at boot for connections made later on. Try booting with the cable plugged into the receiver. – drs Apr 22 '14 at 14:20

On Debian it should just be a case of changing the Pulse Audio profile. For me it as as simple as:

pactl set-card-profile 0 output:hdmi-stereo

The number of the card and the name of the profile you need may differ though. You can see the available options by doing:

pactl list cards
  • Sorry, I should have made it explicit that my problem is to do with the receiver not being able to handle the HDMI signal due to video incompatibilities, rather than getting HDMI audio output. I'll add this to my question. – user2696276 Apr 20 '14 at 11:46

Not the answer you're looking for? Browse other questions tagged or ask your own question.