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