1

我正在尝试让 Coral 开发板通过 HDMI ARC 从我的电视接收音频。我很确定我在电视端启用了 ARC,但我认为 Coral Linux 端缺少一些东西。谁能帮我搞定这个工作?其他人有这个工作吗?

我修改了 phanbell 设备树以启用 spdif2 和 sound-hdmi-arc。

sound-hdmi-arc {
    compatible = "fsl,imx-audio-spdif";
    model = "imx-hdmi-arc";
    spdif-controller = <&spdif2>;
    spdif-in;
};

&spdif2 {
    assigned-clocks = <&clk IMX8MQ_CLK_SPDIF2>;
    assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
    assigned-clock-rates = <24576000>;
    status = "okay";
};

arc 设备出现在 Linux 中,但是当我尝试从中记录时收到一条错误消息。

arecord -D hw:CARD=imxhdmiarc,DEV=0 -r 48000 -f S24_LE -c 2 -d 3 ~/arc.wav
Recording WAVE '/home/mendel/arc.wav' : Signed 24 bit Little Endian, Rate 48000 Hz, Stereo
arecord: pcm_read:2145: read error: Input/output error

如果我连接 Coral 开发板和一些音频测试设备,我会收到相同的错误消息。如果我将音频设备设置设置为禁用 ARC 链接协商并强制打开音频,该命令确实有效。这让我相信 Coral Linux 方面缺少某种链接协商。

让我知道是否有人可以提供帮助。谢谢。

4

1 回答 1

1

我想到了。

# install the cec-ctl and read-edid utilities
sudo apt install cec-utils read-edid
# find our physical address reported by the TV
read-edid /devices/platform/display-subsystem/drm/card0/card0-HDMI-A-1/edid | grep physical
# set the logical address
cec-clt --audio
# set the physical address
cec-ctl -p 1.0.0.0
# send the command
cec-ctl --to 0 --initiate-arc
于 2021-07-25T08:01:31.607 回答