1

I am trying to understand problems with how steering wheels work on Linux (or not). Does every model of steering wheel require a specific driver? And why? I think that they shouldn't need special drivers because all wheels are very similar as far as I know (send the angle of the wheel and position of pedals and buttons and receive force feedback), so one driver could work with all wheels like one driver works with all USB keyboards or most sound devices. But I see projects making specific models of wheels work on Linux (like hid-fanatecff), which hints to that they need special drivers.

That gives me the idea: How do games communicate with the steering wheels? Do they need special support for specific wheels? Keeping support for all steering wheels seems unmanageable, so I guess that there is a common interface, but I couldn't find one.

1
  • This seems to be a question about the nature of drivers, really. It would be the situation same for 'mice' and keyboards, for monitors, and other peripherals. In any case, consider that most steering wheel producers will create their own drivers - they don't (all) have to come from the developers of the OSs.
    – Joachim
    Apr 11, 2023 at 8:07

1 Answer 1

1

For inputs (wheel axis, pedal axes, buttons) you generally do not need a specific driver. Steering wheel controllers are HID devices and typically assign standard HID usage values to the report fields for these inputs. This allows the default HID input driver to automatically convert the inputs to Linux input events.

The reason why wheel controllers need drivers has more to do with lack of standardization for force feedback and other advanced features. There are standard HID usage values for force feedback but they're relatively recent additions and it's not as common to see them used in wheel controllers. This means force feedback support typically requires vendor-specific logic, and sometimes model-specific logic.

There may be other special features that need vendor-specific logic to support. For example, Logitech racing wheels are "multimode" which means they have compatibility modes to allow newer models to behave like older models. When the device is first connected it defaults to a basic compatibility mode. The driver detects the wheel's actual model and initializes the wheel into the most advanced mode supported by the wheel and the driver. Switching to the advanced mode may enable additional features, like the ability to increase the range of the wheel or use more advanced force feedback effects.

2
  • Which wheels do support the standard HID usage values for force feedback?
    – matj1
    Apr 12, 2023 at 9:48
  • The usage values I'm referring to are defined in the Device Class Definition for PID (Physical Interface Devices) here: usb.org/document-library/device-class-definition-pid-10. I haven't seen any wheels that use the PID usages.
    – nondebug
    Apr 12, 2023 at 19:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .