Antergos Arch Linux下xinput_calibrator校准Elo触摸屏符号查找错误
解决xinput_calibrator在Antergos Arch上的符号缺失与Elo触摸屏校准问题
我之前在Arch系系统里碰到过几乎一模一样的xinput_calibrator符号错误,本质是预编译版本的工具和当前系统的Cairo库ABI不兼容导致的。结合你提到的调试信息(设备识别但标记为非usbtouch),给你几个靠谱的解决方向:
1. 手动编译xinput_calibrator适配当前系统库
Arch滚动更新的特性会让系统依赖库版本比较新,官方仓库或者AUR里的预编译xinput_calibrator可能是基于旧版Cairo编译的,所以会出现符号找不到的问题。自己编译就能完美匹配当前环境:
- 先安装编译依赖:
sudo pacman -S git base-devel gtk2 cairo - 克隆源码并编译安装:
git clone https://github.com/tias/xinput_calibrator.git cd xinput_calibrator ./autogen.sh make sudo make install
编译完成后再运行xinput_calibrator,应该就能正常识别并校准你的Elo触摸屏了。
2. 切换到更现代的libinput校准工具
xinput_calibrator其实已经有点过时了,现在Arch推荐用libinput来处理输入设备,对触摸屏的支持更完善:
- 先确认libinput已安装:
pacman -Q libinput
如果没安装,用sudo pacman -S libinput补装。
- 安装libinput的校准工具(需要从AUR获取,Antergos自带的AUR助手比如yay可以直接用):
yay -S libinput-calibrator - 运行校准:
libinput-calibrate,工具会自动识别你的Elo触摸屏,校准完成后会提示你保存生成的配置(通常是udev规则或者Xorg配置文件),按照提示操作即可。
3. 手动指定设备并调整Xorg配置适配
调试输出里的"Not usbtouch"说明xinput_calibrator没把你的设备识别为USB触摸屏类型,可以手动指定设备来强制校准:
- 先用
xinput list列出所有输入设备,找到你的Elo触摸屏的ID(比如输出里的Elo Touchsystems, Inc. Elo TouchSytems 2700对应的ID,假设是12) - 强制指定设备运行校准:
xinput_calibrator --device 12
如果还是不行,可以创建一个Xorg配置文件来固定触摸屏的驱动和校准参数:
创建/etc/X11/xorg.conf.d/99-elotouch.conf,写入以下内容:
Section "InputClass" Identifier "Elo Touchscreen" MatchProduct "Elo Touchsystems, Inc. Elo TouchSytems 2700" Driver "libinput" # 校准后的矩阵值会由校准工具生成,替换下面的默认值即可 Option "CalibrationMatrix" "1 0 0 0 1 0 0 0 1" EndSection
保存后重启Xorg或者系统,设备应该就能正常响应校准了。
内容的提问来源于stack exchange,提问作者Sebastian Hoff
相关产品推荐
相关产品推荐

