Как отключить сенсорный экран при использовании Wayland?

Я использую Ubuntu Gnome 17.04. Мой сенсорный экран глитчей; Я думаю, что это аппаратная проблема. Я могу отключить свой сенсорный экран при входе в Gnome с помощью Xorg, но я не могу понять это при входе в систему с помощью Wayland. Любой совет? Спасибо! Джош

6 ответов

Следующие шаги в ответе JNixus на reddit дали мне результат: сенсорный экран отключен, и сенсорная панель все еще работает: https://www.reddit.com/r/Dell/comments/76jm9x/dell_xps_9343_linux_wayland_touchscreen_help/

Используя возможность отключения одного USB-устройства, нам нужно просто создать правило UDEV. Создать файл в

/etc/udev/rules.d/80-touchscreen.rules

Со следующей информацией

SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="20d0", ATTR{authorized}="0"

Ты можешь найти idVendor а также idProduct запустив

cat /proc/bus/input/devices

Вы можете перезагрузить правила без перезагрузки

udevadm control --reload-rules && udevadm trigger

Приведенное выше решение hid_multitouch отключает все устройства с несколькими касаниями, если их несколько. Но маршрут udev - проблема, если ваше устройство не USB (я думаю). Так что у меня сработало отвязать устройство от драйвера, а не выгружать весь драйвер.

Вы можете найти устройства, связанные с драйвером hid-multitouch, с помощью

ls /sys/bus/hid/drivers/hid-multitouch/

Это покажет несколько файлов и папок, но фактический идентификатор устройства представляет собой комбинацию символов и чисел, например: 0018:06CB:19AC.0001.

У вас может быть несколько устройств. Я просто методом проб и ошибок выбрал правильный. Как только вы это узнаете, вы можете отвязать его от драйвера с помощью:

echo "0018:06CB:19AC.0001">  /sys/bus/hid/drivers/hid-multitouch/unbind

Это (временно) отключит драйвер. Затем вы можете использовать rc-local или специальный сервис systemd, чтобы сделать его постоянным. Вы не можете сделать это в .bashrc или аналогичные сценарии пользовательского пространства, поскольку для этого вам нужно быть root.

Сила Google на помощь. Я следовал инструкциям здесь и смог занести в черный список драйвер сенсорного экрана. Согласно инструкции я создал файл с именем hid_multitouch.conf в /etc/modprobe.d,

Внутри файла я положил:

# Use the following syntax
# blacklist driver-name
blacklist hid-multitouch

Сохраните, перезапустите, и больше не глючный сенсорный экран.

Следуйте инструкциям на ссылку выше. Решение не сработало, однако есть полезный комментарий пользователя Raphael, который отключил сенсорный экран и сенсорную панель для меня.

шаги:

1) Редактировать /etc/rc.local

2) Добавьте следующую строку modprobe -r usbhid

3) Сохранить и перезагрузить

Единственное, что сработало для меня, это предложение сценария запуска здесь . Мне не нравилась «ручность» сценария, поэтому я добавил его, чтобы он был более общим. Это может не сработать для всех, так как отменяет привязку всех найденных устройств hid-multitouch. Добавьте его в crontab, как предлагается в ссылке, и это произойдет при загрузке. Проверено на Кубунту 22.04.

      #!/bin/bash
for X in `find /sys/bus/hid/drivers/hid-multitouch -type l`; do 
  if [[ $(udevadm info ${X}|grep "DRIVER=hid-multitouch") ]]; then
    basename ${X} | sudo tee  /sys/bus/hid/drivers/hid-multitouch/unbind
  fi
done

Другие решения не работают для моего Lenovo Yago 710. Вот что я делаю:

  • использование lsmod найти модуль для сенсорного экрана.

    lsmod | grep touch
    

    Для меня это hid_multitouch,

  • Временно отключить

    sudo modprobe -r hid_multitouch
    

    modprobe -r выгружает модуль ядра (драйвер). Сенсорный экран должен быть отключен.

  • Сделай это постоянным

    редактировать /etc/rc.local как

    #!/bin/bash
    modprobe -r usbhid
    

    В Ubuntu 17.10 может потребоваться запустить

    sudo systemctl enable rc-local.service
    

    делать /etc/rc.local выполняться при запуске.

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