从 Linux 控制台设置 HDMI 输出

从 Linux 控制台设置 HDMI 输出

我目前在配备 AMD Radeon 5450 显卡的 HP Microserver N54L 上运行 Debian Wheezy。

我希望能够通过视频卡的 HDMI 端口将控制台中的音频播放到我的接收器(松下 SA-XR57)中。

我之前在运行 raspbian 的 Raspberry Pi 上通过将 HDMI 输出设置为“安全模式”(默认模式与我老化的接收器不兼容)实现了这一点,但我不确定如何在 Debian 中复制这些设置。任何关于如何开始的想法将不胜感激,因为我不确定如何开始解决这个问题。

编辑:我应该明确指出,我的问题是让我的接收器通过解决如何将 HDMI 设置更改为更兼容的模式来处理 HDMI 信号,而不是任何与音频相关的具体问题。

EDIT2:在过去的几个小时里我发现了一些事实,我认为我应该把它们放在这里。

我的接收器上收到的错误是“U70-1-2”,手册中显示“本机收到了与 HDMI 连接不兼容的图像格式信号。请检查所连接设备的设置”。我在 Linux 控制台、BIOS 和 grub 菜单中收到此错误。我的 Raspberry Pi 也遇到了这个错误,但通过在 rpi 的 config.txt 文件中启用“安全模式”解决了这个错误。

EDIT3:好的,我已经弄清楚如何通过将 video=HDMI-A-1:640x480@60 添加到我的控制台中将分辨率更改为低且兼容的分辨率(我相信这是 rpi 安全模式下的分辨率)内核参数。当我插入电视时,这会改变我的分辨率,但如果我插入接收器,接收器端也会出现相同的错误。我想我的下一步是禁用EDID,这也是rpi安全模式的一个功能。我用谷歌搜索了一下没有结果,所以目前我的问题是:

如何在启动过程中禁用 EDID?

EDIT4:今天我尝试在启用 CONFIG_DRM_LOAD_EDID_FIRMWARE 的情况下重新编译内核,并使用内核参数 drm_kms_helper.edid_firmware=HDMI-A-1:edid/1024x768.bin 启动 - 我相信应该加载一个固定的 EDID 文件(尽管我是不确定,因为我读过有关示例 EDID 文件是否硬连线到内核的相互冲突的内容)。启动接收器时会发送相同的错误,并且在 dmesg 中出现错误:

[346.374275]平台HDMI-A-1:固件:代理中止加载edid/1024x768.bin(未找到?)

[ 346.374483] [drm] 从连接器“HDMI-A-1”的“edid/1024x768.bin”获得内置 EDID 基本块和 0 个扩展

EDIT5:我还尝试在 Windows 中获取 EDID 文件并将其加载到内核中 - 这可以工作,但在我的接收器上仍然会出现错误。当我提取 EDID 文件时,我使用相同的接收器,但使用不同显卡的不同计算机 - 据我所知,EDID 文件仅依赖于显示器(在本例中为接收器),因此与显示器无关显卡,这个正确吗?事实证明,Windows 无法读取我的接收器的 EDID 文件,而我正在从显示器上抓取该文件。

EDIT6:好的,我明白了。事实证明,我需要启用音频(内核参数中的radeon.audio = 1)才能让我的接收器获得信号。有道理,但非常烦人的是,我的接收器手册告诉我这是视频错误,我打算事后担心音频!

答案1

在 Debian 上,这应该只是更改 Pulse Audio 配置文件的情况。对我来说就这么简单:

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

不过,您所需的卡号和配置文件名称可能有所不同。您可以通过执行以下操作来查看可用选项:

pactl list cards

相关内容