【问题标题】:How to get monitor EDID in OSX?如何在 OSX 中获取监视器 EDID?
【发布时间】:2016-07-02 04:29:28
【问题描述】:

我希望在 OSX 中提取 EDID 信息?

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

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

【问题讨论】:

  • IOKit 没有被 Xamarin 绑定(请求数低,因此优先级低)(跟踪问题 bugzilla.xamarin.com/show_bug.cgi?id=28503),虽然我做了一些绑定,但我发现这样做更快一个外壳并使用ioreg 并解析您需要的信息,即stackoverflow.com/a/31716044/4984832
  • 我不久前从另一个网站抓取了这个(它现在通过谷歌在多个网站上弹出):ioreg -lw0 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -p -r | strings -6 应该让你根据你的最终需求以正确的方式前进

标签: xamarin pinvoke iokit xamarin.mac edid


【解决方案1】:

遗憾的是,没有现成的解决方案。

首先,您要做的是下载“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-decode 的人 - 只需将存储库下载为 zip,解压缩,在终端中输入生成的目录并输入“make”。仅此而已。
  • 只是补充一点:您需要在您的系统上安装一个编译器。如果没有,先安装xcode,或者找朋友帮你编译。
【解决方案2】:

如果您想检查 EDID 文本,请尝试

ioreg -lw0 -r -c "IODisplayConnect" -n "display0" -d 2 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -p -r | strings -6

【讨论】:

  • 一点解释将使这个答案更加有用。只是输入一个命令行,甚至不回答问题(不仅是问题标题)对 OP 几乎没有帮助。或其他人获得一些见解。
  • 令人讨厌的是,我的 Mac 上有三台显示器,它们都被命名为“display0”。
【解决方案3】:
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'

【讨论】:

    【解决方案4】:
    sudo ioreg -l | grep IODisplayEDID
    

    【讨论】:

    • 为你的答案添加一些解释
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    相关资源
    最近更新 更多