问题描述
因为项目需要将21寸的横屏触摸屏旋转成竖屏使用,如果是在x86平台上直接在系统设置一下屏幕旋转就解决了,但是在arm平台上这个问题就有点麻烦了。一开始使用xrand命令能够实现屏幕旋转,但是却出现触摸屏触摸不准的问题,费劲查询很多资料尝试了很多方法最终得以解决。
解决过程
查看系统支持的显示设备
在终端输入
xrandr
查询结果如下:
修改配置文件
在终端输入
sudo vim /etc/X11/xorg.conf
如果不存在xorg.conf文件的话直接在/etc/X11/路径下创建该文件即可。将文件内容修改如下:
Section "Monitor"
Identifier "HDMI-1"
Option "Rotate" "normal"
EndSection
Section "Screen"
Identifier "Screen0"
Monitor "HDMI-1"
Option "RandRRotation"
EndSection
Section "ServerLayout"
Identifier "DefaultLayout"
Screen "Screen0"
EndSection
Section "InputClass"
Identifier "touchscreen"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "SwapAxes" "true"
Option "InvertX" "false"
Option "InvertY" "true"
EndSection
参数说明:
Section "Monitor"
Identifier "HDMI-1" #设置默认显示器为HDMI-1
Option "Rotate" "normal" #设置屏幕旋转 normal为正常,left向左旋转90度,
#right向右旋转90度,inverted为上下翻转
EndSection
Section "Screen"
Identifier "Screen0"
Monitor "HDMI-1" #设置屏幕为HDMI-1
Option "RandRRotation" #设置支持HDMI旋转
EndSection
Section "InputClass"
Identifier "touchscreen" #触摸屏设置
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "SwapAxes" "true"
Option "InvertX" "false" #设置触摸屏X轴旋转,true为开启,false为关闭
Option "InvertY" "true" #设置触摸屏Y轴旋转,true为开启,false为关闭
EndSection
总结
在arm板上因为触摸屏触摸不准问题导致项目选择显示屏比较困难,现在解决了这个问题,以后对触摸屏的选择就多了,不同尺寸,横竖屏都没问题。注意,该方法只支持使用X11框架的linux系统。