Я пытаюсь заставить сенсорный экран моего старого CF-18 нормально работать со стандартным драйвером libinput, но пока безуспешно. Есть ли кто-нибудь, кто делал что-то подобное или хорошо понимал эту часть системы (то есть ядро, последовательные порты и конфигурации libinput) в Ubuntu-32 бит 18.04.6 LTS с ядром 5.4.0-91-generic.
Проблема, на мой взгляд, в LBPS/2 Fujitsu Lifebook TouchScreen. Знаете, это давняя боль в шее (см. https://github.com/okias/xf86-input-fujitouch и https://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/fujitsu-p1610-serial-touchscreen-driver-install-4175643165/ или же https://tldp.org/HOWTO/XFree86-Touch-Screen-HOWTO-5.html)
В моем CF-18 с коробочной версией lubuntu 18.04 (после удачного апгрейда) тачскрин жив и даже что-то передает в /dev/event6. Но указатель мыши скользит по оси X только в нижней части экрана (где-то над строкой панели, поэтому я вижу полный значок указателя мыши над линией)
я вижу мимо $ libinput список-устройств
что устройство было обнаружено и зарегистрировано X-подсистемой
Устройство: LBPS/2 Fujitsu Lifebook TouchScreen
Ядро: /dev/input/event6
Группа: 7
Место: место 0, по умолчанию
Возможности: сенсорный
Нажмите, чтобы щелкнуть: н/д
Коснитесь и перетащите: н/д
Блокировка коснитесь перетаскивания: нет данных
Левша: н/д
Естественная прокрутка: н/д
Средняя эмуляция: н/д
Калибровка: идентификационная матрица
Методы прокрутки: нет
Методы клика: нет
Disable-w-typing: н/д
Профили ускорения: нет данных
Вращение: нет данных
но я нашел следующие подозрительные строки:
...
[ 37.324] (II) event6 - LBPS/2 Fujitsu Lifebook TouchScreen: устройство удалено
...
[ 37.329] (II) Драйвер ввода не указан, это устройство игнорируется.
[ 37.329] (II) Возможно, это устройство было добавлено с другим файлом устройства.
в /var/log/Xorg.0.log (относительно event6):
[ 37.305] (II) config/udev: Добавление устройства ввода LBPS/2 Fujitsu Lifebook TouchScreen (/dev/input/event6)
[ 37.305] (**) LBPS/2 Fujitsu Lifebook TouchScreen: применение InputClass «libinput touchscreen catchall»
[ 37.305] (**) LBPS/2 Fujitsu Lifebook TouchScreen: применение «калибровки» InputClass
[ 37.306] (II) Использование драйвера ввода 'libinput' для 'LBPS/2 Fujitsu Lifebook TouchScreen'
[ 37.306] (**) LBPS/2 Fujitsu Lifebook TouchScreen: всегда сообщает об основных событиях
[ 37.306] (**) Опция "Устройство" "/dev/input/event6"
[ 37.306] (**) Опция "_source" "сервер/udev"
[ 37.308] (II) event6 - LBPS/2 Fujitsu Lifebook TouchScreen: помечен udev как: Сенсорный экран
[ 37.324] (II) event6 - LBPS/2 Fujitsu Lifebook TouchScreen: устройство является сенсорным
[ 37.324] (II) event6 - LBPS/2 Fujitsu Lifebook TouchScreen: устройство удалено
[37.324] (**) Опция "config_info" "udev:/sys/devices/platform/i8042/serio3/input/input11/event6"
[ 37.324] (II) XINPUT: добавление расширенного устройства ввода «LBPS/2 Fujitsu Lifebook TouchScreen» (тип: TOUCHSCREEN, идентификатор 11)
[ 37.324] (**) Опция "Схема ускорения" "нет"
[ 37,325] (**) LBPS/2 Fujitsu Lifebook TouchScreen: (ускорение) выбранная схема нет/0
[ 37,325] (**) LBPS/2 Fujitsu Lifebook TouchScreen: (ускорение) коэффициент ускорения: 2,000
[ 37,325] (**) LBPS/2 Fujitsu Lifebook TouchScreen: (ускорение) порог ускорения: 4
[ 37.327] (II) event6 - LBPS/2 Fujitsu Lifebook TouchScreen: помечен udev как: Сенсорный экран
[ 37.327] (II) event6 - LBPS/2 Fujitsu Lifebook TouchScreen: устройство является сенсорным
[ 37.329] (II) config/udev: Добавление устройства ввода LBPS/2 Fujitsu Lifebook TouchScreen (/dev/input/mouse1)
[ 37.329] (**) LBPS/2 Fujitsu Lifebook TouchScreen: применение «калибровки» InputClass
[ 37.329] (II) Драйвер ввода не указан, это устройство игнорируется.
[ 37.329] (II) Возможно, это устройство было добавлено с другим файлом устройства.
в то же время в моем 40-libinput.conf можно найти, что для точскрина должен быть драйвер libinput:
# Подходит для всех типов устройств, кроме джойстиков
Раздел "Входной класс"
Идентификатор "улавливатель указателя libinput"
MatchIsPointer "включен"
MatchDevicePath "/dev/input/event*"
Драйвер "libinput"
EndSection
Раздел "Входной класс"
Идентификатор "libinput keyboard catchall"
MatchIsKeyboard включено
MatchDevicePath "/dev/input/event*"
Драйвер "libinput"
EndSection
Раздел "Входной класс"
Идентификатор "libinput touchpad catchall"
MatchIsTouchpad "включен"
MatchDevicePath "/dev/input/event*"
Драйвер "libinput"
EndSection
Раздел "Входной класс"
Идентификатор "libinput touchscreen catchall"
MatchIsTouchscreen "включен"
MatchDevicePath "/dev/input/event*"
Драйвер "libinput"
# Драйвер "Фуджитсу"
EndSection
Раздел "Входной класс"
Идентификатор "libinput table catchall"
MatchIsTablet "включен"
MatchDevicePath "/dev/input/event*"
Драйвер "libinput"
EndSection
Я попытался сделать следующее:
- Калибровка драйвера:
xinput_calibrator --device «TouchScreen LBPS/2 Fujitsu Lifebook» -v > /etc/X11/xorg.conf.d/99-dication.conf'
К сожалению, калибратор дал мне следующее:
Раздел "Входной класс"
Идентификатор "калибровка"
MatchProduct "LBPS/2 Fujitsu Lifebook TouchScreen"
Опция "MinX" "4901"
Опция «МаксХ» «59898»
Опция "MinY" "65194"
Опция "МаксY" "65194"
Опция "SwapXY" "0" # если она уже не была установлена на 1
Опция "InvertX" "0" # если она уже не была установлена
Опция "InvertY" "0" # если она уже не была установлена
EndSection
поэтому я изменил «Опция «MinY» «65194» на опцию «MinY» «4900» в файле /etc/X11/xorg.conf.d/99-dication.conf. После перезапуска ничего нового не произошло - я видел, как указатель мыши двигался по строке состояния только по оси x.
- Скомпилируйте новый последовательный драйвер из 1 и изменил конфиг-файлы, следуя рекомендациям, приведенным там, но при запуске X-сервера это вообще не запускало.
Хорошо, есть идеи, что может означать тот факт, что "MinY" "65194" равно "MaxY" "65194" после процедуры калибровки? Могу ли я быть уверен, что мой последовательный порт, подключенный к драйверу тачскрина, работает правильно, и именно драйвер (или его отсутствие в X-окружении, как сказано выше в последних двух строках Xorg.0.log) вызывает проблема, и поэтому я должен продолжать пытаться настроить его более тщательно (путем каких-то изменений в матрице идентичности, например)?