【问题标题】:How to listen/snoop on all HDMI-CEC traffic?如何监听/窥探所有 HDMI-CEC 流量?
【发布时间】:2022-03-27 04:38:04
【问题描述】:

我想查看使用 Raspberry PI 4 连接的 HDMI 设备之间的所有流量。我需要这样做以调试不正确的 CEC 行为。 (找出意外切换活动源的原因,以及远程控制直通消息在哪里消失。)

我尝试在监控模式下启动cec-client -m,期望它不会在 CEC 线路上讲话并且不会影响正常行为,尽管这种行为没有明确指定。它输出DEBUG: [ 290] logical address changed to Free use (e),我无法与 cec-client 在此模式下不生成流量的假设相一致。如果只是监听,为什么还需要一个逻辑地址?

我还观察到我的 Sony Bravia 电视会定期显示 >> 0e:83(提供物理地址),考虑到不应该看到具有逻辑地址 E 的设备,这很奇怪。

这可能是因为电视正在尝试发现新设备,因此它会 ping 看似空的地址。这也可以解释为什么 cec 适配器假定 PI 上的逻辑地址 E:来过滤消息。 cec-client 仅输出发往 E 和 F 的消息。我看到我的电视 (0) 和放大器 (5) 之间没有流量。为了测试这一点,我尝试将逻辑地址更改为其他 la 13,但我得到了

la 13
NOTICE:  [           10167]     setting primary logical address to d
Segmentation fault

此命令在监控模式下不起作用。在标准模式下,它不会使客户端崩溃,但仍然无法将设备类型从默认的 Recording 1 更改为 Playback 1(以la 4 为例)。我通过scan 验证这一点。

我想静静地收听通过 CEC 线路传递的所有消息。这个问题类似于 3 年前提出的一个未回答的问题:spy with LibCEC on Raspberry pi

【问题讨论】:

    标签: linux raspberry-pi hdmi hdmi-cec


    【解决方案1】:

    我只是偶然发现了这个试图完成类似的事情。我怀疑这种行为的原因是由于底层的 Broadcom 驱动程序在将“不相关”消息传递到更高级别之前过滤掉了它们。不幸的是,这意味着大多数人可能无法使用基于 RPI 构建的真正被动 CEC 记录器。

    但是,我发现一个项目试图直接使用 Broadcom API 来完成这些工作:https://github.com/glywood/cec-fix。通过一些调整,可以创建一个程序,专门监听电视地址的消息并记录您想要的消息(例如,从电视发送的带有远程控制直通代码的消息)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 2020-12-19
      • 1970-01-01
      • 2015-05-24
      • 2013-10-25
      • 1970-01-01
      • 2018-12-20
      相关资源
      最近更新 更多