Questão Não é possível obter o gamepad USB para funcionar no Ubuntu 12.04


Eu estou tentando obter um gamepad usb barato para trabalhar no Ubuntu 12.04 em execução no meu braço chromebook (usando o chroot). Depois de ligar o gamepad, o dmesg mostra:

[ 5879.411510] usb 2-1: new low-speed USB device number 8 using exynos-ohci
[ 5879.610530] usb 2-1: New USB device found, idVendor=0079, idProduct=0011
[ 5879.610560] usb 2-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 5879.610584] usb 2-1: Product: USB Gamepad

A saída do lsusb é:

Bus 001 Device 003: ID 0424:3503 Standard Microsystems Corp.
Bus 002 Device 008: ID 0079:0011 DragonRise Inc. Gamepad
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 2232:1037

Eu não tenho /dev/input/ls0 ls -l /dev/input:

drwxr-xr-x 2 root root    120 May 31 17:24 by-path
crw-rw---- 1 root  222 13, 64 May 31 17:24 event0
crw-rw---- 1 root  222 13, 65 May 31 17:24 event1
crw-rw---- 1 root  222 13, 66 May 31 17:24 event2
crw-rw---- 1 root  222 13, 67 May 31 17:24 event3
crw-rw---- 1 root  222 13, 68 May 31 17:24 event4
crw-rw---- 1 root  222 13, 69 May 31 17:24 event5

Alguma ideia?

Edit: No caso, isso ajuda aqui está o que eu vejo em dispositivos usb:

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=1.5 MxCh= 0
D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0079 ProdID=0011 Rev=01.06
S:  Product=USB Gamepad 
C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid

Edit2: Aqui está a saída do lsusb -v (a seção do gamepad)

Bus 002 Device 002: ID 0079:0011 DragonRise Inc. Gamepad
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0079 DragonRise Inc.
  idProduct          0x0011 Gamepad
  bcdDevice            1.06
  iManufacturer           0 
  iProduct                2 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     101
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10

4
2018-06-01 06:40


origem




Respostas:


Os gamepads DragonRise usam o módulo hid_dr, que pode ser carregado com modprobe hid_dr. Se o módulo não estiver disponível, você deverá compilá-lo ativando o HID_DRAGONRISE opção de kernel (em menuconfig, você pode encontrá-lo em drivers de dispositivo -> suporte HID -> suporte a barramento HID -> drivers HID especiais -> controlador de jogo DragonRise Inc.).

Com o módulo carregado, o dispositivo será reconhecido corretamente e / dev / input / js0 será criado.

[19229.563797] usb 3-3: new low-speed USB device number 11 using xhci_hcd
[19229.706682] usb 3-3: New USB device found, idVendor=0079, idProduct=0011
[19229.706688] usb 3-3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[19229.706692] usb 3-3: Product: USB Gamepad 
[19229.706915] usb 3-3: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
[19229.710302] input: USB Gamepad  as /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3:1.0/0003:0079:0011.000C/input/input13
[19229.710638] dragonrise 0003:0079:0011.000C: input,hidraw0: USB HID v1.10 Joystick [USB Gamepad ] on usb-0000:00:14.0-3/input0

3
2017-09-08 22:38





Outros então os desaparecidos js0 Isso parece bom. Experimentar modprobe joydev e veja se isso te dá uma /dev/input/js0. Se isso falhar, instale evtest e então faça:

evtest /dev/input/event1
evtest /dev/input/event2
evtest /dev/input/event3
...

até que você tenha encontrado o seu gamepad. Postar informações que evtest imprime na inicialização, como quando algo falha em detectá-lo como joystick, provavelmente há algo errado com os nomes dos botões.


1
2018-06-01 17:15



Obrigado pela sugestão grumbel, mas eu ainda não consigo fazê-lo funcionar :( Eu estava tendo problemas para executar o joydev modprobe mas parece estar funcionando agora, quando eu digito o comando não dá erros ou qualquer coisa eu só voltar para o prompt, então eu suponho que ele está funcionando.Depois de executar esse comando eu ainda não vejo js0 em / dev / input, então eu fiz algumas leituras e foi sugerido para executar MAKEDEV js e isso criou um monte de js mas ainda não funciona Alguma outra sugestão? TIA! - user163542
BTW eu corri evtest / dev / input / event0-5 e em cada um tentou apertar os botões no gamepad e ainda nada. - user163542
Veja a Edição 2 acima para saída detalhada de lsusb -v - user163542
Verifique a saída de dmesg depois que você conectou o gamepad, ele deve lhe dar alguma dica do que o kernel está fazendo com ele. Quanto a evtest, verifique o nome do dispositivo impresso na parte superior do evtest saída, que deve dizer-lhe qual é o seu gamepad, mostrar o que evtest impressões. Ou se isso não funcionar, desconecte o gamepad e conecte-o novamente, o que for /dev/input/eventX arquivo desaparece e reaparece é o seu gamepad. - Grumbel
O dmesg apenas registra o dispositivo usb sendo conectado e removido, sem muitos detalhes. Os arquivos / dev / input / eventX não mudam quando é conectado / removido - sempre o mesmo eventX lá. Eu desisti e comprei um gamepad diferente (este aqui amazon.com/gp/aw/d/B0034ZOAO0) e este funciona PERFEITAMENTE :) Assim que eu conecto ele em js0 aparece em / dev / input e toneladas de informações úteis aparecem no dmesg e o gamepad é reconhecido através do sistema operacional e dentro de todos os meus jogos .. então eu vou basta dar o outro gamepad para o meu irmão, só me custou 5 dólares de qualquer maneira :) - user163542