10

我想在 OSX 中提取 EDID 信息?

它看起来像它存储在IORegistry. 有没有办法使用当前的monomac库来访问它?我可以使用标准interop还是需要编写自定义shim

看起来ioreg命令行也可以获取IODisplayEDID 属性,但似乎没有一种简单的方法来获取设备的缩写列表。

4

4 回答 4

7

可悲的是,没有开箱即用的解决方案。

首先,您要做的是下载“edid-decode”程序。不幸的是,它不能通过自制软件获得,因此您必须从https://git.linuxtv.org/edid-decode.git/https://github.com/timvideos/edid-decode下载它。幸运的是,它只是一个 .c 文件,因此您只需键入“make”。(不要在不编辑 Makefile 中的 bindir 和 mandir 的情况下执行“make install”)。将生成的二进制文件放入您的路径中。

然后执行ioreg -lw0 -r -c "IODisplayConnect" -d 2 | grep IODisplayEDID(感谢@Steven)以获取所有监视器的十六进制格式的 EDID 数据。

选择一个输出,将十六进制字符串复制到剪贴板,然后执行pbpaste | edid-decode

于 2020-03-12T16:59:51.933 回答
2

如果要检查 EDID 文本,请尝试

ioreg -lw0 -r -c "IODisplayConnect" -n "display0" -d 2 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -p -r | strings -6
于 2019-10-23T18:46:43.110 回答
2
for theedid in $(ioreg -lw0 -r -c "IODisplayConnect" -d 2 | grep IODisplayEDID | sed -E "/^.*<(.*)>/s//\1/"); do edid-decode <<< $theedid; done

任何看起来像 edid 的东西:

for theedid in $(ioreg -lw0 | grep '<00ffffffffffff' | sed -E "/^.*<(.*)>/s//\1/"); do edid-decode <<< $theedid; done

或者:

ioreg -lrw0 -c "IODisplayConnect" -d2 | sed -nE '/^.*"IODisplayEDID" = <(.*)>/s//edid-decode <<< \1/p'
于 2020-12-19T00:15:11.407 回答
1
sudo ioreg -l | grep IODisplayEDID
于 2019-07-06T05:50:04.183 回答