如何在Raspberry Pi上读取显示器的EDID
注意:以前,PiDoctor的独立版本曾有一个读取EDID的功能。这个版本已经停止使用,读取EDID的功能也没有实现在新的 码头 医师(PiDoctor 因此,我将在这篇文章中给你提供如何读取EDID的手动说明。
PiDoctor包括显示器模式的输出
在我们深入探讨如何提取Raspberry Pi上的EDID之前,请注意,新的 PiCockpit的 医师(PiDoctor 应用程序包括很多你通过阅读EDID所期望的输出(支持的分辨率模式、显示器名称、音频支持......),这里有两个屏幕截图样本。


在Raspbian / Raspberry Pi操作系统下读取EDID
在命令行上运行以下命令。
tvservice -d /tmp/edid.dat

这将在/tmp目录下创建edid.dat。
注意:在Raspberry Pi 4和400上,可以使用microHDMI端口连接两个显示器。在这种情况下,你要指定从哪个显示器读取EDID。
呼叫中心 --列表

然后传入你感兴趣的显示器的设备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的校验和不正确 - 我不知道目前有什么解决方法。

故障排除 tvservice / EDID转储
没写什么
当我运行
tvservice -device 2 -d tmp/edid.dat
我得到的是 "什么都没写!"
尝试并检查以下内容。
- 你的显示器是否连接到你的HDMI端口(不,认真的)。
- 设备ID是否正确? 请使用 呼叫中心-列表 以获得一个ID列表,不要只是复制和粘贴我的例子设备ID 2
- 试着用tvservice,不使用-设备2
- 尝试重新启动Raspberry Pi(当显示器被热插拔时,在这个特定的使用案例中会出现问题,AFAIK),并再次运行命令。
- 试试其他的tvservice参数,以调试该特定监视器的任何输出是否可能(这里有一个tvservice的文档)
- 有些电视/显示器有缺陷,不能提供EDID--试试另一台显示器,看看是否会有不同。
Bonjour, j'obtiens cette erreur :
当使用vc4-kms-v3d驱动时,不支持tvservice。
标准的linux工具也有类似的功能
比如libdrm-test中的modetest。
你有别的选择吗?
谢谢。
你好,Yoann,我在Pi Zero 2上遇到了这个问题,也许这个修正对你有用。 https://picockpit.com/raspberry-pi/the-big-raspberry-pi-zero-2-w-troubleshooting-guide/#Command_tvservice_throws_error