eTurboTouch не работает на Xubuntu Focal Fossa

Я установил Xubuntu 20.04.1 LTS на старый Medion Akoya P4001 D (вероятно, датируемый 2010 годом). Все работает нормально, кроме тачскрина; система не реагирует на то, что я кладу палец на экран. Я уверен, что проблем с оборудованием нет; Я видел, как сенсорный экран отлично работает в исходной ОС (специальный дистрибутив 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 ...)

$ 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-мультитач внизу файла / 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?

0
задан 21 December 2020 в 20:00

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"

После перезагрузки сенсорный экран работал нормально.

Примечания.

  • Идентификатор производителя и модели (22b9 и 0008 соответственно) основаны на выводе lsusb, как показано на вопрос.
  • Я откатил свои предыдущие изменения на принудительную загрузку hid-multitouch. Модуль еще не загружен udev, но судя по всему, моему тачскрину он и не нужен.
1
ответ дан 21 December 2020 в 13:06

Другие вопросы по тегам:

Похожие вопросы: