最近购买了4K分辨率显示器,原来的1080p分辨率显示器也不打算抛弃,于是就开启了双显示器的配置。配置过程发现Linux系统上很不好协调两种分辨率显示器的显示效果,研究了一段时间后总结了一些经验,特此分享。
支持4K分辨率显示
让Linux系统支持4K分辨率的条件如下:
- 4K分辨率的显示器
- 显卡支持4K分辨率输出
HDMI接口标准
这样就够了么?不是的,因为显卡的输出接口并不一定支持4K分辨率输出的,这里要说下HDMI
标准:
- HDMI 2.0 以前的版本并不支持4K分辨率输出
- HDMI2.0-2.0b 版本的传输带宽是
18.0 Gbit/s
,最高支持4k/60/10bit,但不是RGB,而是Ycbcr 4:2:2或者4:2:0输出,由于传输带宽限制导致对4K分辨率支持也有限制的,可能刷新率设置超过60Hz就会导致显示器一闪一闪的等异常情况。 - HDMI2.1 版本后对4K分辨率输出支持的就非常好了,而且支持5K/8K分辨率输出支持。
DP接口标准
除了HDMI接口
还有DP
接口呢,DP接口对4K分辨率支持的更好(4K支持的最早),不同标准的4k支持情况:
- DP1.3 以前版本不支持4K分辨率输出
- DP1.3-DP1.4(就是下图的HBR3)最高支持4K/120Hz/8bit 和 4K/97Hz/10bit 。
- DP2.0以上(下图UHBR 10, UHBR 13.5和 UHBR 20) 最高支持4K/92Hz/8bit和4K/74Hz/10bit 。
通常使用DP接口数据线接显示器,支持4K分辨率输出更好,数据线也要支持4K分辨率的才可以。
DVI接口标准
DVI接头被分成三种类型:
- DVI-D(Digital数字信号;single link或dual link)
- DVI-A(Analog模拟信号)
- DVI-I(Integrated混合式;数字及模拟信号皆可;single link或dual link)
对分辨率支持情况如下:
- 单链模式分辨率示例(single link):
- HDTV(1920×1080)@ 60 Hz with 5% LCD blanking(131 MHz)
- UXGA(1600×1200)@ 60 Hz with GTF blanking(161 MHz)
- WUXGA(1920×1200)@ 60 Hz(154 MHz)
- SXGA(1280×1024)@ 85 Hz with GTF blanking(159 MHz)
- 双链模式分辨率示例(dual link):
- QXGA(2048×1536)@ 75 Hz with GTF blanking(2×170 MHz)
- HDTV(1920×1080)@ 85 Hz with GTF blanking(2×126 MHz)
- WQXGA(2560×1600)@ 60 Hz with GTF blanking (2x174 MHz)(30" LCD Dell, Apple, Samsung)
- WQUXGA(3840×2400)@ 33 Hz with GTF blanking (2x159 MHz)
显卡驱动安装
- Nvidia显卡驱动 手动搜索驱动程序,选择适合自己显卡型号的驱动程序。
- AMD显卡驱动 ,由于AMD显卡驱动开源,所以默认的开源驱动支持就很好了,当然可以到官网安装选择。
如果你正打算购买显卡,可以阅读这个显卡天梯榜
设置双显示器分辨率支持
本例 情况为 DP1 分辨率 4K(3840x2160)/60Hz/8bit , HDMI1 分辨率 1080p(1920x1080)/60Hz/8bit
双显示器的使用问题是主要是如何协调两个显示器的缩放比例达到图标及字体的合理显示效果。
两种方法配置双显示器:
- 默认情况统一的缩放率(或DPI):效果是 只能满足一个显示器的分辨率,比如适配4K分辨率的DPI为150, 在1080p分辨率显示器上的图标或字体就会显示的比较大。
- 统一双显示器分辨率尺寸: 只需要压缩一下适配1080p分辨率即可,这种情况应用窗口的双显示器过渡更自然,1080p显示器显示的字体或图标有些小一些。
xrandr设置双显示器
情况一就不介绍了,因为这是默认情况,下面介绍如何使用xrandr配置显示器缩放配置.
为了简单编写了一个脚本Xset.sh
,内容如下:
#!/bin/sh
# Xsetup - run as root before the login dialog appears
# 主4K显示器
intern=DP-4
# 副1080p显示器 右侧
extern=HDMI-0
if xrandr | grep "$extern disconnected"; then
xrandr --output "$extern" --off --output "$intern" --auto
else
xrandr --output "$intern" --auto --output "$extern" --scale 2x2 --right-of "$intern" --auto
fi
我们将4K分辨率图像缩小2x2倍后显示到1080p显示屏幕上,这里的2x2是这样计算的:
2=3840/1920 x 2=2160/1080
这样设置才可以避免内容显示的模糊情况,如果你的字体显示的模糊,可能就是缩放比例设置错误导致的。
总结
简单总结接口的使用:
- 不要使用
DVI
接口输出4K分辨率 - 更建议使用
DP
接口输出4K分辨率 - 数据线的选择要记得看是否支持4K分辨率输出