Вопрос или проблема
У меня установлен базовый Ubuntu 18.04.3 LTS.
Я только что приобрел CadMouse Pro Wireless. Эта мышь имеет два режима – она может использоваться в беспроводном режиме через USB-ресивер, или ее можно использовать в проводном режиме, подключив напрямую к компьютеру через кабель microUSB.
В беспроводном режиме она работает хорошо.
В проводном режиме, после подключения, происходит следующее:
- В первые 2 – 3 секунды она работает хорошо.
- Когда я физически перемещаю мышь, курсор на экране движется соответствующим образом.
- Когда я физически нажимаю кнопки, элементы интерфейса на экране (кнопки, меню и т.д.) реагируют соответствующим образом.
- Спустя 2 – 3 секунды она перестает работать.
- Когда я физически перемещаю мышь, курсор на экране не движется.
- Когда я физически нажимаю кнопки, элементы интерфейса на экране не реагируют вовсе.
Я проверил, что мышь работает хорошо в обоих режимах в Windows 10 и macOS.
Вот что выдает dmesg
при подключении мыши:
daniel@ubuntu:~$ dmesg -w
[10758.269137] usb 1-3: new full-speed USB device number 10 using xhci_hcd
[10758.608911] usb 1-3: New USB device found, idVendor=256f, idProduct=c654, bcdDevice= 1.06
[10758.608913] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[10758.608915] usb 1-3: Product: CadMouse Pro Wireless
[10758.608916] usb 1-3: Manufacturer: 3Dconnexion
[10758.635675] input: 3Dconnexion CadMouse Pro Wireless as /devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-3/1-3:1.0/0003:256F:C654.001C/input/input44
[10758.636070] hid-generic 0003:256F:C654.001C: input,hidraw0: USB HID v1.11 Mouse [3Dconnexion CadMouse Pro Wireless] on usb-0000:03:00.0-3/input0
[10758.648184] input: 3Dconnexion CadMouse Pro Wireless as /devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-3/1-3:1.1/0003:256F:C654.001D/input/input45
[10758.648408] hid-generic 0003:256F:C654.001D: input,hiddev0,hidraw1: USB HID v1.11 Multi-Axis Controller [3Dconnexion CadMouse Pro Wireless] on usb-0000:03:00.0-3/input1
После того, как мышь перестает работать, больше никаких сообщений не появляется.
Вот что выдает lsusb
после подключения мыши:
daniel@ubuntu:~$ lsusb
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 005: ID 05ac:024f Apple, Inc.
Bus 005 Device 004: ID 05ac:1006 Apple, Inc. Hub in Aluminum Keyboard
Bus 005 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 005 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 013: ID 256f:c654
Bus 001 Device 003: ID 1b1c:0c04 Corsair
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
256f:c654
– это CadMouse Pro.
(Ресивер Logitech предназначен для другой, не связанной мыши, которая работает хорошо. Я наблюдаю такое же поведение CadMouse независимо от того, подключен ресивер Logitech или нет).
Я также пытался решить проблему через HID API с помощью cadmousectl
, но пока безуспешно, так как HID API видит, но не может открыть CadMouse – см. вопрос на GitHub для получения дополнительной информации.
Есть идеи, как сделать так, чтобы мышь не переставала реагировать через 2 – 3 секунды? Спасибо.
Короткий ответ: также опрашивайте “конфигурационное” устройство, и устройство “мышь” будет продолжать сообщать события:
# Держите это работающим в фоновом режиме:
sudo cat /dev/input/by-id/usb-3Dconnexion_CadMouse_Pro_Wireless-event-if01
(Это скорее диагностическое решение, чем практическое для конечного пользователя.)
Когда она подключена через USB кабель, CadMouse Pro Wireless декларирует два HID “интерфейса”. Первый предоставляет всю “мышиную” функциональность – кнопки, перемещение, колесо и настройку разрешения – и рассматривается как устройство ввода “мышь” в Linux. Второй интерфейс, по-видимому, предназначен для проприетарной настройки через определенные производителем функции HID (и также сообщает уровень заряда батареи).
Мышь, похоже, требует, чтобы второй интерфейс периодически опрашивался, чтобы она продолжала сообщать о новых событиях мыши на своем первом интерфейсе. (Я бы предположил, что это попытка заставить вас установить их проприетарное программное обеспечение на Windows/Mac, которое, вероятно, постоянно взаимодействует со вторым интерфейсом.) Я обнаружил это случайно, пытаясь диагностировать ту же проблему (мышь работала хорошо через Universal Receiver или Bluetooth, но не через USB кабель) – когда я попытался мониторить события на втором интерфейсе, мышь внезапно начала работать, но перестала спустя некоторое время после того, как я прекратил мониторинг этого интерфейса (и перестал двигать мышь; если продолжать двигать мышь, она продолжает работать до тех пор, пока вы не остановитесь). Если я продолжаю мониторинг этого интерфейса, мышь продолжает работать.
В своих экспериментах я изначально использовал evemu-record
, но cat
достаточно (проверено на Mint 22, который соответствует Ubuntu 24.04).
Ответ или решение
Проблема, с которой вы столкнулись при эксплуатации CadMouse Pro Wireless на операционной системе Ubuntu 18.04.3 LTS, заключается в том, что мышь перестает функционировать через 2-3 секунды после подключения по USB. Данная ситуация возникает только в проводном режиме; в беспроводном режиме с использованием USB-ресивера работа мыши остается стабильной. Важно рассмотреть несколько теоретических и практических аспектов, чтобы полностью разобраться в этой проблеме и предложить возможные решения.
Теория
Проблема, которую вы описываете, связана с взаимодействием мыши и операционной системы через HID API (Human Interface Device Application Programming Interface). На уровне драйверов в Linux система может не полностью поддерживать или неправильно интерпретировать некоторые устройства HID, особенно если они требуют сложного протокола взаимодействия.
Как указано в случае вашего CadMouse Pro, устройство использует два интерфейса HID. Первый интерфейс отвечает за основные функции мыши: движение курсора, нажатие кнопок и прокрутка колеса. Второй интерфейс используется для конфигурации устройства и, возможно, передачи специфической информации о состоянии батареи и других параметрах. Кажется, что устройство требует постоянного опроса второго интерфейса, чтобы оставаться активным.
Пример
Из приведенного вами dmesg
вывода видно, что система успешно распознает устройство и его два интерфейса, но после первоначального подключения перестает взаимодействовать с ним. Аналогичное поведение обсуждалось и было изучено другими пользователями, где было выявлено, что постоянный поток данных или опрос с интерфейса конфигурации обязательно требуется для поддержания работы основного функционала мыши.
Для примера, комьюнити пользователь предложил поддерживать открытым интерфейс конфигурации через команду:
sudo cat /dev/input/by-id/usb-3Dconnexion_CadMouse_Pro_Wireless-event-if01
Задача этой команды — оставаться в постоянном интерфейсе взаимодействия с устройством, что затем может удерживать рабочее состояние мыши.
Применение
Для решения проблемы на вашей стороне, следует провести несколько диагностических и конфигурационных действий.
-
Диагностическое решение: Попробуйте использовать предложенный метод — оставьте работающей команду на фоне, чтобы удостовериться, что мышь продолжит работать более 2-3 секунд. Это может подтвердить гипотезу о необходимости постоянного опроса устройства.
-
Проверка обновлений ядра и пакетов: Удостоверьтесь, что все доступные обновления для вашей версии Ubuntu установлены, особенно те, что касаются ядра Linux и связанных пакетов с HID устройствами.
-
Альтернативные драйверы: Поскольку данная проблема является специфичной для устройства, вы можете попробовать поискать кастомизированные драйверы или реализацию через стороннее ПО. Например, иногда есть неофициальные поддержка для устройств 3Dconnexion на Linux.
-
Настройка через
cadmousectl
: Если у вас есть возможность, обратитесь к авторуcadmousectl
или сообществу проекта для новейших исправлений или патчей, которые могут адресовать проблему. -
Обратите внимание на логи: Используйте команды
journalctl
иdmesg
для более детального анализа происходящего в системе при подключении устройства. Возможно, есть дополнительные подсказки о проблемах, не отображаемых в "стандартной" информации.
При обращении с данной проблемой с точки зрения бизнеса, ваше предложение разработки или приобретения подходящего драйвера или конфигурационного ПО могло бы ускорить процесс налаживания работы. Вместе с тем, консультация с техническими специалистами, которые занимаются интеграцией линейных драйверов, могла бы ускорить данную работу.
В заключение следует отметить, что хотя проблема имеет свою техническую специфику, ее решение может потребовать систематического подхода и внимания к деталям всех элементов взаимодействия между устройством и операционной системой.