LinuxQuestions.org
Support LQ: Use code LQ3H and save $3 on Web Hosting
Go Back   LinuxQuestions.org > HCL > I/O Devices > Other
User Name
Password

Notices


Search · Register · Submit New Product ·
 

Saitek Saitek X45
Reviews Views Date of last review
2 2377 11-17-2004
spacer
Recommended By Average Price Average Rating
50% of reviewers None indicated 9.5



Description: Joystick and throttle combination controller. Both the joystick and throttle have a ton of buttons, directional controls, wheels, etc. The throttle plugs into the joystick, and the joystick connects to the PC via USB.
Keywords: Joystick/Throttle Controller
Connection Type: USB


Author
Post A Reply 
Old 04-06-2004, 01:20 PM   #1
tk31337
 
Registered: Oct 2003
Distribution: Mandrake 10.0 Official
Posts: 193
Would you recommend the product? yes | Price you paid?: None indicated | Rating: 10

Kernel (uname -r): 2.6.3-4mdk
Distribution: Mandrake 10.0 Community



[Log in to get rid of this advertisement]
Everything works perfectly. I wasn't able to bind anything to the second directional control on the joystick's face in Descent3, but other than that all buttons and controls were able to be used. FlightGear already made great use of the controls as well. Running jstest showed everything works perfectly. No driver setup was neccessary, I literally just plugged it in, and it works.
 is offline    
Old 11-17-2004, 10:37 AM   #2
pheldens
 
Registered: Nov 2004
Posts: 2
Would you recommend the product? no | Price you paid?: None indicated | Rating: 9

Kernel (uname -r): 2.6.9
Distribution: N/A


edit:

ok I made a patch for 2.6.10 based on the old working hid-core.c that seems to work:

--- hid-core.c 2005-01-17 16:42:27.000000000 +0100
+++ hid-core.c-foobar 2005-01-17 20:55:10.000000000 +0100
@@ -1314,6 +1314,7 @@
struct hid_report_enum *report_enum;
struct hid_report *report;
struct list_head *list;
+ int len;
int err, ret;

/*
@@ -1364,14 +1365,17 @@
warn("timeout initializing reportsn");

report_enum = hid->report_enum + HID_INPUT_REPORT;
- list = report_enum->report_list.next;
- while (list != &report_enum->report_list) {
- report = (struct hid_report *) list;
- usb_control_msg(hid->dev, usb_sndctrlpipe(hid->dev, 0),
- HID_REQ_SET_IDLE, USB_TYPE_CLASS | USB_RECIP_INTERFACE, report->id,
- hid->ifnum, NULL, 0, HZ * USB_CTRL_SET_TIMEOUT);
+ list = report_enum->report_list.next;
+ while (list != &report_enum->report_list) {
+ report = (struct hid_report *) list;
+ len = ((report->size - 1) >> 3) + 1 + report_enum->numbered;
+ if (len > hid->urbin->transfer_buffer_length)
+ hid->urbin->transfer_buffer_length = len < HID_BUFFER_SIZE ? len : HID_BUFFER_SIZE;
+ usb_control_msg(hid->dev, usb_sndctrlpipe(hid->dev, 0),
+ HID_REQ_SET_IDLE, USB_TYPE_CLASS | USB_RECIP_INTERFACE, report->id,
+ hid->ifnum, NULL, 0, HZ * USB_CTRL_SET_TIMEOUT);
list = list->next;
- }
+ }
}

#define USB_VENDOR_ID_WACOM 0x056a
 is offline    





All times are GMT -5. The time now is 01:17 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
RSS2  LQ Podcast
RSS2  LQ Radio
Open Source Consulting | Domain Registration