eTurboTouch 无法在 Xubuntu Focal Fossa 上运行

eTurboTouch 无法在 Xubuntu Focal Fossa 上运行

我在一台旧的 Medion Akoya P4001 D(可能可以追溯到 2010 年)上安装了 Xubuntu 20.04.1 LTS。除了触摸屏之外,一切都运行正常;当我把手指放在屏幕上时,系统没有反应。我确信没有硬件问题;我看到触摸屏在原始操作系统(我不得不放弃的自定义 Linux 发行版)上工作正常,在我闲置的旧 Ubuntu 版本(16.04 或 18.04,我不记得了)上也工作正常。

我尝试了一些终端命令来挖掘一些信息。

$ lsusb | grep -i touch
Bus 003 Device 002: ID 22b9:0008 eTurboTouch Technology, Inc. eTurboTouch

我在制造商的网站上搜索了驱动程序支持。似乎完全过时了(Ubuntu 9.04,内核 2.6);我不想因此而受苦。
http://www.eturbotouch.com/english/s_download_center.asp

没关系,我见过它在较旧的 Ubuntu 发行版上开箱即用。它应该无需专有驱动程序即可工作。

$ sudo lsinput | grep -i touch -A4 -B5
/dev/input/event5
   bustype : BUS_USB
   vendor  : 0x22b9
   product : 0x8
   version : 257
   name    : "eTurboTouch eTurboTouch"
   phys    : "usb-0000:00:04.0.6/input0"
   uniq    : ""
   bits ev : (null) (null) (null) (null)

现在我们知道了该设备,让我们对其进行轮询。

$ sudo cat /dev/input/event5

每当我按下屏幕时,我都会看到二进制数据填满屏幕。所以它确实有效。
(好的,使用 Ctrl-C 退出正在进行的操作cat...)

$ sudo xinput list

我看到一个包含其他指针和键盘设备的简短列表,但没有触摸屏!

$ lsmod | grep -i 'hid\|touch\|dwav'
mac_hid                16384  0
hid_generic            16384  0
usbhid                 57344  0
hid                   131072  2  usbhid,hid_generic

我在很多地方看到你需要模块hid-multitouch。模块已经安装(modinfo hid_multitouch给出信息),但显然udev没觉得需要加载它。

我绝望地强制加载了模块。我hid-multitouch在文件底部添加了一行/etc/modules。我创建了一个新文件/etc/rc.local(它还不存在),使其可执行,并输入了这些行(按照建议 这里这里):

#!/bin/sh -e
echo 3 22b9 0008 1 > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id

上面那MT_CLASS行中的 (1) 是一个大胆的猜测。我还尝试了 3(因为这似乎与提到的“类”相匹配这里) 和 259 (因为评论“eGalax Touchkit 包括 eTurboTouch CT-410/510/700”我读到 这里)。

重启后,模块hid-multitouch确实已加载,但触摸屏仍然无法显示。

dmesg我检查了和的输出journalctl -b,但没有发现任何可疑和与触摸相关的内容。

我应该怎么做才能让我的触摸屏在 Xubuntu Focal Fossa 上作为指针设备工作?

答案1

为了做一名好公民,我做了调查,并像往常一样,在这个过程中解决了自己的问题。无论如何,我还是发布了我的问题(和这个答案),希望它能在未来帮助一些绝望的人(可能是我自己)。

该命令中的重要线索如下:

$ sudo libinput list-devices | head -n1
event5  - eTurboTouch eTurboTouch: libinput bug: missing tablet capabilities: btn-stylus resolution. Ignoring this device.

我用谷歌搜索了错误信息,发现这并不是唯一出现此问题的触摸屏:

https://bugs.launchpad.net/ubuntu/+source/libinput/+bug/1772083

根据错误描述:

*** Creating the following udev rules file, fixes the touchscreen for me ***
/etc/udev/rules.d/91-libinput-egalax-local.rules
ACTION=="add|change", KERNEL=="event[0-9]*", ENV{ID_VENDOR_ID}=="0eef", \
ENV{ID_MODEL_ID}=="0001", ENV{ID_INPUT_TABLET}="", ENV{ID_INPUT_TOUCHSCREEN}="1"

我稍微调整了一下以适应我的情况。我创建了一个新文件/etc/udev/rules.d/91-libinput-eturbotouch-local.rules 并输入了以下几行:

ACTION=="add|change", KERNEL=="event[0-9]*", ENV{ID_VENDOR_ID}=="22b9", \
ENV{ID_MODEL_ID}=="0008", ENV{ID_INPUT_TABLET}="", ENV{ID_INPUT_TOUCHSCREEN}="1"

重新启动后,触摸屏运行正常。

笔记:

  • 供应商和型号 ID(分别为22b90008)基于的输出lsusb,如问题所示。
  • 我把之前的更改恢复为强制加载hid-multitouch。模块仍然没有被加载udev,但显然我的触摸屏不需要它。

相关内容