我想在 OSX 中提取 EDID 信息?
它看起来像它存储在IORegistry
. 有没有办法使用当前的monomac
库来访问它?我可以使用标准interop
还是需要编写自定义shim
?
看起来ioreg
命令行也可以获取IODisplay
EDID 属性,但似乎没有一种简单的方法来获取设备的缩写列表。
我想在 OSX 中提取 EDID 信息?
它看起来像它存储在IORegistry
. 有没有办法使用当前的monomac
库来访问它?我可以使用标准interop
还是需要编写自定义shim
?
看起来ioreg
命令行也可以获取IODisplay
EDID 属性,但似乎没有一种简单的方法来获取设备的缩写列表。
可悲的是,没有开箱即用的解决方案。
首先,您要做的是下载“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
如果要检查 EDID 文本,请尝试
ioreg -lw0 -r -c "IODisplayConnect" -n "display0" -d 2 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -p -r | strings -6
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'
sudo ioreg -l | grep IODisplayEDID