จอยสติ๊ก USB กับ Linux ใช้งานได้เฉพาะเมื่อฉันตัดการเชื่อมต่อและเชื่อมต่อใหม่


0

HI!

ฉันมีปัญหาที่สามารถทำได้ง่าย แต่ฉันยังไม่พบวิธีแก้ปัญหา

เมื่อฉันเปิดคอมพิวเตอร์โดยใช้ Debian หรือ Ubuntu และพยายามใช้จอยสติ๊กคำสั่งของจอยสติ๊กจะไม่ส่งผ่านไปยัง SO เมื่อฉันยกเลิกการเชื่อมต่อและเชื่อมต่อจอยสติกกับพอร์ต USB อีกครั้งมันจะผ่านการทำงาน

สิ่งแวดล้อม:

ดังนั้น: Debian 5.0 และ Ubuntu 8.04 LTS

lsusb - ดำเนินการคำสั่งนี้ก่อนตัดการเชื่อมต่อและเชื่อมต่อผลลัพธ์ใหม่ของจอยสติ๊กเท่ากับ:

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 - ส่วนที่เกี่ยวข้องเท่านั้น:

...
[    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 / รถบัส / USB / อุปกรณ์:

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

อุปกรณ์: / dev / input / js0

ฉันเคยทดสอบ cat / dev / input / js0 และแอปพลิเคชันของฉัน

ฉันพยายามเข้าถึง ssh จากระยะไกลเนื่องจากแป้นพิมพ์ของฉันใช้พอร์ต USB ด้วยและดำเนินการตามคำสั่งลงไป:

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

จอยสติกไม่ทำงานหลังจากฉันสั่งคำสั่งด้านบน

เกิดอะไรขึ้น?

ช่วยฉันด้วย!

คำตอบ:


1

ฉันแก้ไขปัญหานี้แล้ว

ฉันลองมากและเพื่อนร่วมงานคนหนึ่งพูดว่าฉันควรโหลดโมดูลอีกครั้ง ฉันลองชุดค่าผสมแล้วชุดค่าผสมนี้ใช้ได้:

rmmod joydev
rmmod uhci_hcd
modprobe uhci_hcd
modprobe joydev

ฉันป้อนบรรทัดนี้ใน /etc/rc.local ของฉันและจอยสติ๊กทำงานได้ดีมาก

ฉันต้องเข้าใจให้ดีขึ้นว่ามันทำงานอย่างไร

ขอบคุณ


1

ผมมีปัญหาเหมือนกัน. ฉันทดสอบสองสามชั่วโมงและมีวิธีแก้ปัญหาสามข้อ ที่ง่ายที่สุด: เพียงพิมพ์

# lsusb -v -d 068e: 00af

ในอาคารผู้โดยสาร

cleanest: โหลดโมดูล usbhid พร้อมพารามิเตอร์ quirk:

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

หรือสำหรับวิธีการแก้ปัญหาแบบถาวรดีกว่า

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

วิธี "ยาก":

แก้ไข /usr/src/linux/drivers/hid/usbhid/hid-quirks.c (สามารถดูแตกต่างจากเคอร์เนลรุ่นอื่น ๆ ):

--- /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 / ไดรเวอร์ / 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
+ # define USB_VENDOR_ID_CH_x068E_DICE_DICE_DEVICE_DEVICE_ID_CHER2 0X00AF + #Define USB_DEVICE_ID_CHERRY 0x00af + #Define USB_VICEOR_ID_CHERRY 0x046DER_ID_CHERRY 0x040DER_ID_CHERRY 0x046DER_ID_DICE_DATE_ID_CHERRY 0x040DER_ID_CONDICE
@@ -624,6 +627,7 @@ คง const struct hid_blacklist {{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_CHET_CHETE_CHEMET_CHEMETER, {HID_VENDOR_ID_DEMET_CHEMET_CHEM}, {USB_VENDOR_ID_CHEMET_CHEMET_DIVETE}, {USB_VENDOR_ID_CHEMET_CHEMET_DIVET_ID_ELD}, {USB_VENDOR_ID_TH_CHEMET_CHEMET_DIVETE}, {USB_VENDOR_ID_DEMET_CHEMET_CHETTER, {USB_VENDOR_ID_DEMET_CHEMET_CHEM}, {USB_VENDOR_ID_DEMET_CHETTER]

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.