Итак, xpad.c теперь имеет поддержку контроллера XBOXONE. Я покупаю контроллер PowerA Spectra XBOXONE. Все, что он делает, это подключается и отключается. Тогда я заметил, что xpad не распознает контроллер, и решил отредактировать xpad.c и перекомпилировать.
Linux CtrlZ 3.18.7-sabayon # 1 SMP Mon 16.02 14:29:37 UTC 2015 x86_64 AMD A10-7850K Radeon R7, 12 вычислительных ядер 4C+8G AuthenticAMD GNU/Linux
пример
[660.061511] usb 3-2: новое высокоскоростное USB-устройство № 39 с использованием xhci_hcd
[660.205548] usb 3-2: найдено новое USB-устройство, idVendor = 24c6, idProduct = 542a
[660.205551] usb 3-2: Новые строки USB-устройств: Mfr = 1, Product = 2, SerialNumber = 3
[660.205554] USB 3-2: Продукт: Контроллер
[660.205555] usb 3-2: Производитель: Microsoft
[660.205557] usb 3-2: SerialNumber: 0000F2292EF239AD
[675.295032] usb 3-2: USB отключено, устройство № 39
[675.541979] usb 3-2: новое высокоскоростное USB-устройство № 40 с использованием xhci_hcd
[675.686018] usb 3-2: найдено новое USB-устройство, idVendor = 24c6, idProduct = 542a
[675.686022] usb 3-2: Новые строки USB-устройств: Mfr = 1, Product = 2, SerialNumber = 3
[675.686024] USB 3-2: Продукт: Контроллер
[675.686025] USB 3-2: Производитель: Microsoft
[675.686027] usb 3-2: SerialNumber: 0000F2292EF239AD
Используя приведенную выше информацию, я смог исправить xpad.c, включив в него следующие строки 207 и 311.
ПРИМЕР
206: {0x24c6, 0x5300, "Контроллер PowerA MINI PROEX", 0, XTYPE_XBOX360},
207: {0x24c6, 0x542a, "PowerA Spectra", 0, XTYPE_XBOXONE},
310: XPAD_XBOX360_VENDOR(0x24c6), / * контроллеры PowerA /
311: XPAD_XBOXONE_VENDOR(0x24c6), / Контроллеры PowerA * /
Это сработало? Нет, но я приблизился к цели. Любые опытные разработчики ядра хотят помочь мне? Я большой n00b, когда дело доходит до редактирования драйверов. Базовое программирование я знаю, но это совсем другой уровень. Я готов учиться.
# Текущий вывод[1217.579190] usb 3-2: новое высокоскоростное USB-устройство № 75 с использованием xhci_hcd
[1217.721294] usb 3-2: найдено новое USB-устройство, idVendor = 24c6, idProduct = 542a
[1217.721298] usb 3-2: Новые строки USB-устройств: Mfr = 1, Product = 2, SerialNumber = 3
[1217.721300] usb 3-2: Продукт: Контроллер
[1217.721302] usb 3-2: Производитель: Microsoft
[1217.721303] usb 3-2: SerialNumber: 0000F2292EF239AD
[1217.723396] вход: PowerA Spectra as /devices/pci0000:00/0000:00:10.1/usb3/3-2/3-2:1.0/input/input93
[1232.812766] USB 3-2: USB-разъём, устройство № 75
[1233.060659] usb 3-2: новое высокоскоростное USB-устройство № 76 с использованием xhci_hcd
[1233.203764] usb 3-2: найдено новое USB-устройство, idVendor = 24c6, idProduct = 542a
[1233.203768] usb 3-2: Новые строки USB-устройств: Mfr = 1, Product = 2, SerialNumber = 3
[1233.203771] usb 3-2: Продукт: Контроллер
[1233.203772] usb 3-2: Производитель: Microsoft
[1233.203774] usb 3-2: SerialNumber: 0000F2292EF239AD
[1233.205895] вход: PowerA Spectra as /devices/pci0000:00/0000:00:10.1/usb3/3-2/3-2:1.0/input/input94
Кажется, это не делает рукопожатие какого-то рода? Может быть, пытаясь говорить с контроллером, как его контроллер 360 вместо одного контроллера?