Сенсорный экран распознается как мышь.

Вопрос или проблема

Я подключил сенсорный экран 3M к своему компьютеру на Linux. Похоже, что он распознается как мышь. Вот результат моего xinput:

xinput
⎡ Виртуальный основной указатель                      id=2    [мастер указатель  (3)]
⎜   ↳ Виртуальный основной указатель XTEST                id=4    [рабочий указатель  (2)]
⎜   ↳ Logitech USB Оптическая Мышь                id=13   [рабочий указатель  (2)]
⎜   ↳ 3M 3M USB Сенсорный Экран - 36955             id=12   [рабочий указатель  (2)]
⎣ Виртуальная основная клавиатура                     id=3    [мастер клавиатура (2)]
    ↳ Виртуальная основная клавиатура XTEST               id=5    [рабочая клавиатура (3)]
    ↳ Кнопка питания                              id=6    [рабочая клавиатура (3)]
    ↳ Видеошина                                 id=7    [рабочая клавиатура (3)]
    ↳ Видеошина                                 id=8    [рабочая клавиатура (3)]
    ↳ Кнопка питания                              id=9    [рабочая клавиатура (3)]
    ↳ Logitech USB Клавиатура                     id=10   [рабочая клавиатура (3)]
    ↳ Logitech USB Клавиатура                     id=11   [рабочая клавиатура (3)]
    ↳ Горячие клавиши HP WMI                            id=14   [рабочая клавиатура (3)

После выполнения # modprobe -r usbtouchscreen сенсорное устройство перестает работать.

На Windows 7 оно работает после установки драйвера с этого сайта, поэтому я также попытался установить драйвер для Linux оттуда (Linux, Одно касание, 64-битный). Думаю, что процесс установки не удался, так как он прерывается сразу после того, как я принимаю лицензию (с кодом выхода 0).

Я тестирую свой сенсорный экран с помощью примера Qt FingerPaint (также работает на Windows, не работает на Ubuntu). Отладка показывает, что ввод многоточием генерирует события мыши.

Я использую Ubuntu 16.04 с ядром 4.10.0-35-generic и пробовал как окружение Unity, так и Cinnamon. Мне это нужно для программирования.

ИЗМЕНЕНИЕ:

Некоторые диагностические инструменты выводят:

# lsinput
...некоторые другие устройства...
/dev/input/event12
тип шины : BUS_USB
производитель  : 0x596
продукт : 0x1
версия : 1088
имя    : "3M 3M USB Сенсорный Экран - 36955"
физическое    : "usb-0000:00:14.0-3/input0"
биты ev : EV_SYN EV_KEY EV_ABS


# mtdev-test /dev/input/event12
015ee1f66c7c 00 1 014a 1
015ee1f66c7c 00 3 0000 12183
015ee1f66c7c 00 3 0001 7962
015ee1f66c7c 00 0 0000 0
015ee1f66c80 00 3 0000 12193
... и т.д. ...

ИЗМЕНЕНИЕ:

$ xinput list-props 12
Устройство '3M 3M USB Сенсорный Экран - 36955':
    Устройство включено (143):   1
    Координатная трансформационная матрица (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Профиль акселерации устройства (268): 0
    Постоянное замедление акселерации устройства (269):   1.000000
    Адаптивное замедление акселерации устройства (270):   1.000000
    Масштабирование скорости акселерации устройства (271):    10.000000
    Идентификатор продукта устройства (262):    1430, 1
    Узел устройства (263):  "/dev/input/event12"
    Инверсия оси Evdev (272): 0, 0
    Калибровка осей Evdev (273):   <нет элементов>
    Обмен осей Evdev (274):  0
    Ярлыки осей (275):  "Abs X" (266), "Abs Y" (267)
    Ярлыки кнопок (276):    "Кнопка неизвестна" (265), "Кнопка неизвестна" (265), "Кнопка неизвестна" (265), "Кнопка прокрутки вверх" (149), "Кнопка прокрутки вниз" (150)
    Расстояние прокрутки Evdev (277): 0, 0, 0
    Эмуляция средней кнопки Evdev (278):    0
    Таймаут средней кнопки Evdev (279):  50
    Эмуляция третьей кнопки Evdev (280): 0
    Таймаут эмуляции третьей кнопки Evdev (281): 1000
    Кнопка эмуляции третьей кнопки Evdev (282):  3
    Порог эмуляции третьей кнопки Evdev (283):   20
    Эмуляция колеса Evdev (284):    0
    Оси эмуляции колеса Evdev (285):   0, 0, 4, 5
    Инерция эмуляции колеса Evdev (286):    10
    Таймаут эмуляции колеса Evdev (287):    200
    Кнопка эмуляции колеса Evdev (288): 4
    Кнопки блокировки перетаскивания Evdev (289):  0

И evtest:

sudo evtest /dev/input/event12
Версия драйвера ввода 1.0.1
ID устройства ввода: шина 0x3 производитель 0x596 продукт 0x1 версия 0x440
Имя устройства ввода: "3M 3M USB Сенсорный Экран - 36955"
Поддерживаемые события:
  Тип события 0 (EV_SYN)
  Тип события 1 (EV_KEY)
    Код события 330 (BTN_TOUCH)
  Тип события 3 (EV_ABS)
    Код события 0 (ABS_X)
      Значение   6684
      Мин        0
      Макс    16384
    Код события 1 (ABS_Y)
      Значение   6185
      Мин        0
      Макс    16384
Свойства:
Тестирование ... (прервите, чтобы выйти)
Событие: время 1507280785.112401, тип 1 (EV_KEY), код 330 (BTN_TOUCH), значение 1
Событие: время 1507280785.112401, тип 3 (EV_ABS), код 0 (ABS_X), значение 5971
Событие: время 1507280785.112401, тип 3 (EV_ABS), код 1 (ABS_Y), значение 6240
Событие: время 1507280785.112401, -------------- SYN_REPORT ------------
Событие: время 1507280785.116364, тип 3 (EV_ABS), код 0 (ABS_X), значение 5953
Событие: время 1507280785.116364, -------------- SYN_REPORT ------------
Событие: время 1507280785.118359, тип 3 (EV_ABS), код 0 (ABS_X), значение 5968
Событие: время 1507280785.118359, -------------- SYN_REPORT ------------
# ...........
Событие: время 1507280785.156333, -------------- SYN_REPORT ------------
Событие: время 1507280785.158356, тип 1 (EV_KEY), код 330 (BTN_TOUCH), значение 0
Событие: время 1507280785.158356, -------------- SYN_REPORT ------------

Вам нужно установить новое ядро, чтобы проверить, поддерживает ли новое прошивку для него. Сначала убедитесь, какое текущее ядро в вашей системе, используя команду

uname -a

Вы можете вручную установить ядро 4.13, так как оно является текущим стабильным.

  1. Перейдите на ubuntu kernel 4.13

  2. На основе вывода вашей команды uname -a убедитесь, какая у вас архитектура системы/ОС. Если это была X86_64, значит, это 64-битная система, если это было X86, значит, это 32-битная.

  3. Создайте папку где-то в вашей системе с именем 4.13, вы также можете использовать команду

    mkdir 4.13
    
  4. Перейдите в директорию 4.13, теперь выберите файлы в зависимости от вашей архитектуры

    Вы можете сохранить один из списков в текстовом файле, например “kernel_files.list”. Теперь в терминале используйте wget для загрузки этих файлов.

    wget -i kernel_files.list
    

    Это загрузит весь список с помощью wget.

  5. Теперь продолжайте с их установкой

    sudo dpkg -i *.deb
    

    Это установит все 3 компонента ядра вместе, в конце вы увидите, что все ядра были скомпилированы.

  6. Перезагрузите систему, чтобы использовать новое ядро

    reboot
    
  7. Проверьте установку нового ядра, выполнив команду

    uname -a
    

Теперь проверьте, работает ли сенсорный экран должным образом.

Проверьте, получает ли система ввод через него, используя

dmesg

Если это все еще не работает, тогда установите

make,gcc,g++,build-utils 

выполнив команду

sudo apt install make gcc g++ build-utils

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

Примечание #1: Если вы не уверены в установке нового ядра вручную, вы можете использовать ukuu вместо этого,

Для установки ukuu

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install ukuu

Затем запустите ukuu и установите ядро 4.13 с помощью панели инструментов ukuu.

Примечание #2: Вы всегда можете вернуться к предыдущему ядру, нажав C во время загрузки вашего устройства на базе Ubuntu.

Примечание #3: Держите свой сенсорный экран и экран свободными от пыли, не допускайте попадания влаги, масла, грязи и т.д.

Примечание #4: Используйте стилус, так как это будет более точно, чем ваш палец.

Примечание #5: Ядро 4.14 находится на стадии тестирования, поэтому не устанавливайте его.

Ответ или решение

Сенсорный экран распознается как мышь: решение проблемы

Введение

Проблемы с совместимостью оборудования — частая ситуация при использовании устройств на операционной системе Linux. В данной ситуации сенсорный экран 3M USB Touchscreen – 36955 на вашем ПК с Ubuntu 16.04 распознается как мышь, что приводит к ограниченной функциональности. В этом руководстве мы рассмотрим причины данной проблемы и предложим шаги для ее решения.

Анализ проблемы

Ваша система отображает сенсорный экран как стандартное устройство ввода, применяя к нему параметры для мыши. Это вызывает генерацию событий, аналогичных действиям мыши, что мешает реализации полноценной работы с сенсорным вводом, который может поддерживать мультисенсорные функции.

Вы отметили, что на Windows сенсорный экран работает после установки соответствующего драйвера, однако при попытке установить аналогичный драйвер для Linux возникли ошибки, что затрудняет его использование. Кроме того, вы провели диагностику с помощью инструментов, таких как xinput и evtest, которые подтвердили, что устройство распознается, но его функциональность ограничена.

Шаги по решению проблемы

  1. Обновление ядра Linux: Возможно, проблема заключается в том, что текущее ядро не поддерживает нужные драйвера для вашего сенсорного экрана. Попробуйте установить более новую версию ядра, например, 4.13 или актуальную стабильную.

    Команды для обновления ядра:

    uname -a  # Проверка текущей версии ядра
    sudo apt-get update
    sudo apt-get install linux-generic-lts-$(lsb_release -cs)

    После установки нового ядра перезагрузите компьютер и проверьте, решена ли проблема с сенсорным экраном.

  2. Удаление модуля usbtouchscreen: Как вы отметили, команда modprobe -r usbtouchscreen приводит к отключению устройства. Это может указывать на конфликт модуля или на то, что драйвер не загружается должным образом. Попробуйте снова подключить устройство после перезагрузки системы.

  3. Повторная установка драйвера: Попробуйте установить драйвер, используемый на Windows, через Wine или другие средства, позволяющие запускать Windows-приложения в Linux. Если это не сработает, необходимо искать альтернативные драйверы на форумах в сети или GitHub.

  4. Использование дополнительных инструментов: Убедитесь, что у вас установлены все необходимые пакеты для сборки и установки драйверов:

    sudo apt install build-essential

    После этого попробуйте открыть источник драйвера и установить его вручную. Это может потребовать находчивости и изучения документации.

  5. Проверка событий ввода: Используйте evtest или другие инструменты для проверки, как система реагирует на ввод с сенсорного экрана. Это может дать более детальное представление о том, правильно ли распознаются события касания.

  6. Состояние оборудования: Убедитесь, что сам сенсорный экран в хорошем состоянии. Проблемы с техникой, такие как грязь или повреждения, также могут влиять на его работоспособность.

Заключение

Проблема с распознаванием сенсорного экрана 3M как мыши может быть связана с несовместимостью драйверов или недостаточной поддержкой оборудования в используемом ядре Linux. Следуя вышеуказанным шагам, вы сможете значительно улучшить функциональность вашего устройства. Не забудьте всегда сохранять резервные копии и внимательно следить за изменениями в системе. Если проблема продолжит проявляться, рассмотрите возможность обращения за помощью на специализированные форумы сообщества Linux.

Оцените материал
Добавить комментарий

Капча загружается...