LINUX.ORG.RU

Как заставить устройство USB использовать конкретный модуль(или драйвер?)

 , , ,


0

1

Есть клон Nintendo Switch Pro controller, который умеет работать в режиме Xbox360 и «Dinput For Windows», если его переключить. В режиме Dinput не задействуется гироскоп, наличие которого я, таки, хочу выяснить. Сабж в Dmesg, в нормальном режиме:

[  +2,111243] usb 3-5: new full-speed USB device number 21 using xhci_hcd
[  +0,140036] usb 3-5: device descriptor read/64, error -71
[  +0,217999] usb 3-5: device descriptor read/64, error -71
[  +0,218943] usb 3-5: new full-speed USB device number 22 using xhci_hcd
[  +0,214631] usb 3-5: config 1 has an invalid interface number: 1 but max is 0
[  +0,000004] usb 3-5: config 1 has an invalid interface number: 2 but max is 0
[  +0,000002] usb 3-5: config 1 has an invalid interface number: 3 but max is 0
[  +0,000001] usb 3-5: config 1 has 4 interfaces, different from the descriptor's value: 1
[  +0,009297] usb 3-5: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.02
[  +0,000006] usb 3-5: New USB device strings: Mfr=0, Product=2, SerialNumber=3
[  +0,000001] usb 3-5: Product: XBOX 360 For Windows
[  +0,000002] usb 3-5: SerialNumber: 000000000001
[  +0,027516] input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:02.1/0000:16:00.0/usb3/3-5/3-5:1.0/input/input41

В режиме Dinput:

[  +3,848211] usb 3-5: USB disconnect, device number 22
[  +0,274452] usb 3-5: new full-speed USB device number 23 using xhci_hcd
[  +0,223406] usb 3-5: New USB device found, idVendor=2563, idProduct=0575, bcdDevice= 1.00
[  +0,000006] usb 3-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  +0,000002] usb 3-5: Product: Controller (Dinput For Windows)
[  +0,000001] usb 3-5: Manufacturer: Nintendo Co., Ltd.
[  +0,019471] input: Nintendo Co., Ltd. Controller (Dinput For Windows) as /devices/pci0000:00/0000:00:02.1/0000:16:00.0/usb3/3-5/3-5:1.0/0003:2563:0575.0008/input/input42
[  +0,000086] hid-generic 0003:2563:0575.0008: input,hidraw5: USB HID v1.11 Gamepad [Nintendo Co., Ltd. Controller (Dinput For Windows)] on usb-0000:16:00.0-5/input0

И я подумал… А если сделать какой-нибудь ремап/блэклист режима Dinput для данного контроллера и, вместо этого, подсунуть ему hid-nintendo? Такое возможно? Как и чем это делается? Udev?


Можешь сначала ручками проверить. Если сработает, подумаешь как сделать на автомате.

Я только забыл где, в sys или в proc есть файлики bind и unbind для драйвера устройства. Ему надо сообщить USB путь устройства. Путь можно взять из lsusb.

Вот. Одному драйверу сделать unbind. А второму bind. Обычно второй сам находит устройство при загрузке модуля.

hibou ★★★★★
()