Myszka A4Tech wykrywana jako gamepad, joystick

PGmarcin
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 11 paź 2014, 21:44
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64

Myszka A4Tech wykrywana jako gamepad, joystick

Post autor: PGmarcin » 08 lut 2015, 18:47

Diagnoza: Programy wykrywają więcej urządzeń sterujących niż mamy ich podłączonych. Steam Big Picture i niektóre gry np. FEZ zachowują się jakby ktoś wciskał nam jakiś przycisk.
Powodem takich zachowań może być myszka A4Tech, która jest wykrywana przez system jako myszka i gamepad jednocześnie.
Wydaj polecenie:

Kod: Zaznacz cały

cat /proc/bus/input/devices
Odszukaj w liście swoją myszkę:

Kod: Zaznacz cały

I: Bus=0003 Vendor=09da Product=8090 Version=0111
N: Name="A4Tech USB Full Speed"
P: Phys=usb-0000:00:13.5-2.4/input0
S: Sysfs=/devices/pci0000:00/0000:00:13.5/usb1/1-2/1-2.4/1-2.4:1.0/0003:09DA:8090.003B/input/input70
U: Uniq=
H: Handlers=event2 mouse0 
B: PROP=0
B: EV=17
B: KEY=ffff0000 0 0 0 0
B: REL=143
B: MSC=10

I: Bus=0003 Vendor=09da Product=8090 Version=0111
N: Name="A4Tech USB Full Speed"
P: Phys=usb-0000:00:13.5-2.4/input1
S: Sysfs=/devices/pci0000:00/0000:00:13.5/usb1/1-2/1-2.4/1-2.4:1.1/0003:09DA:8090.003C/input/input71
U: Uniq=
H: Handlers=sysrq kbd event3 js0
B: PROP=0
B: EV=12001f
B: KEY=3007f 0 0 4c3ffff17aff32d bf54445600000000 c00000000000001 130c130b17c007 ffa67bfad951dfff febeffdfffefffff fffffffffffffffe
B: REL=40
B: ABS=ffffff01000701ff
B: MSC=10
B: LED=1f
js w rzędzie Handlers oznacza wykrycie jako gamepad. Teraz wystarczy usunąć odpowiadający plik event (w tym przypadku event3)
Pliki niestety z każdym uruchomieniem są generowane od nowa dlatego trzeba dodać regułę usuwania przy starcie systemu.
Wydaj odpowiednie polecenie dla twojego pliku event:

Kod: Zaznacz cały

udevadm info -a  /dev/input/event3
i zachowaj uzyskane informację.
Następnie stwórz plik z rozszerzeniem .rules w folderze /etc/udev/rules.d/. Za pomocą wcześniej uzyskanych informacji o twoim urządzeniu wpisz do pliku odpowiednią zasadę usuwania, np:

Kod: Zaznacz cały

SUBSYSTEM=="input", ATTRS{name}=="*A4Tech*", ATTRS{phys}=="*/input1", RUN+="/usr/bin/rm /dev/input/%k"
"*" (gwiazki) oznaczają automatyczne dokończenie nazw (system sam wykryję dalszą część), więc zamiast "usb-0000:00:12.1-2/input1" wystarczy wpisać "*/input1"
ODPOWIEDZ

Wróć do „Hardware-Inne”