项目背景:
因为项目需要使用2块屏幕,一个作为日常使用,一个作为数据大屏显示使用,我们使用的是linux系统,所以和window设置有些不同,现将遇到的问题记录。
分辨率设置
在“显示器设置”里,最大的只有1920*1080的分辨率,达不到4K的要求,看了电脑的说明书,可以支持4K分辨率,后在网上找了资源,发现xrandr可以设置分辨率,用bash:
使用cvt,查询新分辨率
cvt 3840 2160
# 3840x2160 59.98 Hz (CVT 8.29M9) hsync: 134.18 kHz; pclk: 712.75 MHz
Modeline "3840x2160_60.00" 712.75 3840 4160 4576 5312 2160 2163 2168 2237 -hsync +vsync
使用xrandr(用到刚刚cvt命令得到Modeline)
#创建新的分辨率,--newmode 后面的参数就是刚刚cvt查询的,直接复制过来
xrandr --newmode "3840x2160_60.00" 712.75 3840 4160 4576 5312 2160 2163 2168 2237 -hsync +vsync
#给显示器添加分辨率,3840x2160_60.00要和刚刚的保持一直
xrandr --addmode HDMI-1 3840x2160_60.00
#给显示器设置分辨率
xrandr --output HDMI-1 --mode 3840x2160_60.00
总体思路就是:
- 查询系统的分辨率格式
- 添加分辨率模式
- 给显示器添加分辨率(相当于候选项)
- 给显示器设置分辨率
触摸失控
因主屏是触摸屏,所以扩展了第二块屏,导致主屏触摸失控,观察触摸时鼠标箭头始终在右侧一点,得出系统将整个屏幕(连同扩展屏算在一起了,扩展屏设置的是在主屏右侧),查询资料可以使用 xinput (需要自己安装)解决
先使用xinput,查询输入设备,可以看出 WingCool Inc. TouchScreen id=8/9 是触屏
xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PixArt Dell MS116 USB Optical Mouse id=10 [slave pointer (2)]
⎜ ↳ SEM USB Keyboard id=12 [slave pointer (2)]
⎜ ↳ WingCool Inc. TouchScreen id=8 [slave pointer (2)]
⎜ ↳ WingCool Inc. TouchScreen id=9 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ adc-keys id=6 [slave keyboard (3)]
↳ gpio-keys id=7 [slave keyboard (3)]
↳ SEM USB Keyboard id=11 [slave keyboard (3)]
↳ SEM USB Keyboard id=13 [slave keyboard (3)]
使用xinput的 map-to-output 将触屏映射到主屏 DP-1
sudo xinput map-to-output 8 DP-1
sudo xinput map-to-output 9 DP-1
运行一段时间后,因为停电原因导致扩展屏不是右扩展显示
在开机计划中,添加代码,每次开机的时候将DP-1设置成主屏,扩展屏HDMI-1设置成右侧显示:
xrandr --output DP-1 --auto --primary
xrandr --output HDMI-1 --right-of DP-1 --auto