User Tools

Site Tools


doc:appunti:software:usb_wireless_gamepad

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:software:usb_wireless_gamepad [2021/02/12 08:54] – [Problema sull'asse X] niccolodoc:appunti:software:usb_wireless_gamepad [2021/02/13 08:33] (current) – [Kernel funzionanti e kernel non funzionanti] niccolo
Line 1: Line 1:
 ====== Kodi con Gamepad Wireless USB ====== ====== Kodi con Gamepad Wireless USB ======
  
-Vogliamo utilizzare un **Gamepad** come telecomando per **Kodi** su **Raspberry Pi**, la distribuzione di riferimento è RaspiOS basata su **Debian 10 Buster**.+Vogliamo utilizzare questo **Gamepad** come telecomando per **Kodi** su **Raspberry Pi**, la distribuzione di riferimento è RaspiOS basata su **Debian 10 Buster**. Si tratta un controller **SNES wireless a 2.4 GHz** con micro ricevitore **USB** per PC, nella confezione è compreso anche un ricevitore per Nintendo. Il produttore si chiama **YSTEK** e il prodotto **MICREAL**, Linux lo supporta tramite il modulo kernel DragonRise **hid_dr**.
  
-Abbiamo acquistato un controller **SNES wireless a 2.4 GHz** con micro ricevitore **USB**. Sul bus viene riconosciuto come:+{{.:kodi:micreal-usb-gamepad.jpg?400|The Micreal USB Gamepad using DragonRise driver}} 
 + 
 +Viene riconosciuto dal comando **lsusb** come:
  
 <code> <code>
Line 39: Line 41:
 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. 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.
  
-===== Freccia destra e sinistra non funzionanti: problema asse X =====+===== Problema freccia destra e sinistra non funzionanti =====
  
-Tutto ha funzionato correttamente su un sistema **Raspberry Pi 3**, RaspiOS basato su **Debian 9.11 Stretch** e **Kodi 17.6**.+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 **Left** e **Right** non funzionano. Ci sono dei problemi invece con un sistema **Raspberry Pi 4**, RaspiOS basato su **Debian 10.8** e **Kodi 18.7**: i tasti freccia **Left** e **Right** non funzionano.
 +
 +C'è chi ha riscontrato lo stesso problema utilizzando Retropie: **[[https://retropie.org.uk/forum/topic/25657/controler-issue-no-left-and-right-not-working-at-all/| Controler Issue (no left and right not working at all)]]**.
 +
 +==== 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 122: Line 128:
 Si vede che nella **posizione a riposo** dell'asse **ABS_X** il Value è **1** invece dell'atteso **127**. Si vede che nella **posizione a riposo** dell'asse **ABS_X** il Value è **1** invece dell'atteso **127**.
  
-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**, invece il gamepad **funziona correttamente** con il vecchio kernel **4.9.189**. +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**. I moduli kernel interessati dovrebbero essere: **hid_dr**, **ff_memless** e **hid**.
  
-Questo il dmesg per il **kernel 4.9.189**:+Questo il dmesg per il **kernel 4.9.189** (funzionante):
  
 <file> <file>
Line 140: Line 146:
 </file> </file>
  
-Questo invece il dmesg per il **kernel 4.19.98**:+Questo invece il dmesg per il **kernel 4.19.98** (non funzionante):
  
 <file> <file>
Line 154: Line 160:
 </file> </file>
  
-C'è chi ha riscontrato lo stesso problema utilizzando Retropie: **[[https://retropie.org.uk/forum/topic/25657/controler-issue-no-left-and-right-not-working-at-all/| Controler Issue (no left and right not working at all)]]**.+==== 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://www.kernel.org/doc/Documentation/usb/usbmon.txt|usbmon]]**: 
 + 
 +<code> 
 +# Mount debugs, if not already mounted: 
 +mount -t debugfs none_debugs /sys/kernel/debug 
 +modprobe usbmon 
 +</code> 
 + 
 +quindi si chiede l'elenco di tutte le periferiche USB: 
 + 
 +<code> 
 +cat /sys/kernel/debug/usb/devices 
 +... 
 +T:  Bus=02 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#=  6 Spd=1.5  MxCh= 0 
 +D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 
 +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  ) Sub=00 Prot=00 Driver=usbhid 
 +E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms 
 +... 
 +</code> 
 + 
 +È possibile ispezionare il traffico di **tutti i bus** (utilizzando il numero **0**), oppure solo quello del **bus #2** 
 + 
 +<code> 
 +cat /sys/kernel/debug/usb/usbmon/2u 
 +</code> 
 + 
 +Nel caso del nostro gamepad **non si ottiene alcun tracciato**, mentre si vede il **passaggio dei pacchetti** quando si **muove un mouse** collegato allo stesso bus. 
 + 
 +==== Kernel funzionanti e kernel non funzionanti ==== 
 + 
 +^ System                ^ Kernel              ABS_X Working 
 +| Raspberry Pi 3        | 4.19.66-v7+        | Yes  | 
 +| Raspberry Pi 4        | 5.10.11-v7l+       | No   | 
 +| PC amd64 Debian 10.8  | 4.9.189-3+deb9u2   | Yes  | 
 +| PC amd64 Debian 10.8  | 4.19.67-2+deb10u2  | Yes  | 
 +| PC amd64 Debian 10.8  | 4.19.98-1+deb10u1  | No   | 
 +| PC amd64 Debian 10.8  | 4.19.160-2         | No   | 
 + 
 +===== Web References ===== 
 + 
 +  * **[[https://www.retropie-italia.it/viewtopic.php?f=19&t=702|[GUIDA] DragonRise Inc. Generic USB Joystick]]** 
 +  * **[[https://retropie.org.uk/forum/topic/25657/controler-issue-no-left-and-right-not-working-at-all/|Controler Issue (no left and right not working at all)]]** 
doc/appunti/software/usb_wireless_gamepad.1613116456.txt.gz · Last modified: 2021/02/12 08:54 by niccolo