Toughbook CF-19 上的 xinput_calibrator 出现问题

Toughbook CF-19 上的 xinput_calibrator 出现问题

使用 Xubuntu 19.10,我尝试校准 Toughbook CF-19 MK5 的触摸屏。我使用xinput_calibrator其他人建议它完成了并且给我一个代码片段来复制到 xorg.conf 文件中,但是有一个问题:

chris@helmhorn:~$ sudo xinput_calibrator -v
Calibrating standard Xorg driver "Fujitsu Component USB Touch Panel Pen (0)"
        current calibration values: min_x=0, max_x=16777215 and min_y=0, max_y=16777215
        If these values are estimated wrong, either supply it manually with the --precalib option, or run the 'get_precalib.sh' script to automatically get it (through HAL).
DEBUG: Name 'Fujitsu Component USB Touch Panel Pen (0)' does not match any in '/sys/class/input/event*/device/name'
        --> Making the calibration permanent <--
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's)
Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "!!Name_Of_TouchScreen!!"
        Option  "MinX"  "1267029"
        Option  "MaxX"  "16165546"
        Option  "MinY"  "615310"
        Option  "MaxY"  "14567195"
        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

Change '!!Name_Of_TouchScreen!!' to your device's name in the config above.

校准没有应用,将代码片段/usr/share/X11/xorg.conf.d/99-calibration.conf与其他 xorg 文件放在一起并重新启动也没有效果。我怀疑错误消息Name 'Fujitsu Component USB Touch Panel Pen (0)' does not match any in '/sys/class/input/event*/device/name'是关键,但通过 Google 找不到太多信息。

比较来自两个相关来源的设备名称:

chris@helmhorn:~$ cat /sys/class/input/event*/device/name | grep Fujitsu
Fujitsu Component USB Touch Panel
chris@helmhorn:~$ sudo xinput_calibrator --list
Device "Fujitsu Component USB Touch Panel Pen (0)" id=13

设备名称不完全匹配,将这两个值中的任何一个放入 xorg.conf.d 文件中都没有效果。

编辑:我在 Google 上能找到的最佳信息是此网站有韩文版本我必须借助翻译来阅读;基本上它建议使用不同的匹配器,例如MatchUSBID "28bd: 000c"

这是迄今为止我发现的最清晰的信息:

chris@helmhorn:~$ sudo xinput --list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ PS/2 Generic Mouse                        id=11   [slave  pointer  (2)]
⎜   ↳ Fujitsu Component USB Touch Panel Pen (0) id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Fujitsu Component USB Touch Panel         id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
    ↳ Panasonic Laptop Support                  id=12   [slave  keyboard (3)]
chris@helmhorn:~$ sudo xinput_calibrator --list
Device "Fujitsu Component USB Touch Panel Pen (0)" id=13

它仍然没有告诉我哪里出了问题,但它显示触摸板和笔是独立的设备,并且校准器正在尝试与笔一起工作。

编辑:我发现了一个最近的博客文章来自一位在相同硬件上遇到过类似问题的人。在 xorg.conf 不起作用之后,他们决定创建一个xinput set-prop在登录时调用的脚本。我会看看他们的解决方案是否对我有用。作为额外奖励,他们谈到了屏幕键盘,这也是我需要的。

答案1

更新:我重新浏览了这篇文章,发现此 Ubuntu 论坛帖子,正确地建议:

sudo apt install xserver-xorg-input-evdev
sudo apt remove xserver-xorg-input-libinput

重启后,xinput_calibrator能够识别触摸屏并正确校准!


原始答案:

这篇博文是我能找到的最佳解决方法。此解决方案不是将配置放入 xorg.conf 文件中,而是调用xinput set-prop一个脚本,然后在登录时调用该脚本。这样就无需想出一个好方法来告诉 xorg.conf 我们正在讨论哪个设备。虽然不太美观,但确实有效。

#!/bin/sh

# Coordinate touch panel to screen

xinput set-prop "Fujitsu Component USB Touch Panel" --type=float "Coordinate Transformation Matrix" 1.115 0 -0.073 0 1.14 -0.04 0 0 1

正如博客文章中所述,调整矩阵​​参数的最佳方法似乎是反复试验。博客文章中的值对我来说是一个相当接近的起点。

我仍然希望听到一个使用 xorg.conf 并使 xinput_calibrator 满意的解决方案,因为这将使调整变得更加容易。

相关内容