我在一个旧的Medion P4001 D上安装了Xubuntu20.04.1LTS(可能可以追溯到2010年)。一切都很好,除了触摸屏;系统没有响应我把手指放在屏幕上。我确信没有硬件问题;我看到触摸屏在原来的操作系统(我不得不丢弃的自定义Linux发行版)上工作得很好,以及我躺在一个更老的Ubuntu版本上(16.04或18.04,我不记得了)。
我尝试了一些终端命令来挖掘一些信息。
$ lsusb | grep -i touch
Bus 003 Device 002: ID 22b9:0008 eTurboTouch Technology, Inc. eTurboTouch
我在制造商的网站上搜索驱动程序支持。看起来完全过时了(Ubuntu9.04,内核2.6);我不想在这个问题上手忙脚乱。http://www.eturbotouch.com/english/s_下载_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.突破正在进行的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焦距Fossa上,作为指针设备,我应该做什么来使我的触摸屏工作呢?
发布于 2020-12-21 13:06:05
为了成为一个好公民,我做了我的研究,并且经常在这个过程中解决我自己的问题。我贴出了我的问题(和这个答案),希望它能帮助一些绝望的灵魂(可能是我自己)在未来。
与此命令相同的重要线索是:
$ 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"
重新启动后,触摸屏工作得非常好。
备注:
22b9
和0008
)基于lsusb
的输出,如问题中所示。hid-multitouch
。udev
仍然没有加载该模块,但显然,我的触摸屏不需要它。https://askubuntu.com/questions/1301815
复制相似问题