doc:appunti:software:usb_wireless_gamepad
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:appunti:software:usb_wireless_gamepad [2021/02/11 09:03] – niccolo | doc:appunti:software:usb_wireless_gamepad [2021/02/13 08:33] (current) – [Kernel funzionanti e kernel non funzionanti] niccolo | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Kodi con USB Wireless | + | ====== Kodi con Gamepad |
- | Vogliamo utilizzare | + | Vogliamo utilizzare |
- | Abbiamo acquistato un controller **SNES wireless a 2.4 GHz** con micro ricevitore | + | {{.: |
+ | |||
+ | Viene riconosciuto dal comando | ||
< | < | ||
Line 9: | Line 11: | ||
</ | </ | ||
- | Sono necessari i seguenti pacchetti: | + | La periferica dovrebbe essere riconosciuta in automatico e quindi i **moduli kernel** necessari dovrebbero essere caricati automaticamente (verificare i moduli **hid_dr**, **ff_memless** e **hid**). |
+ | |||
+ | Per effettuare il **pairing** tra gamepad e ricevitore USB si procede anzitutto scollegando il dongle USB dell' | ||
+ | |||
+ | Sono necessari i seguenti pacchetti | ||
* **kodi-peripheral-joystick** | * **kodi-peripheral-joystick** | ||
Line 18: | Line 24: | ||
* **evtest** - Contiene il tool **evtest** per monitorare gli eventi input. | * **evtest** - Contiene il tool **evtest** per monitorare gli eventi input. | ||
- | In generale, dopo aver installato il pacchetto **kodi-peripheral-joystick** e riavviato Kodi, è sufficiente andare nel menu **Settings** => **System settings** => **Input** => **Configure attached controller**. In questa schermata è possibile scegliere il tipo di controller: Kodi 17 dispone del generico controller **Kodi 17.6**, mentre **Kodi 18.7** consente di scegliere fra il generico **Kodi** oppure lo specifico controller **SNES**. | + | In generale, dopo aver installato il pacchetto **kodi-peripheral-joystick** e riavviato Kodi, è sufficiente andare nel menu **Settings** => **System settings** => **Input** => **Configure attached controller**. In questa schermata è possibile scegliere il tipo di controller: Kodi 17 dispone del generico controller **Kodi 17.6**, mentre **Kodi 18.7** consente di scegliere fra il generico **Kodi** oppure lo specifico controller **Super Nintendo**. |
È possibile riprogrammare la funzione di ciascun tasto, ma le impostazioni predefinite dovrebbero andare bene. In generale saranno necessarie le seguenti funzioni: | È possibile riprogrammare la funzione di ciascun tasto, ma le impostazioni predefinite dovrebbero andare bene. In generale saranno necessarie le seguenti funzioni: | ||
Line 33: | Line 39: | ||
La configurazione personalizzata viene salvata in un file nella cartella **$HOME/ | La configurazione personalizzata viene salvata in un file nella cartella **$HOME/ | ||
- | ===== Problema sull' | + | Il gamepad va in modalità **stand-by** dopo poco tempo di non utilizzo, per risvegliarlo è necessario premere il pulsante **start**. Il LED rosso si accende e i tasti funzionano nuovamente. |
- | Non abbiamo avuto problemi su un sistema **Raspberry Pi 3**, RaspiOS basato su **Debian 9.11 Stretch** | + | ===== Problema freccia destra |
- | Ci sono problemi invece con un sistema **Raspberry Pi 4**, RaspiOS basato su **Debian 10.8** e **Kodi 18.7**: i tasti **Left** e **Right** non funzionano. | + | Tutto funziona correttamente su un sistema **Raspberry Pi 3**, RaspiOS basato su **Debian 9.11 Stretch** e **Kodi 17.6**. |
+ | |||
+ | Ci sono dei problemi invece con un sistema **Raspberry Pi 4**, RaspiOS basato su **Debian 10.8** e **Kodi 18.7**: i tasti freccia | ||
+ | |||
+ | C'è chi ha riscontrato lo stesso problema utilizzando Retropie: **[[https:// | ||
+ | |||
+ | ==== Debug con input-events ed evtest ==== | ||
Eseguendo il comando **lsinput** si vede che il gamepad è stato associato al device **event5**: | Eseguendo il comando **lsinput** si vede che il gamepad è stato associato al device **event5**: | ||
Line 115: | Line 127: | ||
Si vede che nella **posizione a riposo** dell' | Si vede che nella **posizione a riposo** dell' | ||
+ | |||
+ | Il problema non è circoscritto al Raspberry Pi, lo **stesso malfunzionamento** si riscontra anche su un **PC amd64** con sistema **Debian 10.8** e kernel **4.19.160**. Il problema esiste già con il kernel **4.19.98**. Il gamepad invece **funziona correttamente** sullo stesso PC, ma con il vecchio kernel **4.9.189**. | ||
+ | |||
+ | I moduli kernel interessati dovrebbero essere: **hid_dr**, **ff_memless** e **hid**. | ||
+ | |||
+ | Questo il dmesg per il **kernel 4.9.189** (funzionante): | ||
+ | |||
+ | < | ||
+ | usb 2-1.3: new low-speed USB device number 4 using ehci-pci | ||
+ | usb 2-1.3: New USB device found, idVendor=0079, | ||
+ | usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 | ||
+ | usb 2-1.3: Product: MICREAL USB Gamepad | ||
+ | usb 2-1.3: Manufacturer: | ||
+ | input: YSTEK MICREAL USB Gamepad as | ||
+ | / | ||
+ | dragonrise 0003: | ||
+ | on usb-0000: | ||
+ | </ | ||
+ | |||
+ | Questo invece il dmesg per il **kernel 4.19.98** (non funzionante): | ||
+ | |||
+ | < | ||
+ | usb 2-1.3: new low-speed USB device number 9 using ehci-pci | ||
+ | usb 2-1.3: New USB device found, idVendor=0079, | ||
+ | usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 | ||
+ | usb 2-1.3: Product: MICREAL USB Gamepad | ||
+ | usb 2-1.3: Manufacturer: | ||
+ | input: YSTEK MICREAL USB Gamepad as | ||
+ | / | ||
+ | dragonrise 0003: | ||
+ | on usb-0000: | ||
+ | </ | ||
+ | |||
+ | ==== Debug con usbmon ==== | ||
+ | |||
+ | In teoria dovrebbe essere possibile **ispezionare il traffico** direttamente sul bus USB utilizzando la funzione **usbmon** del kernel Linux. Seguendo le istruzioni **[[https:// | ||
+ | |||
+ | < | ||
+ | # Mount debugs, if not already mounted: | ||
+ | mount -t debugfs none_debugs / | ||
+ | modprobe usbmon | ||
+ | </ | ||
+ | |||
+ | quindi si chiede l' | ||
+ | |||
+ | < | ||
+ | cat / | ||
+ | ... | ||
+ | T: Bus=02 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 6 Spd=1.5 | ||
+ | D: Ver= 1.10 Cls=00(> | ||
+ | P: Vendor=0079 ProdID=0011 Rev= 3.11 | ||
+ | S: Manufacturer=YSTEK | ||
+ | S: Product=MICREAL USB Gamepad | ||
+ | C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA | ||
+ | I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID | ||
+ | E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | È possibile ispezionare il traffico di **tutti i bus** (utilizzando il numero **0**), oppure solo quello del **bus #2** | ||
+ | |||
+ | < | ||
+ | cat / | ||
+ | </ | ||
+ | |||
+ | Nel caso del nostro gamepad **non si ottiene alcun tracciato**, | ||
+ | |||
+ | ==== Kernel funzionanti e kernel non funzionanti ==== | ||
+ | |||
+ | ^ System | ||
+ | | Raspberry Pi 3 | 4.19.66-v7+ | ||
+ | | Raspberry Pi 4 | 5.10.11-v7l+ | ||
+ | | PC amd64 Debian 10.8 | 4.9.189-3+deb9u2 | ||
+ | | PC amd64 Debian 10.8 | 4.19.67-2+deb10u2 | ||
+ | | PC amd64 Debian 10.8 | 4.19.98-1+deb10u1 | ||
+ | | PC amd64 Debian 10.8 | 4.19.160-2 | ||
+ | |||
+ | ===== Web References ===== | ||
+ | |||
+ | * **[[https:// | ||
+ | * **[[https:// | ||
doc/appunti/software/usb_wireless_gamepad.1613030592.txt.gz · Last modified: 2021/02/11 09:03 by niccolo