我在一台2560x1600双链DVI显示器上写这篇文章,连接到一台使用HDMI 1.4的电脑上。
停止搜索HDMI到DVI-DL适配器。所有的适配器,你会发现是被动的单链路适配器,即使他们可能被宣传为双链路。
虽然HDMI 1.4转双链路DVI适配器可以使用Analog Devices ADV7619
297 MHz HDMI 1.4接收器来实现,该接收器可以自动将高像素时钟链路分割成奇数和偶数像素,并使用两个ADV7513
165 MHz HDMI 1.4发射器通过两个单独的链路传输像素,但没有制造商生产这样的设备。
你需要一个能从单链路输入产生双链路DVI输出的设备。而目前唯一能广泛使用的是DisplayPort to Dual Link DVI adapter
,有几个不同的品牌在卖。
这样一来,我们就将问题简化为将HDMI 1.4转换为DisplayPort 1.1。直到最近,意法半导体芯片STDP2600
上市,才有了解决方案。几个品牌都在销售基于该芯片的适配器。如果您的显示器采用全分辨率的DP输入,只使用该适配器就足够了–无需转换为DVI-DL。
将这两个连接在一起,应该可以提供一个HDMI 1.4到双链路-DVI的解决方案。但是,Linux Radeon驱动(xf86-video-ati)还是不满意,在EDID的有效模式列表中忽略了2560x1600 videomode。原因是Linux Radeon驱动只有在显示器在EDID的Consumer Electronic Association扩展块中有HDMI Vendor Specific Data Block的情况下,才会启用165MHz以上的像素时钟。
显然,纯DVI显示器在EDID的CEA EB中不会有HDMI VSDB。我通过添加一个从eBay上买来的HDMI的S/PDIF音频去embbedder到添加CEA EB的链中,来解决这个问题,将音频描述符添加到EDID中。正确的解决方法是直接向驱动提供一个修改后的EDID文件。
这对Linux有效,在Windows上你可能不需要修改EDID,或者你可能需要更广泛的修改。我没有Windows机器来测试。
将三者串联在一起,确保所有的显示器都通过USB接口供电,然后在我的双链路DVI显示器上以60Hz的刷新率显示出漂亮的全分辨率2560x1600图像。