如何在Raspberry Pi上读取显示器的EDID

注意:以前,PiDoctor的独立版本曾有一个读取EDID的功能。这个版本已经停止使用,读取EDID的功能也没有实现在新的 码头 医师(PiDoctor 因此,我将在这篇文章中给你提供如何读取EDID的手动说明。

PiDoctor包括显示器模式的输出

在我们深入探讨如何提取Raspberry Pi上的EDID之前,请注意,新的 PiCockpit的 医师(PiDoctor 应用程序包括很多你通过阅读EDID所期望的输出(支持的分辨率模式、显示器名称、音频支持......),这里有两个屏幕截图样本。

PiCockpit PiDoctor应用程序,取代了一些EDID功能,包括CEA模式和DMT模式的输出。

在Raspbian / Raspberry Pi操作系统下读取EDID

在命令行上运行以下命令。

tvservice -d /tmp/edid.dat
运行这个命令,将EDID写入一个临时文件中。

这将在/tmp目录下创建edid.dat。

注意:在Raspberry Pi 4和400上,可以使用microHDMI端口连接两个显示器。在这种情况下,你要指定从哪个显示器读取EDID。

呼叫中心 --列表
tvservice显示所附的显示器。
tvservice显示所附的显示器

然后传入你感兴趣的显示器的设备ID,像这样。

tvservice --device 2 -d /tmp/edid.dat

使用edidparser对EDID进行解码

你可以在这个文件上运行edidparser(如果你的系统上没有这个文件,请先安装它)。

edidparser /tmp/edid.dat

这将为你提供大量的输出,例如在我的显示器上,它给出了。

启用模糊格式匹配...
解析/tmp/edid.dat...。
HDMI:EDID版本1.3,1个扩展,屏幕尺寸48×27厘米
HDMI:EDID特性 - videodef 0x80待机暂停主动关闭;颜色编码:RGB444|YCbCr422;sRGB不是默认色域;首选格式是本地格式;不支持GTF
HDMI:发现EDID显示器范围描述符标签0xfd
HDMI:EDID显示器范围偏移。V min=0, V max=0, H min=0, H max=0
HDMI:EDID显示器范围:垂直是50-76Hz,水平是30-83kHz,最大像素时钟是170MHz
HDMI:EDID显示器范围不支持GTF
HDMI:发现EDID显示器名称描述符标签0xfc
HDMI:EDID显示器名称为VE228
HDMI:发现显示器S/N描述符标签0xff的EDID
HDMI:EDID发现首选的CEA细节计时格式。1920x1080p @ 60 Hz (16)
HDMI:EDID建立的计时I/II字节是BF EF 00
HDMI:EDID发现DMT格式:代码4,640x480p @ 60 Hz在既定的定时I/II中
HDMI:EDID发现DMT格式:代码5,640x480p @ 72 Hz在既定的定时I/II中
HDMI:EDID发现DMT格式:代码6,640x480p @ 75 Hz,在既定的定时I/II中。
HDMI:EDID发现DMT格式:代码8,800x600p @ 56 Hz在既定的定时I/II中。
HDMI:EDID发现DMT格式:代码9,800x600p @ 60 Hz在既定的定时I/II中。
HDMI:EDID发现DMT格式:代码10,800x600p @ 72 Hz在既定的定时I/II中
HDMI:EDID发现DMT格式:代码11,800x600p @ 75 Hz在既定的定时I/II中
HDMI:EDID发现DMT格式:代码16,1024x768p @ 60 Hz在既定的定时I/II中
HDMI:EDID发现DMT格式:代码17,1024x768p @ 70 Hz在既定的定时I/II中
HDMI:EDID发现DMT格式:代码18,1024x768p @ 75 Hz在既定的定时I/II中
HDMI:EDID发现DMT格式:代码36,1280x1024p @ 75 Hz在既定的定时I/II中
HDMI:EDID标准定时块 x 8: 0x714F 8180 8140 9500 A940 B300 D1C0 0101
HDMI:EDID发现DMT格式:代码21,1152x864p @ 75 Hz (4:3) 在标准定时0
HDMI:EDID发现DMT格式:代码35,1280x1024p @ 60 Hz (5:4)在标准计时1中
HDMI:EDID发现DMT格式:代码32,1280x960p @ 60 Hz (4:3)在标准计时2中
HDMI:EDID发现DMT格式:代码47,1440x900p @ 60 Hz (16:10)在标准定时3
HDMI:EDID发现DMT格式:代码51,1600x1200p @ 60 Hz (4:3)在标准计时4中
HDMI:EDID发现DMT格式:代码58,1680x1050p @ 60 Hz (16:10)在标准定时5
HDMI:EDID发现DMT格式:代码82,1920x1080p @ 60 Hz (16:9)在标准定时6
HDMI:EDID解析 v3 CEA扩展 0
HDMI:支持EDID显示器 - underscan IT格式:是,基本音频:是,yuv444:是,yuv422:是,#native DTD:1
HDMI:EDID未能为1920x1080p找到匹配的细节格式 hfp:48 hs:32 hbp:80 vfp:3 vs:5 vbp:22 像素时钟:138 MHz
HDMI:EDID计算的刷新率是60赫兹
HDMI:EDID猜测格式为1920x1080p @60 Hz
HDMI:EDID发现CEA详细计时格式。1920x1080p @ 60 Hz (16)
HDMI:EDID发现DMT细节计时格式。1366x768p @ 60 Hz (81)
HDMI:EDID发现CEA详细计时格式。1280x720p @ 60 Hz (4)
HDMI:EDID发现CEA详细计时格式。720x480p @ 60 Hz (2)
HDMI:EDID发现CEA详细计时格式。1920x1080i @ 60 Hz (5)
HDMI:EDID发现CEA格式:代码16,1920x1080p @ 60Hz(原始)。
HDMI:EDID发现CEA格式:代码5,1920x1080i @ 60Hz
HDMI:EDID发现CEA格式:代码4,1280x720p @ 60Hz
HDMI:EDID发现CEA格式:代码3,720x480p @ 60Hz
HDMI:EDID发现CEA格式:代码2,720x480p @ 60Hz
HDMI:EDID发现CEA格式:代码1,640x480p @ 60Hz
HDMI:EDID发现CEA格式:代码17,720x576p @ 50Hz
HDMI:EDID发现CEA格式:代码18,720x576p @ 50Hz
HDMI:EDID发现CEA格式:代码19,1280x720p @ 50Hz
HDMI:EDID发现CEA格式:代码20,1920x1080i @ 50Hz
HDMI:EDID发现CEA格式:代码31,1920x1080p @ 50Hz
HDMI:EDID发现音频格式2通道PCM,采样率。32|44|48 kHz,采样大小:16|20|24位
HDMI:发现EDID HDMI VSDB长度5
HDMI:EDID HDMI VSDB有物理地址1.0.0.0。
HDMI:EDID HDMI VSDB没有扩展字段
HDMI:EDID过滤格式,像素时钟无限MHz或h.消隐无限
HDMI:EDID最佳得分模式初始化为CEA(1)640x480p @ 60 Hz,像素时钟25 MHz(得分0)
HDMI:EDID最佳得分模式现在是CEA(1)640x480p @ 60 Hz,像素时钟25 MHz(得分61864)。
HDMI:EDID最佳得分模式现在是CEA(2)720x480p @ 60 Hz,像素时钟27 MHz(得分3066472)。
HDMI:EDID CEA模式(3)720x480p @ 60 Hz,像素时钟为27 MHz,得分为66472。
HDMI:EDID最佳得分模式现在是CEA(4)1280x720p @ 60 Hz,像素时钟74 MHz(得分3635592)。
HDMI:EDID DMT模式(4)640x480p @ 60 Hz,像素时钟25MHz,得分18432。
HDMI:EDID CEA模式(5)1920x1080i @ 60 Hz,像素时钟为74 MHz,得分为2773832。
HDMI:EDID DMT模式(5)640x480p @ 72 Hz,像素时钟31MHz,得分5529。
HDMI:EDID DMT模式(6)640x480p @ 75 Hz,像素时钟31MHz,得分5760分
HDMI:EDID DMT模式(8)800x600p @ 56 Hz,像素时钟36 MHz,得分26880。
HDMI:EDID DMT模式(9)800x600p @ 60 Hz,像素时钟为40 MHz,得分28800。
HDMI:EDID DMT模式(10)800x600p @ 72 Hz,像素时钟为50 MHz,得分为8640。
HDMI:EDID DMT模式(11)800x600p @ 75 Hz,像素时钟为49 MHz,得分为9000。
HDMI:EDID最佳得分模式现在是CEA(16)1920x1080p @ 60 Hz,像素时钟148 MHz(得分5398248)。
HDMI:EDID DMT模式(16)1024x768p @ 60 Hz,像素时钟65 MHz,得分47185。
HDMI:EDID CEA模式(17)720x576p @ 50 Hz,像素时钟为27 MHz,得分为66472。
HDMI:EDID DMT模式(17)1024x768p @ 70 Hz,像素时钟75 MHz,得分13762。
HDMI:EDID CEA模式(18)720x576p @ 50 Hz,像素时钟为27 MHz,得分为66472。
HDMI:EDID DMT模式(18)1024x768p @ 75 Hz,像素时钟78 MHz,得分14745。
HDMI:EDID CEA模式(19)1280x720p @ 50 Hz,像素时钟74 MHz,得分117160。
HDMI:EDID CEA模式(20)1920x1080i @ 50 Hz,像素时钟74 MHz,得分128680。
HDMI:EDID DMT模式(21)1152x864p @ 75 Hz,像素时钟108 MHz,得分43662。
HDMI:EDID CEA模式(31)1920x1080p @ 50 Hz,像素时钟148 MHz的得分是232360。
HDMI:EDID DMT模式(32)1280x960p @ 60 Hz,像素时钟108 MHz,得分98728。
HDMI:EDID DMT模式(35)1280x1024p @ 60 Hz,像素时钟为108 MHz,得分103643。
HDMI:EDID DMT模式(36)1280x1024p @ 75 Hz,像素时钟135 MHz,得分24576。
HDMI:EDID DMT模式(47)1440x900p @ 60 Hz,像素时钟为106 MHz,得分102760。
HDMI:EDID DMT模式(51)1600x1200p @ 60 Hz,像素时钟162 MHz,得分140200。
HDMI:EDID DMT模式(58)1680x1050p @ 60 Hz,像素时钟146 MHz,得分130840
HDMI:EDID DMT模式(81)1366x768p @ 60 Hz,像素时钟为85 MHz,分数为4062945。
HDMI:EDID DMT模式(82)1920x1080p @ 60 Hz,像素时钟148 MHz,得分149416。
HDMI0:EDID首选模式仍为CEA(16)1920x1080p @ 60 Hz,像素时钟148 MHz
HDMI:EDID有HDMI支持和音频支持
edidparser退出了,代码为0

在线解码器工具

你也可以把这个文件上传到一个在线解码工具,例如 edid.tv

注意:在我的测试中,edid.tv抱怨我的一个EDID的校验和不正确 - 我不知道目前有什么解决方法。

EDID.tv提供了一个丰富的EDID信息概览
EDID.tv

故障排除 tvservice / EDID转储

没写什么

当我运行

tvservice -device 2 -d tmp/edid.dat

我得到的是 "什么都没写!"

尝试并检查以下内容。

  • 你的显示器是否连接到你的HDMI端口(不,认真的)。
  • 设备ID是否正确? 请使用 呼叫中心-列表 以获得一个ID列表,不要只是复制和粘贴我的例子设备ID 2
  • 试着用tvservice,不使用-设备2
  • 尝试重新启动Raspberry Pi(当显示器被热插拔时,在这个特定的使用案例中会出现问题,AFAIK),并再次运行命令。
  • 试试其他的tvservice参数,以调试该特定监视器的任何输出是否可能(这里有一个tvservice的文档)
  • 有些电视/显示器有缺陷,不能提供EDID--试试另一台显示器,看看是否会有不同。

2评论

  1. Yoann 在一月 26, 2022在5:32 下午

    Bonjour, j'obtiens cette erreur :
    当使用vc4-kms-v3d驱动时,不支持tvservice。
    标准的linux工具也有类似的功能
    比如libdrm-test中的modetest。

    你有别的选择吗?

    谢谢。

发表评论