Le joystick USB avec Linux ne fonctionne que lorsque je me suis déconnecté puis reconnecté.

0

SALUT!

J'ai un problème qui peut être facile, mais je n'ai pas encore trouvé de solution.

Lorsque j'allume mon ordinateur avec Debian ou Ubuntu et que j'essaie d'utiliser le joystick, les commandes du joystick ne sont pas transmises à SO. Une fois que je déconnecte et reconnecte le joystick sur le port USB, il passe au travail.

Environnement:

SO: Debian 5.0 et Ubuntu 8.04 LTS

lsusb - exécuté cette commande avant de déconnecter et de se reconnecter, le résultat du joystick est égal:

Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
**Bus 007 Device 004: ID 068e:00af CH Products, Inc.** 
Bus 007 Device 002: ID 04d9:1400 Holtek Semiconductor, Inc. 
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

dmesg - partie pertinente seulement:

...
[    6.213666] usb 7-2: configuration #1 chosen from 1 choice
[    6.264813] usb 7-2: New USB device found, idVendor=068e, idProduct=00af
[    6.264816] usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    6.264818] usb 7-2: Product: Megatron OEM 2 Axis 1 Button Joystick
[    6.264819] usb 7-2: Manufacturer: CH PRODUCTS
[    6.269849] usbcore: registered new interface driver hiddev
[    6.286942] input: HID 04d9:1400 as /class/input/input0
[    6.286942] input,hidraw0: USB HID v1.10 Keyboard [HID 04d9:1400] on usb-0000:00:1d.2-1
[    6.315247] input: HID 04d9:1400 as /class/input/input1
[    6.315247] input,hidraw1: USB HID v1.10 Mouse [HID 04d9:1400] on usb-0000:00:1d.2-1
[    6.357061] input: CH PRODUCTS Megatron OEM 2 Axis 1 Button Joystick as /class/input/input2
[    6.357061] input,hidraw2: USB HID v1.00 Joystick [CH PRODUCTS Megatron OEM 2 Axis 1 Button Joystick] on usb-0000:00:1d.2-2
[    6.357061] usbcore: registered new interface driver usbhid
[    6.357061] usbhid: v2.6:USB HID core driver

...

[ 6377.097243] usb 7-2: USB disconnect, address 3
[ 6379.225161] usb 7-2: new low speed USB device using uhci_hcd and address 4
[ 6379.408990] usb 7-2: configuration #1 chosen from 1 choice
[ 6379.615388] input: CH PRODUCTS Megatron OEM 2 Axis 1 Button Joystick as /class/input/input6
[ 6379.694649] input,hidraw2: USB HID v1.00 Joystick [CH PRODUCTS Megatron OEM 2 Axis 1 Button Joystick] on usb-0000:00:1d.2-2
[ 6379.700445] usb 7-2: New USB device found, idVendor=068e, idProduct=00af
[ 6379.700445] usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 6379.700445] usb 7-2: Product: Megatron OEM 2 Axis 1 Button Joystick
[ 6379.700445] usb 7-2: Manufacturer: CH PRODUCTS**

/ proc / bus / usb / devices:

T:  Bus=07 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  4 Spd=1.5 MxCh= 0
D:  Ver= 1.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=068e ProdID=00af Rev= 0.00
S:  Manufacturer=CH PRODUCTS
S:  Product=Megatron OEM 2 Axis 1 Button Joystick
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 32mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=81(I) Atr=03(Int.) MxPS=   5 Ivl=10ms

Périphérique: / dev / input / js0

J'avais l'habitude de tester cat / dev / input / js0 et mon application.

J'ai essayé d'accéder à distance avec ssh, parce que mon clavier utilise aussi le port USB, et j'ai exécuté les commandes:

# modprobe -r joydev
# modprobe -r usbhid
# modprobe usbhid
# modprobe joydev

Le joystick ne fonctionne pas après avoir exécuté les commandes ci-dessus.

Qu'est-ce qui se passe?

Aidez moi!


la source

Réponses:

1

J'ai résolu ce problème.

J'ai essayé beaucoup et un collègue m'a dit de recharger les modules. J'ai essayé une combinaison et cette combinaison fonctionne:

rmmod joydev
rmmod uhci_hcd
modprobe uhci_hcd
modprobe joydev

Je saisis ces lignes dans mon /etc/rc.local et le joystick fonctionnent très bien.

J'ai besoin de mieux comprendre comment ça marche.

Merci.


la source
1

J'ai eu le même problème. J'ai testé quelques heures et il y a trois solutions. Le plus simple: tapez simplement

# lsusb -v -d 068e: 00af

dans le terminal

le plus propre: chargez le module usbhid avec le paramètre quirk:

# rmmod usbhid && modprobe usbhid quirk=0x068e:0x00af:0x8

ou pour une solution persistante mieux

# echo "options usbhid quirks = 0x068e: 0x00af: 0x8"> /etc/modprobe.d/usbhid

à la dure:

corrige le fichier /usr/src/linux/drivers/hid/usbhid/hid-quirks.c (peut être différent dans les autres versions du noyau):

--- /usr/src/linux-2.6.27.45-0.1_old/drivers/hid/usbhid/hid-quirks.c 2010-02-23 12: 21: 38.000000000 +0100 +++ / usr / src / linux- 2.6.27.45-0.1_new / drivers / hid / usbhid / hid-quirks.c 2010-11-22 17: 59: 05.000000000 +0100 @@ -102,6 +102,9 @@ #define USB_VENDOR_ID_BERKSHIRE 0x0c98

#define USB_DEVICE_ID_BERKSHIRE_PCWD 0x1140
+ # définir USB_VENDOR_ID_CH 0x068e + # définir USB_DEVICE_ID_CH_2AXIS_1BUTTON 0x00af + #define USB_VENDOR_ID_CHERRY 0x046a #define USB_DEVICE
@@ -624,6 +627,7 @@ hid_blacklist statique struct const {{USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET}, {USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET}, {USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET}, {+ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_2AXIS_1BUTTON, HID_QUIRK_NOGET}, {USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET}, {USB_VENDOR_ID_ELO, USB_VENDOR_ID_ELO

MasterFX
la source