一、背景
RockPi3A是一款搭载了瑞芯微RK芯片的国产开发平台,与树莓派属于竞争关系,都是比较流行的硬件开发平台。
不过当前阶段并没有官方支持的DSI接口触摸屏模块,只有HDMI屏。对于手持设备来说,DSI显然更合适。那么只能将树莓派的DSI触摸屏拿过来进行适配了。
二、显示支持
要进行触摸屏适配,RockPi的系统不能太旧,笔者测试使用的是官方提供的最新的debian10。
直接接上树莓派的4.3寸DSI触摸屏是点不亮的,需要修改配置文件/boot/uEnv.txt,增加一行配置:
overlays=radxa-5inch-touchscreen-on-rock-3a
保存后重启系统就能看到Debian的系统界面了,而且支持与HDMI双屏显示。
由于P的HDMI屏被设置成了主屏,所以x的触摸屏界面显示的不完全。如果只接DSI屏显示就正常了,或者双屏时将DSI设置为主屏也行的。
小提示:如果是在树莓派板子上显示正常但不能触摸,可以修改raspbian系统下的/boot/config.txt,注释掉"dtoverlay=vc4-kms-v3d"一行重启即可。
三、触摸支持
通过上面的修改,触摸虽然支持了,但是触摸点与实际焦点并不一致,存在偏移,导致无法正常操作,所以需要对触摸屏进行校准(通过鼠标操作是没问题的)。
首先安装工具:
$sudoaptinstallxinputxinput-calibrator
然后在显示屏上打开一个Terminal终端,DSI触摸屏或是HDMI显示屏都可以,执行xrandr命令查看DSI触摸屏的设备名称:
注意:SSH登录终端窗口是不行的,因为xrandr命令需要在Xserver环境才能执行。
然后再执行xinput-calibrator命令查看触摸屏的ID信息:
该命令会输出所有触摸设备的名称及ID信息。
还可以通过xinput命令查看,该命令会输出所有输入设备(包括键盘、鼠标,触摸属于输入类)的名称及ID信息。
最后执行最关键的一步,将输入设备映射到输出:
$xinputmap-to-output11DSI-1
所使用的设备名称及ID信息都是通过前面步骤获取的,然后触摸就正常了。
当然了,重启系统之后设置就会失效,所以需要在系统启动后自动执行该指令。
具体操作过程参见:Debian开机后的自启动程序设置