* Force Feedback for Thrustmaster RGT Pro Clutch Pedal Edition racing wheel
@ 2008-09-13 15:09 Didier Moens
2008-09-13 16:32 ` Annick et Jean-Philippe
2008-09-20 2:44 ` Jiri Kosina
0 siblings, 2 replies; 6+ messages in thread
From: Didier Moens @ 2008-09-13 15:09 UTC (permalink / raw)
To: linux-input
[-- Attachment #1: Type: text/plain, Size: 5665 bytes --]
Dear all,
I'm trying to get force feedback activated on this quite wonderful
racing wheel
(http://www.thrustmaster.com/product.aspx?ProductID=8&PlatformID=5).
Based on the thread started by Gerald Folcher of 16 Jul 2007 (force
feedback for Thrustmaster FGT Wheel) and subsequent patches, I've added
following USB id's :
(patches against 2.6.25, but I've already tested with 2.6.26.3)
diff -uNrp kernel-2.6.25.orig/drivers/hid/usbhid/hid-ff.c
kernel-2.6.25.new/drivers/hid/usbhid/hid-ff.c
--- kernel-2.6.25.orig/drivers/hid/usbhid/hid-ff.c 2008-04-17
04:49:44.000000000 +0200
+++ kernel-2.6.25.new/drivers/hid/usbhid/hid-ff.c 2008-09-09
16:56:34.000000000 +0200
@@ -62,11 +62,13 @@ static struct hid_ff_initializer inits[]
#ifdef CONFIG_PANTHERLORD_FF
{ 0x810, 0x0001, hid_plff_init }, /* "Twin USB Joystick" */
{ 0xe8f, 0x0003, hid_plff_init }, /* "GreenAsia Inc. USB
Joystick " */
+ { 0xe8f, 0x0012, hid_plff_init }, /* "GreenAsia Inc. USB
Joystick " */
#endif
#ifdef CONFIG_THRUSTMASTER_FF
{ 0x44f, 0xb300, hid_tmff_init },
{ 0x44f, 0xb304, hid_tmff_init },
{ 0x44f, 0xb651, hid_tmff_init }, /* FGT Rumble Force Wheel */
+ { 0x44f, 0xb653, hid_tmff_init }, /* Thrustmaster RGT Force
Feedback Pro Clutch Edition */
{ 0x44f, 0xb654, hid_tmff_init }, /* FGT Force Feedback Wheel */
#endif
#ifdef CONFIG_ZEROPLUS_FF
diff -uNrp kernel-2.6.25.orig/drivers/hid/usbhid/hid-tmff.c
kernel-2.6.25.new/drivers/hid/usbhid/hid-tmff.c
--- kernel-2.6.25.orig/drivers/hid/usbhid/hid-tmff.c 2008-04-17
04:49:44.000000000 +0200
+++ kernel-2.6.25.new/drivers/hid/usbhid/hid-tmff.c 2008-09-09
17:00:45.000000000 +0200
@@ -58,6 +58,7 @@ static const struct dev_type devices[] =
{ 0x44f, 0xb300, ff_rumble },
{ 0x44f, 0xb304, ff_rumble },
{ 0x44f, 0xb651, ff_rumble }, /* FGT Rumble Force Wheel */
+ { 0x44f, 0xb653, ff_joystick }, /* Thrustmaster RGT Force
Feedback Pro Clutch Edition */
{ 0x44f, 0xb654, ff_joystick }, /* FGT Force Feedback Wheel */
};
Unfortunately, this yields no improvement : no force feedback is sent to
the wheel (tested with ff-utils).
/var/log/messages :
Sep 10 08:46:40 moewelstat1 kernel: usb 1-4.3: new low speed USB device
using ehci_hcd and address 17
Sep 10 08:46:40 moewelstat1 kernel: usb 1-4.3: configuration #1 chosen
from 1 choice
Sep 10 08:46:40 moewelstat1 kernel: input: Thrustmaster Thrustmaster
force feedback wheel as /class/input/input13
Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c:
ignoring unknown output usage 000f0022
Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c:
ignoring unknown output usage 000f0050
Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c:
ignoring unknown output usage 000f0022
Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c:
ignoring unknown output usage 000f0060
Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c:
ignoring unknown output usage 000f0063
Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c:
ignoring unknown output usage 000f0022
Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c:
ignoring unknown output usage 000f0070
Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c:
ignoring unknown output usage 000f0022
Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c:
ignoring unknown output usage 000f0079
Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c:
ignoring unknown output usage 000f0097
Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c: Force
feedback for ThrustMaster devices by Zinx Verituse <zinx@epicsol.org>
Sep 10 08:46:40 moewelstat1 kernel: input,hidraw0: USB HID v1.10
Joystick [Thrustmaster Thrustmaster force feedback wheel] on
usb-0000:00:02.1-4.3
Sep 10 08:46:40 moewelstat1 kernel: usb 1-4.3: New USB device found,
idVendor=044f, idProduct=b653
Sep 10 08:46:40 moewelstat1 kernel: usb 1-4.3: New USB device strings:
Mfr=3, Product=1, SerialNumber=0
Sep 10 08:46:40 moewelstat1 kernel: usb 1-4.3: Product: Thrustmaster
force feedback wheel
Sep 10 08:46:40 moewelstat1 kernel: usb 1-4.3: Manufacturer: Thrustmaster
Changing the hid-tmff.c code to forcibly run the THRUSTMASTER_USAGE_FF
clause (preventing 'ignoring unknown output usage') yields :
Sep 12 20:50:59 moewelstat1 kernel: input: Thrustmaster Thrustmaster
force feedback wheel as /class/input/input7
Sep 12 20:50:59 moewelstat1 kernel: usbhid: ignoring FF field with
report_count < 2
Sep 12 20:50:59 moewelstat1 kernel:last message repeated 2 times
Sep 12 20:50:59 moewelstat1 kernel: usbhid: ignoring FF field in other
report
Sep 12 20:50:59 moewelstat1 kernel: usbhid: ignoring FF field in other
report
Sep 12 20:50:59 moewelstat1 kernel: usbhid: ignoring FF field with
report_count < 2
Sep 12 20:51:00 moewelstat1 kernel:last message repeated 4 times
Sep 12 20:50:59 moewelstat1 kernel: usbhid: Force feedback for
ThrustMaster devices by Zinx Verituse <zinx@epicsol.org>
Please find in attachment kernel DEBUG output from dmesg ,
/var/log/messages and output from the ff-utils evtest application.
Of course, I'm eager to supply test feedback in case anybody feels
compelled to provide me with some corrective code patches (please note
I'm not truly acquainted with C code, though).
If required, I could run USB snooping with the Windows Thrustmaster
drivers through a VMware session.
As I'm not currently subscribed to linux-input, CC: to moensd@xs4all.be
would be much appreciated.
Best regards and thank you in advance,
Didier
[-- Attachment #2: dmesg.out --]
[-- Type: text/plain, Size: 17647 bytes --]
usb 2-6: new low speed USB device using ohci_hcd and address 4
usb 2-6: configuration #1 chosen from 1 choice
drivers/hid/usbhid/hid-core.c: HID probe called for ifnum 0
drivers/hid/usbhid/hid-core.c: report descriptor (size 455, read 455) = 05 01 09 04 a1 01 09 01 a1 00 85 81 06 00 ff 15 00 27 ff ff 00 00 09 01 09 02 75 10 95 02 b1 a2 09 03 09 04 85 82 25 7f 75 08 95 02 b1 02 85 01 05 09 19 01 29 0a 25 01 75 01 95 0a 81 02 05 01 09 39 25 07 35 00 46 3b 01 65 14 95 01 75 04 81 42 09 30 46 ff 03 16 00 fe 26 ff 01 65 00 75 0a 95 01 81 02 09 31 46 ff 00 15 00 26 ff 00 75 08 81 02 09 35 81 02 09 36 81 02 09 37 81 02 c0 85 40 09 bb 15 00 26 ff 00 35 00 46 ff 00 75 08 95 04 91 02 05 0f 09 21 a1 02 85 41 09 22 15 01 25 04 75 08 95 01 91 02 09 50 15 00 25 7f 35 00 46 c0 1f 75 08 66 03 10 55 0d 95 01 91 02 c0 09 5f a1 02 85 43 09 22 15 01 25 04 75 08 95 01 91 02 09 60 09 61 09 62 15 80 25 7f 95 03 91 02 09 63 09 64 09 65 15 00 91 02 c0 09 73 a1 02 85 45 09 22 15 01 25 04 75 08 95 01 91 02 09 70 15 80 25 7f 75 08 91 02 c0 09 77 a1 02 85 4a 09 22 15 01 25 04 75 08 95 01 91 02 09 78 a1 02 09 79 09 7a 09 7b 25 03 75 08 91 00 c0 c0 09 92 a1 02 85 88 09 22 15 01 25 04 75 08 b1 02 09 94 09 a0 09 9f 15 00 25 01 75 01 95 03 b1 02 95 05 b1 03 c0 09 95 a1 02 85 4b 09 96 a1 02 09 97 09 98 09 99 09 9a 09 9b 09 9c 15 01 25 06 75 08 95 01 91 00 c0 c0 09 ab a1 02 85 85 09 25 a1 02 09 26 09 40 15 01 25 02 75 08 95 01 b1 00 c0 c0 09 89 a1 02 85 86 09 22 15 01 25 04 75 08 95 01 b1 02 09 8b a1 02 09 8c 09 8d 09 8e 15 01 25 03 75 08 95 01 b1 00 c0 c0 09 90 a1 02 85 87 09 22 15 01 25 04 75 08 95 01 b1 02 c0 c0
drivers/hid/usbhid/hid-core.c: submitting ctrl urb: Get_Report wValue=0x0101 wIndex=0x0000 wLength=8
drivers/hid/usbhid/hid-core.c: submitting ctrl urb: Get_Report wValue=0x0381 wIndex=0x0000 wLength=5
drivers/hid/hid-core.c: report (size 5) (numbered)
drivers/hid/hid-core.c: report 129 (size 4) = 01 21 ff ff
drivers/hid/usbhid/hid-core.c: submitting ctrl urb: Get_Report wValue=0x0382 wIndex=0x0000 wLength=3
drivers/hid/hid-core.c: report (size 3) (numbered)
drivers/hid/hid-core.c: report 130 (size 2) = 50 5a
drivers/hid/usbhid/hid-core.c: submitting ctrl urb: Get_Report wValue=0x0388 wIndex=0x0000 wLength=3
drivers/hid/hid-core.c: report (size 3) (numbered)
drivers/hid/hid-core.c: report 136 (size 2) = 00 02
drivers/hid/usbhid/hid-core.c: submitting ctrl urb: Get_Report wValue=0x0385 wIndex=0x0000 wLength=2
drivers/hid/usbhid/hid-core.c: submitting ctrl urb: Get_Report wValue=0x0386 wIndex=0x0000 wLength=3
drivers/hid/hid-core.c: report (size 3) (numbered)
drivers/hid/hid-core.c: report 134 (size 2) = 00 01
drivers/hid/usbhid/hid-core.c: submitting ctrl urb: Get_Report wValue=0x0387 wIndex=0x0000 wLength=2
INPUT(1)[INPUT]
Field(0)
Physical(GenericDesktop.Pointer)
Usage(10)
Button.0001
Button.0002
Button.0003
Button.0004
Button.0005
Button.0006
Button.0007
Button.0008
Button.0009
Button.000a
Logical Minimum(0)
Logical Maximum(1)
Report Size(1)
Report Count(10)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Physical(GenericDesktop.Pointer)
Usage(1)
GenericDesktop.HatSwitch
Logical Minimum(0)
Logical Maximum(7)
Physical Minimum(0)
Physical Maximum(315)
Unit(English Rotation : Degrees)
Report Size(4)
Report Count(1)
Report Offset(10)
Flags( Variable Absolute NullState )
Field(2)
Physical(GenericDesktop.Pointer)
Usage(1)
GenericDesktop.X
Logical Minimum(-512)
Logical Maximum(511)
Physical Minimum(0)
Physical Maximum(1023)
Report Size(10)
Report Count(1)
Report Offset(14)
Flags( Variable Absolute )
Field(3)
Physical(GenericDesktop.Pointer)
Usage(1)
GenericDesktop.Y
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(0)
Physical Maximum(255)
Report Size(8)
Report Count(1)
Report Offset(24)
Flags( Variable Absolute )
Field(4)
Physical(GenericDesktop.Pointer)
Usage(1)
GenericDesktop.Rz
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(0)
Physical Maximum(255)
Report Size(8)
Report Count(1)
Report Offset(32)
Flags( Variable Absolute )
Field(5)
Physical(GenericDesktop.Pointer)
Usage(1)
GenericDesktop.Slider
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(0)
Physical Maximum(255)
Report Size(8)
Report Count(1)
Report Offset(40)
Flags( Variable Absolute )
Field(6)
Physical(GenericDesktop.Pointer)
Usage(1)
GenericDesktop.Dial
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(0)
Physical Maximum(255)
Report Size(8)
Report Count(1)
Report Offset(48)
Flags( Variable Absolute )
OUTPUT(64)[OUTPUT]
Field(0)
Usage(4)
GenericDesktop.00bb
GenericDesktop.00bb
GenericDesktop.00bb
GenericDesktop.00bb
Logical Minimum(0)
Logical Maximum(255)
Physical Minimum(0)
Physical Maximum(255)
Report Size(8)
Report Count(4)
Report Offset(0)
Flags( Variable Absolute )
OUTPUT(65)[OUTPUT]
Field(0)
Logical(PhysicalInterfaceDevice.0021)
Usage(1)
PhysicalInterfaceDevice.0022
Logical Minimum(1)
Logical Maximum(4)
Physical Minimum(0)
Physical Maximum(255)
Report Size(8)
Report Count(1)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Logical(PhysicalInterfaceDevice.0021)
Usage(1)
PhysicalInterfaceDevice.0050
Logical Minimum(0)
Logical Maximum(127)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(8)
Flags( Variable Absolute )
OUTPUT(67)[OUTPUT]
Field(0)
Logical(PhysicalInterfaceDevice.005f)
Usage(1)
PhysicalInterfaceDevice.0022
Logical Minimum(1)
Logical Maximum(4)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Logical(PhysicalInterfaceDevice.005f)
Usage(3)
PhysicalInterfaceDevice.0060
PhysicalInterfaceDevice.0061
PhysicalInterfaceDevice.0062
Logical Minimum(-128)
Logical Maximum(127)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(3)
Report Offset(8)
Flags( Variable Absolute )
Field(2)
Logical(PhysicalInterfaceDevice.005f)
Usage(3)
PhysicalInterfaceDevice.0063
PhysicalInterfaceDevice.0064
PhysicalInterfaceDevice.0065
Logical Minimum(0)
Logical Maximum(127)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(3)
Report Offset(32)
Flags( Variable Absolute )
OUTPUT(69)[OUTPUT]
Field(0)
Logical(PhysicalInterfaceDevice.0073)
Usage(1)
PhysicalInterfaceDevice.0022
Logical Minimum(1)
Logical Maximum(4)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Logical(PhysicalInterfaceDevice.0073)
Usage(1)
PhysicalInterfaceDevice.0070
Logical Minimum(-128)
Logical Maximum(127)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(8)
Flags( Variable Absolute )
OUTPUT(74)[OUTPUT]
Field(0)
Logical(PhysicalInterfaceDevice.0077)
Usage(1)
PhysicalInterfaceDevice.0022
Logical Minimum(1)
Logical Maximum(4)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Logical(PhysicalInterfaceDevice.0078)
Usage(3)
PhysicalInterfaceDevice.0079
PhysicalInterfaceDevice.007a
PhysicalInterfaceDevice.007b
Logical Minimum(1)
Logical Maximum(3)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(8)
Flags( Array Absolute )
OUTPUT(75)[OUTPUT]
Field(0)
Logical(PhysicalInterfaceDevice.0096)
Usage(6)
PhysicalInterfaceDevice.0097
PhysicalInterfaceDevice.0098
PhysicalInterfaceDevice.0099
PhysicalInterfaceDevice.009a
PhysicalInterfaceDevice.009b
PhysicalInterfaceDevice.009c
Logical Minimum(1)
Logical Maximum(6)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(0)
Flags( Array Absolute )
FEATURE(129)[FEATURE]
Field(0)
Physical(GenericDesktop.Pointer)
Usage(2)
ff00.0001
ff00.0002
Logical Minimum(0)
Logical Maximum(65535)
Report Size(16)
Report Count(2)
Report Offset(0)
Flags( Variable Absolute NoPreferredState Volatile )
FEATURE(130)[FEATURE]
Field(0)
Physical(GenericDesktop.Pointer)
Usage(2)
ff00.0003
ff00.0004
Logical Minimum(0)
Logical Maximum(127)
Report Size(8)
Report Count(2)
Report Offset(0)
Flags( Variable Absolute )
FEATURE(136)[FEATURE]
Field(0)
Logical(PhysicalInterfaceDevice.0092)
Usage(1)
PhysicalInterfaceDevice.0022
Logical Minimum(1)
Logical Maximum(4)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Logical(PhysicalInterfaceDevice.0092)
Usage(3)
PhysicalInterfaceDevice.0094
PhysicalInterfaceDevice.00a0
PhysicalInterfaceDevice.009f
Logical Minimum(0)
Logical Maximum(1)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(1)
Report Count(3)
Report Offset(8)
Flags( Variable Absolute )
FEATURE(133)[FEATURE]
Field(0)
Logical(PhysicalInterfaceDevice.0025)
Usage(2)
PhysicalInterfaceDevice.0026
PhysicalInterfaceDevice.0040
Logical Minimum(1)
Logical Maximum(2)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(0)
Flags( Array Absolute )
FEATURE(134)[FEATURE]
Field(0)
Logical(PhysicalInterfaceDevice.0089)
Usage(1)
PhysicalInterfaceDevice.0022
Logical Minimum(1)
Logical Maximum(4)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(0)
Flags( Variable Absolute )
Field(1)
Logical(PhysicalInterfaceDevice.008b)
Usage(3)
PhysicalInterfaceDevice.008c
PhysicalInterfaceDevice.008d
PhysicalInterfaceDevice.008e
Logical Minimum(1)
Logical Maximum(3)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(8)
Flags( Array Absolute )
FEATURE(135)[FEATURE]
Field(0)
Logical(PhysicalInterfaceDevice.0090)
Usage(1)
PhysicalInterfaceDevice.0022
Logical Minimum(1)
Logical Maximum(4)
Physical Minimum(0)
Physical Maximum(8128)
Unit Exponent(13)
Unit(English Linear : Seconds)
Report Size(8)
Report Count(1)
Report Offset(0)
Flags( Variable Absolute )
drivers/hid/hid-input.c: Mapping: Button.0001 ---> Key.Trigger
drivers/hid/hid-input.c: Mapping: Button.0002 ---> Key.ThumbBtn
drivers/hid/hid-input.c: Mapping: Button.0003 ---> Key.ThumbBtn2
drivers/hid/hid-input.c: Mapping: Button.0004 ---> Key.TopBtn
drivers/hid/hid-input.c: Mapping: Button.0005 ---> Key.TopBtn2
drivers/hid/hid-input.c: Mapping: Button.0006 ---> Key.PinkieBtn
drivers/hid/hid-input.c: Mapping: Button.0007 ---> Key.BaseBtn
drivers/hid/hid-input.c: Mapping: Button.0008 ---> Key.BaseBtn2
drivers/hid/hid-input.c: Mapping: Button.0009 ---> Key.BaseBtn3
drivers/hid/hid-input.c: Mapping: Button.000a ---> Key.BaseBtn4
drivers/hid/hid-input.c: Mapping: GenericDesktop.HatSwitch ---> Absolute.Hat0X
drivers/hid/hid-input.c: Mapping: GenericDesktop.X ---> Absolute.X
drivers/hid/hid-input.c: Mapping: GenericDesktop.Y ---> Absolute.Y
drivers/hid/hid-input.c: Mapping: GenericDesktop.Rz ---> Absolute.Rz
drivers/hid/hid-input.c: Mapping: GenericDesktop.Slider ---> Absolute.Throttle
drivers/hid/hid-input.c: Mapping: GenericDesktop.Dial ---> Absolute.Rudder
drivers/hid/hid-input.c: Mapping: GenericDesktop.00bb ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: GenericDesktop.00bb ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: GenericDesktop.00bb ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: GenericDesktop.00bb ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0022 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0050 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0022 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0060 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0061 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0062 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0063 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0064 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0065 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0022 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0070 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0022 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0079 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.007a ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.007b ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0097 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0098 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.0099 ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.009a ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.009b ---> [non-LED output field] IGNORED
drivers/hid/hid-input.c: Mapping: PhysicalInterfaceDevice.009c ---> [non-LED output field] IGNORED
input: Thrustmaster Thrustmaster force feedback wheel as /class/input/input8
usbhid: ignoring FF field with report_count < 2
usbhid: ignoring FF field with report_count < 2
usbhid: ignoring FF field with report_count < 2
usbhid: ignoring FF field in other report
usbhid: ignoring FF field in other report
usbhid: ignoring FF field with report_count < 2
usbhid: ignoring FF field with report_count < 2
usbhid: ignoring FF field with report_count < 2
usbhid: ignoring FF field with report_count < 2
usbhid: ignoring FF field with report_count < 2
usbhid: Force feedback for ThrustMaster devices by Zinx Verituse <zinx@epicsol.org>
input,hidraw0: USB HID v1.10 Joystick [Thrustmaster Thrustmaster force feedback wheel] on usb-0000:00:02.0-6
usb 2-6: New USB device found, idVendor=044f, idProduct=b653
usb 2-6: New USB device strings: Mfr=3, Product=1, SerialNumber=0
usb 2-6: Product: Thrustmaster force feedback wheel
usb 2-6: Manufacturer: Thrustmaster
[-- Attachment #3: messages.out --]
[-- Type: text/plain, Size: 1852 bytes --]
Sep 13 14:18:43 moewelstat1 kernel: usb 2-6: new low speed USB device using ohci_hcd and address 4
Sep 13 14:18:44 moewelstat1 kernel: usb 2-6: configuration #1 chosen from 1 choice
Sep 13 14:18:44 moewelstat1 kernel: 25 04 75 08 b1 02 09 94 09 a0 09 9f 15 00 25 01 75 01 95 03 b1 02 95 05 b1 03 c0 09 95 a1 02 85 4b 09 96 a1 02 09 97 09 98 09 99 09 9a 09 9b 09 9c 15 01 25 06 75 08 95 01 91 00 c0 c0 09 ab a1 02 85 85 09 25 a1 02 09 26 09 40 15 01 25 02 75 08 95 01 b1 00 c0 c0 09 89 a1 02 85 86 09 22 15 01 25 04 75 08 95 01 b1 02 09 8b a1 02 09 8c 09 8d 09 8e 15 01 25 03 75 08 95 01 b1 00 c0 c0 09 90 a1 02 85 87 09 22 15 01 25 04 75 08 95 01 b1 02 c0 c0
Sep 13 14:18:44 moewelstat1 kernel: input: Thrustmaster Thrustmaster force feedback wheel as /class/input/input8
Sep 13 14:18:44 moewelstat1 kernel: usbhid: ignoring FF field with report_count < 2
Sep 13 14:18:44 moewelstat1 kernel:last message repeated 2 times
Sep 13 14:18:44 moewelstat1 kernel: usbhid: ignoring FF field in other report
Sep 13 14:18:44 moewelstat1 kernel: usbhid: ignoring FF field in other report
Sep 13 14:18:44 moewelstat1 kernel: usbhid: ignoring FF field with report_count < 2
Sep 13 14:18:44 moewelstat1 kernel:last message repeated 4 times
Sep 13 14:18:44 moewelstat1 kernel: usbhid: Force feedback for ThrustMaster devices by Zinx Verituse <zinx@epicsol.org>
Sep 13 14:18:44 moewelstat1 kernel: input,hidraw0: USB HID v1.10 Joystick [Thrustmaster Thrustmaster force feedback wheel] on usb-0000:00:02.0-6
Sep 13 14:18:44 moewelstat1 kernel: usb 2-6: New USB device found, idVendor=044f, idProduct=b653
Sep 13 14:18:44 moewelstat1 kernel: usb 2-6: New USB device strings: Mfr=3, Product=1, SerialNumber=0
Sep 13 14:18:44 moewelstat1 kernel: usb 2-6: Product: Thrustmaster force feedback wheel
Sep 13 14:18:44 moewelstat1 kernel: usb 2-6: Manufacturer: Thrustmaster
[-- Attachment #4: evtest.out --]
[-- Type: text/plain, Size: 2759 bytes --]
Input driver version is 1.0.0
Input device ID: bus 0x3 vendor 0x44f product 0xb653 version 0x110
Input device name: "Thrustmaster Thrustmaster force feedback wheel"
Supported events:
Event type 0 (Reset)
Event code 0 (Reset)
Event code 1 (Key)
Event code 3 (Absolute)
Event code 4 (?)
Event code 21 (ForceFeedback)
Event type 1 (Key)
Event code 288 (Trigger)
Event code 289 (ThumbBtn)
Event code 290 (ThumbBtn2)
Event code 291 (TopBtn)
Event code 292 (TopBtn2)
Event code 293 (PinkieBtn)
Event code 294 (BaseBtn)
Event code 295 (BaseBtn2)
Event code 296 (BaseBtn3)
Event code 297 (BaseBtn4)
Event type 3 (Absolute)
Event code 0 (X)
Value 0
Min -512
Max 511
Fuzz 3
Flat 63
Event code 1 (Y)
Value 0
Min 0
Max 255
Flat 15
Event code 5 (Rz)
Value 0
Min 0
Max 255
Flat 15
Event code 6 (Throttle)
Value 0
Min 0
Max 255
Flat 15
Event code 7 (Rudder)
Value 0
Min 0
Max 255
Flat 15
Event code 16 (Hat0X)
Value 0
Min -1
Max 1
Event code 17 (Hat0Y)
Value 0
Min -1
Max 1
Event type 4 (?)
Event code 4 (?)
Event type 21 (ForceFeedback)
Event code 82 (?)
Event code 96 (?)
Testing ... (interrupt to exit)
Event: time 1221308641.483012, type 4 (?), code 4 (?), value 589834
Event: time 1221308641.483018, type 1 (Key), code 297 (BaseBtn4), value 1
Event: time 1221308641.483022, type 3 (Absolute), code 0 (X), value 39
Event: time 1221308641.483025, type 3 (Absolute), code 1 (Y), value 243
Event: time 1221308641.483027, type 3 (Absolute), code 5 (Rz), value 4
Event: time 1221308641.483030, type 3 (Absolute), code 6 (Throttle), value 253
Event: time 1221308641.483033, type 0 (Reset), code 0 (Reset), value 0
Event: time 1221308641.498997, type 4 (?), code 4 (?), value 589834
Event: time 1221308641.499002, type 1 (Key), code 297 (BaseBtn4), value 0
Event: time 1221308641.499005, type 3 (Absolute), code 0 (X), value 8
Event: time 1221308641.499007, type 3 (Absolute), code 1 (Y), value 255
Event: time 1221308641.499010, type 3 (Absolute), code 5 (Rz), value 255
Event: time 1221308641.499012, type 3 (Absolute), code 6 (Throttle), value 255
Event: time 1221308641.499014, type 3 (Absolute), code 7 (Rudder), value 255
Event: time 1221308641.499016, type 0 (Reset), code 0 (Reset), value 0
Event: time 1221308641.514999, type 3 (Absolute), code 0 (X), value -512
Event: time 1221308641.515005, type 0 (Reset), code 0 (Reset), value 0
[snip]
...
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Force Feedback for Thrustmaster RGT Pro Clutch Pedal Edition racing wheel
2008-09-13 15:09 Force Feedback for Thrustmaster RGT Pro Clutch Pedal Edition racing wheel Didier Moens
@ 2008-09-13 16:32 ` Annick et Jean-Philippe
2008-09-20 20:49 ` Anssi Hannula
2008-09-20 2:44 ` Jiri Kosina
1 sibling, 1 reply; 6+ messages in thread
From: Annick et Jean-Philippe @ 2008-09-13 16:32 UTC (permalink / raw)
To: Didier Moens; +Cc: linux-input
Hi, Didier, and all.
> I'm trying to get force feedback activated on this quite wonderful
> racing wheel
> ...
> (patches against 2.6.25, but I've already tested with 2.6.26.3)
> ...
> Unfortunately, this yields no improvement : no force feedback is sent to
> the wheel (tested with ff-utils).
> ...
Not sure this will fix your issues, but ...
ff-utils original code has 2 flaws :
- it is NOT 64-bit compatible
- it was coded for 2.4.x kernels, and when you compile it, it does not use
the includes of your specific kernel, but those shipped with the sources
(see sub-folder "linux")
So I recommend you apply the patch that fixes this issues :
look on SourceForge libff patches page ...
https://sourceforge.net/tracker/?func=detail&atid=440671&aid=2098907&group_id=44724
Then, be sure to test FF with "ffcfstress" (only for Constant Force),
not only with "fftest" ;
the first one works very well with my Logitech G25,
whereas I not sure the second one does ... (the rendered Constant Force effect
is so week, that it's not that clear ...).
Finally, you can try the FFConsoleDemo of the OIS library (get 1.2.0 sources,
and apply the recent "Linux FF 64bit port + Windows FF fixes + DemoFFTest" patch
https://sourceforge.net/tracker/?func=detail&atid=775955&aid=2087429&group_id=149835)
; it tests constant and periodic FF (Constant Force test is OK for my G25, not
periodic).
Hope this helps.
Jean-Philippe MEURET
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Force Feedback for Thrustmaster RGT Pro Clutch Pedal Edition racing wheel
2008-09-13 15:09 Force Feedback for Thrustmaster RGT Pro Clutch Pedal Edition racing wheel Didier Moens
2008-09-13 16:32 ` Annick et Jean-Philippe
@ 2008-09-20 2:44 ` Jiri Kosina
2008-09-24 11:32 ` Didier Moens
1 sibling, 1 reply; 6+ messages in thread
From: Jiri Kosina @ 2008-09-20 2:44 UTC (permalink / raw)
To: Didier Moens; +Cc: linux-input, Zinx Verituse
On Sat, 13 Sep 2008, Didier Moens wrote:
> Sep 10 08:46:40 moewelstat1 kernel: input: Thrustmaster Thrustmaster force
> feedback wheel as /class/input/input13
> Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c: ignoring
> unknown output usage 000f0022
> Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c: ignoring
> unknown output usage 000f0050
> Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c: ignoring
> unknown output usage 000f0022
> Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c: ignoring
> unknown output usage 000f0060
> Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c: ignoring
> unknown output usage 000f0063
> Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c: ignoring
> unknown output usage 000f0022
> Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c: ignoring
> unknown output usage 000f0070
> Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c: ignoring
> unknown output usage 000f0022
> Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c: ignoring
> unknown output usage 000f0079
> Sep 10 08:46:40 moewelstat1 kernel: drivers/hid/usbhid/hid-tmff.c: ignoring
> unknown output usage 000f0097
Hi,
apparently, Thrustmaster has changed the report descriptor of the device a
little bit. Probably also the protocol for this device is a little bit
different. I have added Zinx to CC, as he wrote the original driver.
For start, running hd in debugging mode (CONFIG_HID_DEBUG and modprobing
'hid' module with 'debug=2' parameter) and capturing output of a working
session in windows might be good steps.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Force Feedback for Thrustmaster RGT Pro Clutch Pedal Edition racing wheel
2008-09-13 16:32 ` Annick et Jean-Philippe
@ 2008-09-20 20:49 ` Anssi Hannula
0 siblings, 0 replies; 6+ messages in thread
From: Anssi Hannula @ 2008-09-20 20:49 UTC (permalink / raw)
To: Annick et Jean-Philippe; +Cc: Didier Moens, linux-input
Annick et Jean-Philippe wrote:
> Hi, Didier, and all.
Hi!
>> I'm trying to get force feedback activated on this quite wonderful
>> racing wheel ...
>> (patches against 2.6.25, but I've already tested with 2.6.26.3)
>> ...
>> Unfortunately, this yields no improvement : no force feedback is sent
>> to the wheel (tested with ff-utils).
>> ...
>
> Not sure this will fix your issues, but ...
>
> ff-utils original code has 2 flaws :
> - it is NOT 64-bit compatible
> - it was coded for 2.4.x kernels, and when you compile it, it does not use
> the includes of your specific kernel, but those shipped with the sources
> (see sub-folder "linux")
Works fine for me here on 64-bit, and uses standard headers. Maybe you
are using an old version?
The latest version is in linuxconsole SVN:
http://linuxconsole.svn.sourceforge.net/viewvc/linuxconsole/trunk/utils/
Downloadable with SVN command (on one line):
svn co
https://linuxconsole.svn.sourceforge.net/svnroot/linuxconsole/trunk/utils
input-utils
> So I recommend you apply the patch that fixes this issues :
> look on SourceForge libff patches page ...
>
> https://sourceforge.net/tracker/?func=detail&atid=440671&aid=2098907&group_id=44724
libff is stale project, I suspect this should be filed to linuxconsole
instead (after checking the problems still exist, of course). Hopefully
its maintainers are active. If not, post here.
>
> Then, be sure to test FF with "ffcfstress" (only for Constant Force),
> not only with "fftest" ;
> the first one works very well with my Logitech G25,
> whereas I not sure the second one does ... (the rendered Constant Force
> effect is so week, that it's not that clear ...).
>
> Finally, you can try the FFConsoleDemo of the OIS library (get 1.2.0
> sources,
> and apply the recent "Linux FF 64bit port + Windows FF fixes +
> DemoFFTest" patch
> https://sourceforge.net/tracker/?func=detail&atid=775955&aid=2087429&group_id=149835)
> ; it tests constant and periodic FF (Constant Force test is OK for my
> G25, not periodic).
>
> Hope this helps.
>
> Jean-Philippe MEURET
--
Anssi Hannula
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Force Feedback for Thrustmaster RGT Pro Clutch Pedal Edition racing wheel
2008-09-20 2:44 ` Jiri Kosina
@ 2008-09-24 11:32 ` Didier Moens
2008-10-17 9:18 ` Jiri Kosina
0 siblings, 1 reply; 6+ messages in thread
From: Didier Moens @ 2008-09-24 11:32 UTC (permalink / raw)
To: Jiri Kosina, linux-input; +Cc: Zinx Verituse
Dear,
On 20/09/08 04:44, Jiri Kosina wrote:
> For start, running hd in debugging mode (CONFIG_HID_DEBUG and modprobing
> 'hid' module with 'debug=2' parameter) and capturing output of a working
> session in windows might be good steps.
>
Thank you all (Jiri, Anssi, Jean-Philippe) for your highly valued input
in getting this steering wheel supported.
By Jiri's request, I've retested the device with hid_debug=2 (recompiled
kernel 2.6.26.5-27.fc8, as hid is not modularized in Fedora 8 : patch
see below).
For brevity's sake and to not clog up the mailing list, all logs and
generated output are available at http://www.dmbr.UGent.be/~didier/tmff/
; directory contents :
linux-2.6-dmn-ff2.patch : patch to enable wheel & debug messages
dmesg.out : relevant dmesg ;
messages.out : relevant messages ;
evtest.out : output for ff-utils evtest.
tmcpl/ : 3 screenshots of the Windows ThrustMaster Control Panel.
Additionally, I've run some USB snooping sessions in a native Windows
session, with both SniffUSB, results in the sniffusb/ directory, and
Snoopy Pro (http://sourceforge.net/projects/usbsnoop), in snoopypro/.
Both are GPL-ed applications, and Snoopy Pro runs in Wine (nice for
interpreting the binary logs).
I gather the snoopypro/USBLog2-forcefeedback.usblog (2370 packets) may
be the most interesting, so I also converted the binary .usblog to
plaintext USBLog2-forcefeedback_exp.txt for sake of convenience :
a. Sequence 1-142 (lines 1-2421) : the wheel is connected and
autocalibrates (turns left and right up to its mechanical boundaries) ;
b. Sequence 143-663[*] (lines 2422-20133) : click button 'Properties',
then tab 'Test Forces' (see tmcpl/ tmcpl-1.jpg and tmcpl-2.jpg) ;
c. Sequence 141/664[*]-1113[*] (lines 20134-33473) : press button-1 on
wheel to test "Engine Start" force feedback effect (see tmcpl-3.jpg),
force feedback works ;
d. Sequence 1114[*]-1186 (lines 33474-35954) : close Thrustmaster
Control Panel.
([*] as packets are spuriously captured, this is a guesstimation)
Please indicate whether you might need more information ; I'm available
for any patching and/or testing.
Best regards,
Didier
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Force Feedback for Thrustmaster RGT Pro Clutch Pedal Edition racing wheel
2008-09-24 11:32 ` Didier Moens
@ 2008-10-17 9:18 ` Jiri Kosina
0 siblings, 0 replies; 6+ messages in thread
From: Jiri Kosina @ 2008-10-17 9:18 UTC (permalink / raw)
To: Didier Moens; +Cc: linux-input, Zinx Verituse
On Wed, 24 Sep 2008, Didier Moens wrote:
> > For start, running hd in debugging mode (CONFIG_HID_DEBUG and
> > modprobing 'hid' module with 'debug=2' parameter) and capturing output
> > of a working session in windows might be good steps.
> Thank you all (Jiri, Anssi, Jean-Philippe) for your highly valued input
> in getting this steering wheel supported. By Jiri's request, I've
> retested the device with hid_debug=2 (recompiled kernel 2.6.26.5-27.fc8,
> as hid is not modularized in Fedora 8 : patch see below).
> For brevity's sake and to not clog up the mailing list, all logs and generated
> output are available at http://www.dmbr.UGent.be/~didier/tmff/ ; directory
> contents :
Hi Didier,
sorry for not getting back to you sooner. The URL doesn't seem to be alive
any more. Could you please send the output data as mail attachment, if
they are not too huge?
Thanks,
--
Jiri Kosina
SUSE Labs
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-10-17 9:18 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-13 15:09 Force Feedback for Thrustmaster RGT Pro Clutch Pedal Edition racing wheel Didier Moens
2008-09-13 16:32 ` Annick et Jean-Philippe
2008-09-20 20:49 ` Anssi Hannula
2008-09-20 2:44 ` Jiri Kosina
2008-09-24 11:32 ` Didier Moens
2008-10-17 9:18 ` Jiri Kosina
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).