LINUX.ORG.RU

Запретить обнаружение usb-подустройства.

 


0

1

Есть беспроводная мышь «A4 Tech». Она определяется одновременно как мышь, и как клавиатуре. При нажатии на кнопку «двойного клика» псевдоклавиатура выбрасывает последовательность горячих клавиш и текста, которая под офтопиком должна привести к открытию в браузере сайта компании с предложением установить ихнюю фирменную программу для мыши. При этом эта псевдоклавиатура воспринимается еще и как джойстик. И есть одна игрушка под wine, в которой когда подключен джойстик, невозможно управлять персонажем с помощью мыши (при этом в меню курсор двигается). Разработчики поленились. И из-за этого псевдоджойстика персонаж непрерывно бежит влево. В итоге родились такие правила udev:

KERNEL=="js[0-9]*", SUBSYSTEM=="input", ATTRS{manufacturer}=="A4TECH", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="054f", ATTRS{bcdDevice}=="0269", MODE:="0000"
KERNEL=="event[0-9]*", SUBSYSTEM=="input", ATTRS{manufacturer}=="A4TECH", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="054f", ATTRS{bcdDevice}=="0269", MODE:="0000"
Персонаж перестал непрерывно бежать. Но мышь в игре не заработала. И по нажатию клавиши все еще набирается адрес сайта с хоткеями.

Как запретить обнаружение устройств? Или хотя-бы отрубать сразу по обнаружению? Читал, что раньше можно было добавить правило OPTIONS+=«disable_device», или как-то так, но потом это из udev выпилили.

P.S.: Не пишу в раздел Games, потому что проблема явно не в игре.

Тупо попробуй

ACTION=="add", KERNEL=="js[0-9]*", SUBSYSTEM=="input", ATTRS{manufacturer}=="A4TECH", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="054f", ATTRS{bcdDevice}=="0269", RUN+="/usr/bin/rm /dev/input/js%n"

Ну или

SUBSYSTEM=="usb", ENV{MODALIAS}=="usb:v09dap054f*ip01", ENV{MODALIAS}="nonexistentmodule"
или
SUBSYSTEM=="usb", ENV{MODALIAS}=="usb:v09dap054f*ip01", ENV{MODALIAS}=""

где ip01 - номер интерфейса который прикидывается джойстиком.

Посмотреть интерфейсы можно командой lsusb -v -d 09da:054f

В первом случае девайс сразу удаляется после создания, во втором для этого интерфейса usb-устройства не будет загружен модуль -> не создастся девайс.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 3)

Тебе нужен a4tool

a4tool init

Отключает эту мутную кнопку или переключает на ту функцию которая настроена.

surefire ★★★
()
Последнее исправление: surefire (всего исправлений: 1)

Ну и если всё таки хочешь что-то отключить, вначале попробуй отключить это в иксах, а уже во вторую очередь по жесткому.

смотришь устройства

xinput

выбираешь нужный id и отключаешь

xinput disable <id>

surefire ★★★
()
Ответ на: комментарий от surefire

a4tool помог лишь частично. Теперь та кнопка действительно дает двойной клик, но персонаж все равно бежит влево. И файл устройства /dev/input/js0 сохранился. В xinput соответствующее устройство не нашел.

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ A4TECH USB Device                       	id=8	[slave  pointer  (2)]
⎜   ↳ A4TECH USB Device                       	id=9	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=10	[slave  keyboard (3)]
    ↳ ACPI Virtual Keyboard Device            	id=11	[slave  keyboard (3)]

DinoAsm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.