首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将校准参数应用于Elo系列TouchScreen?

如何将校准参数应用于Elo系列TouchScreen?
EN

Ask Ubuntu用户
提问于 2019-12-18 10:00:05
回答 1查看 1.8K关注 0票数 1

在Xubuntu18.04中,我试图将校准参数应用到触摸屏上,但没有成功。这是我到目前为止..。

我可以手动连接设备并执行如下校准:

代码语言:javascript
运行
复制
$ sudo /usr/bin/inputattach --daemon --always -elo /dev/ttyS2
$ xinput set-int-prop "Elo Serial TouchScreen" "Evdev Axis Calibration" 32 0 4095 0 4095
$ xinput_calibrator --output-type xinput
$ xinput set-int-prop "Elo Serial TouchScreen" "Evdev Axis Calibration" 32 -97 4087 -48 4108

但是我设置的新参数没有效果,即使xinput列出了更新后的值。我发现的所有信息都相当陈旧。一些人建议应该使用evdev而不是libinput (稍后会详细介绍),但是不能安装它。

下面是我在图形服务器配置中自动附加输入和处理校准时所做的工作:

代码语言:javascript
运行
复制
$ cat /etc/udev/rules.d/99-elographics.rules
ACTION=="add|change", SUBSYSTEM=="tty|pnp", KERNEL=="ttyS2", TAG+="systemd", ENV{SYSTEMD_WANTS}+="elo-inputattach@%k.service"

$ cat /etc/systemd/system/elo-inputattach@.service
[Unit]
Description=inputattach for elo serial devices

[Service]
Type=simple
ExecStart=/usr/bin/inputattach -elo /dev/%I

$ cat /usr/share/X11/xorg.conf.d/99-calibration.conf
Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "Elo Serial TouchScreen"
        Option  "MinX"  "-1587"
        Option  "MaxX"  "66954"
        Option  "MinY"  "-690"
        Option  "MaxY"  "67633"
        Option  "SwapXY"        "0" # unless it was already set to 1
        Option  "InvertX"       "0"  # unless it was already set
        Option  "InvertY"       "0"  # unless it was already set
EndSection

在99年的校准中,我尝试了各种选择,比如

代码语言:javascript
运行
复制
Option  "Calibration"  "-97 4087 -48 4108"

我还试图在该部分中将驱动程序设置为evdev,但它将恢复为libinput

下面是/var/log/xorg.0.log的摘录:

代码语言:javascript
运行
复制
[  1446.102] (II) config/udev: Adding input device Elo Serial TouchScreen (/dev/input/event15)
[  1446.102] (**) Elo Serial TouchScreen: Applying InputClass "libinput touchscreen catchall"
[  1446.102] (**) Elo Serial TouchScreen: Applying InputClass "calibration"
[  1446.102] (II) Using input driver 'libinput' for 'Elo Serial TouchScreen'
[  1446.102] (**) Elo Serial TouchScreen: always reports core events
[  1446.102] (**) Option "Device" "/dev/input/event15"
[  1446.102] (**) Option "_source" "server/udev"
[  1446.103] (II) event15 - Elo Serial TouchScreen: is tagged by udev as: Touchscreen
[  1446.103] (II) event15 - Elo Serial TouchScreen: device is a touch device
[  1446.103] (II) event15 - Elo Serial TouchScreen: device removed
[  1446.135] (**) Option "config_info" "udev:/sys/devices/pnp0/00:08/tty/ttyS2/serio1/input/input7/event15"
[  1446.135] (II) XINPUT: Adding extended input device "Elo Serial TouchScreen" (type: TOUCHSCREEN, id 13)
[  1446.135] (**) Option "AccelerationScheme" "none"
[  1446.135] (**) Elo Serial TouchScreen: (accel) selected scheme none/0
[  1446.135] (**) Elo Serial TouchScreen: (accel) acceleration factor: 2.000
[  1446.135] (**) Elo Serial TouchScreen: (accel) acceleration threshold: 4
[  1446.136] (II) event15 - Elo Serial TouchScreen: is tagged by udev as: Touchscreen
[  1446.136] (II) event15 - Elo Serial TouchScreen: device is a touch device
[  1446.137] (II) config/udev: Adding input device Elo Serial TouchScreen (/dev/input/mouse1)
[  1446.137] (**) Elo Serial TouchScreen: Applying InputClass "calibration"
[  1446.137] (II) No input driver specified, ignoring this device.
[  1446.137] (II) This device may have been added with another device file.
EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2020-01-02 14:30:14

我从供应商那里收到了一个安装包,它不起作用,但帮助我找到了解决方案。

首先,要安装evdev,请执行以下操作:# apt install xserver-xorg-input-evdev-hwe-18.04。第二,使用驱动程序需要额外的X配置。最后,标定参数语法不正确。改进和补充情况列示如下:

代码语言:javascript
运行
复制
$ cat /etc/udev/rules.d/99-elographics.rules
ACTION=="add|change", SUBSYSTEM=="tty|pnp", KERNEL=="ttyS2", TAG+="systemd", ENV{SYSTEMD_WANTS}+="elo-inputattach@%k.service"

$ cat /etc/systemd/system/elo-inputattach@.service
[Unit]
Description=Serial touch display enablement
Before=display-manager.service

[Service]
Type=simple
Restart=always
RestartSec=3s
ExecStart=/usr/bin/inputattach -elo /dev/%i

[Install]
WantedBy=graphical.target

$ cat /usr/share/X11/xorg.conf.d/50-touch-screen.conf
Section "InputClass"
    Identifier         "evdev touchscreen override"
    MatchIsTouchscreen "on"
    MatchDevicePath    "/dev/input/event*"
    Driver             "evdev"
EndSection

$ cat /usr/share/X11/xorg.conf.d/99-calibration.conf
Section "InputClass"
    Identifier   "calibration"
    MatchProduct "Elo Serial TouchScreen"
    Option       "Calibration" "10 4080 80 4100"
    Option       "SwapAxes"    "0"
EndSection
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1197009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档