特定物理显示器的自定义 EDID,而不是输出

特定物理显示器的自定义 EDID,而不是输出

我有一个设置,根据我所在的位置连接到两个不同的显示器。我想使用其中一个显示器不允许的模式,但当连接任何其他显示器时不会加载该模式。

更具体地说,我想将家里的外部显示器超频到 120hz,但不想在工作时超频连接到同一 HDMI 端口的不同显示器。使用 nvidia 可以吗?我似乎无法使用 xrandr 覆盖 EDID,同时默认使用 EDID 设置。

答案1

驱动程序的 EDID 覆盖功能nvidia似乎需要指定其 EDID 应被输出 ID 覆盖的显示器。

在启动 X 服务器之前,您可能必须以某种方式检测“您所在的位置”,然后将您的xorg.conf文件切换到两个准备好的替代方案之一,或者xorg.conf.d相应地添加/删除片段。

请参阅此网页以获取想法:https://kodi.wiki/view/Creating_and_using_edid.bin_via_xorg.conf

您也许可以在 X 服务器启动之前使用read-edidedid-decode软件包读取实际的 EDID,对其进行解码以识别显示器,然后相应地切换 X 配置文件,然后继续启动 X 服务器。或者,您可以使用网络参数或其他在 X 启动之前可以轻松检测到的参数来确定应使用哪种配置。

由于您尚未指定您使用的是哪个 Linux 发行版,因此我无法建议将自定义脚本插入到系统启动序列中正确位置的确切过程,但绝对可以做到。

答案2

好的,如果使用 nvidia,您可以通过显示器的 EDID 来引用显示器,这是我的 99-nvidia.conf 中的示例(我在这里使用的参考

Section "Module"
    Load "modesetting"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24

    #this is the important part!!!
    Option         "CustomEDID" "DPY-EDID-d2ee947f-cde6-694c-4099-2f7aa520eb75: /home/myName/Documents/monitors/edid-120.bin"


    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Device"
    Identifier "nvidia"
    Driver  "nvidia"
    BusID   "PCI:1:0:0"
    #Option  "DPI" "96 x 96"    #adjust this value as needed to fix scaling
    Option  "AllowEmptyInitialConfiguration"
EndSection

Section "Extensions"
    Option  "Composite" "Enable"
EndSection

相关内容