关于我的1080P显示器输出不能达到1080P于是我只能自己修改EDID来让它认清现实这件事


前言

咸来无事俺买了一块屏幕打算diy个显示器,又买了显示器壳子和驱动板,装好之后使用vga接口,分辨率无论如何都是一个奇怪的数值和比例,但是使用hdmi接口就没有问题。

起初我还以为是vga接口带宽上限的问题,但是1080P60Hz是没有问题的,之后我又怀疑是vga线的问题,问了店家之后也确定了线没有问题,于是开始大量的上网冲浪,终于找到了问题所在以及解决办法。

写下这篇文章只是为了记录一下,万一下次会用到(毕竟换系统以后要重新做一次,而我的上一个系统盘悲壮地裂开了,做好的文件都找不到了,还得重新再冲浪一次,555555,而且上次冲浪看到的好多文章都找不到了,我还是靠着一丢丢的记忆来弄的,究极折磨


一、问题出在哪里?

1.1 分辨率是怎么被读取的

答:EDID
详见:EDID的简介和解析

总之就是读取显示器内的EDID数据,视频输出端再依据EDID内提供的各种信息来决定如何输出,数据中就包括了分辨率,因此只需要对EDID动一些手脚就可以了

EDID大概了解一下就可以了,不用完全深入,借助一些优秀的软件就可以完成可视化修改了。

1.2 修改思路

1.2.1 N卡控制面板?

在N卡的控制面板里面可以自己添加分辨率,但是我多次尝试之后,修改的也只是显示分辨率,而非显示器的输出分辨率。在某些情况下这个功能还是勉强可用的,先记下来。

1.2.2 看一下EDID

为了继续定位问题,当然是要把EDID数据读出来看一下是不是问题所在。在Windows系统中,edid数据会从显示器中读取后最终被加载到注册表,edid相关的软件几乎都可以从注册表中读取,推荐软件是:
Monitor Asset Manager(写入必备,可以查看edid的总体报告)
AW EDID Editor(可视化很强,win10系统兼容性很好)

至于其他软件就暂时不考虑了,有的软件证书过期,完全打不开,有的软件在win10下窗口显示不全,有的只能编辑HEX,并不友好。

安装好Monitor Asset Manager之后,查看对应显示器的信息,例如我的:在这里插入图片描述
可以看到,native/preferred 竟然是1280x1024,下面支持的列表中也没有1080P,那么问题就是出自这里了。

如果你不确定哪个文件对应哪个显示器的话,带有[Real-time]的是正在使用的,[Registry-Active]是当前使用的对应的注册表项,[Registry]是曾经插过的,[Sample]不用管。

或者打开设备管理器(Win+X M对应项),找到监视器类,展开以后打开对应项的属性,在事件面板中可以看到显示器名称
在这里插入图片描述
如果使用AW EDID Editor来打开的话,这个名称可以帮你很好地定位。


二、如何解决

2.1 如何修改相关数据

确定了问题所在,那么就可以开始修改了,在AW EDID Editor中打开需要修改的条目,如果不确定的话可以从Monitor Asset Manager中读取导出.bin文件,再在AW EDID Editor中打开修改,具体修改思路可以参考EDID总结,但还是请按需修改,必要时请回看EDID的简介和解析

我的这个情况我可以把相同显示器hdmi口下的数据导出来做为参考来修改,但还请实际问题实际分析。

将修改好的数据导出为.bin文件,在Monitor Asset Manager中打开查看修改后的数据是否正确,如果没问题,就可以进入下一步。

2.2 修改之后怎么写入

2.2.1 写入驱动中

Monitor Asset Manager中导出为inf文件,然后依次进入:
设备管理器——监视器——打开对应的显示器的属性——驱动程序选项卡 更新驱动程序——浏览我的电脑以查找——让我从计算机上的可用驱动程序列表中选取——从磁盘安装——浏览——选择对应inf文件——安装(如果因为驱动未签名而不能安装,请参考INF不包含数字签名问题)——重启电脑 即可

这个方法在换了系统之后会失效,所以最好是保留做好的inf文件,以便在新系统中安装。

另外,我试过直接修改注册表(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\显示器名称\xxxx\Device Parameters下的EDID的值)(因为当时没能找到能生成inf文件的程序,自己又懒得按教程手写inf),并没有生效,猜测是因为没有把所有要修改的条目都改了。

2.2.2 一些其他我曾经看到的参考

edid可以直接写入回显示器中,但是由于我没有设备,请懂硬件的自行测试。

巨硬这边也有官方文档,关于自制inf文件的,有需要的自行操作。
zh-CN:Monitor Edid 的制造商替代
en-US:Manufacturer override of monitor EDIDs

n卡的专业卡的控制面板中自带edid写入功能,参考:
直通RTX8000显卡,vnc连接双屏画面

mac也会遇到需要修改edid的情况,参考我找不到了

  • 0
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 非常感谢您的问题。首先,我必须指出,我是一个AI语言模型,我不属于CSDN开发的任何知识库。我被训练出来了解各种领域的知识,并希望能够回答您的问题。 关于您的问题,我了解到您询问的是一个关于Linux HDMI输出的问题,具体是通过EDID输出最大分辨率的问题。这个问题涉及到Linux系统中的显卡驱动和显示器的硬件支持,需要对硬件和软件的知识有一定的了解。 由于我是一个AI语言模型,我并不拥有实时的硬件和软件资源来测试和验证您的问题。但是,我可以给您一些可能有用的指导方向。 首先,您可以查看您的Linux系统的显卡驱动和显示器的硬件支持情况。您可以尝试通过命令行输入"lspci -v"命令来查看您的显卡驱动情况,以及通过"edid-decode"命令来解码EDID数据,了解您的显示器硬件的详细信息。然后,您可以根据您的硬件情况,查看相关的软件支持文档,了解如何配置输出分辨率。 另外,我建议您在Linux系统的相关论坛或社区中提问,获取更专业的意见和帮助。这些社区中的专家和爱好者可能会更加了解您的问题,并能够提供更准确和详细的解答。 最后,我希望我的回答对您有所帮助。如果您有任何其他问题或疑问,请随时提问。 ### 回答2: 是的,Linux HDMI 是通过 EDID(扩展显示标识数据)来输出最大的分辨率。EDID 是一组由显示器发送的数据,其中包含关于其能力和特性的信息。当 Linux 连接至 HDMI 显示器时,它会读取显示器EDID 数据,从中获取支持的分辨率、刷新率和色彩深度等信息。然后,Linux 根据这些信息来配置 HDMI 输出以匹配显示器的最大分辨率。通过这种方式,Linux HDMI 可以确保输出的分辨率与显示器的能力最大程度地保持一致,以提供最佳的显示效果。 ### 回答3: Linux的HDMI输出不仅仅依赖于EDID来确定最大分辨率。EDID(扩展显示识别数据)是显示设备发送给计算机的一组数据,其中包含了显示器的技术规格和支持的分辨率。对于Linux系统来说,在HDMI连接上,它也会读取显示器EDID数据以获取其支持的分辨率信息,并基于此来设置显示器的分辨率。 然而,除了EDID之外,Linux系统还可以通过其他方式来确定最大分辨率。例如,系统可以通过显卡驱动程序提供的信息来确定显示器的最大分辨率,并将其设置为显示器的默认分辨率。此外,用户还可以手动指定所需的分辨率,而不仅仅局限于EDID所支持的分辨率。 总结来说,Linux的HDMI输出不仅仅依赖于EDID来确定最大分辨率,还可以通过其他方式来确定和设置显示器的分辨率。EDID在提供默认设置方面起到了重要的作用,但并不是唯一的决定因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值