Logitech Racing Wheel
This article describes how to set up a Logitech racing wheel, such as a Formula Force GP or a G27/G29 racing wheel, with Arch Linux.
Installing
Identifying
When the wheel is plugged in, the following commands can be used to identify the wheel:
# dmesg
usb 5-2: new low speed USB device using uhci_hcd and address 6
$ lsusb
Bus 005 Device 006: ID 046d:c293 Logitech, Inc. WingMan Formula Force GP
If using a Logitech Wheel, make sure it is set to PS3 mode otherwise it will not work.
Checking input device
$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=046d Product=c293 Version=0100 N: Name="Logitech Inc. WingMan Formula Force GP" P: Phys=usb-0000:00:1a.2-2/input0 S: Sysfs=/devices/pci0000:00/0000:00:1a.2/usb5/5-2/5-2:1.0/input/input30 U: Uniq= H: Handlers=event15 js0 B: EV=20001b B: KEY=3f 0 0 0 0 0 0 0 0 0 B: ABS=3 B: MSC=10 B: FF=1 40000 0 0
If you do not see your Logitech listed as an input device, you need to install usb_modeswitch package. Please memorize the Handlers, here event15 and js0, as these will be necessary to call the tools for testing and configuring the wheel.
Testing
For testing the wheel there are multiple tools that can be accessed via the command-line. One common tool is jstest
which can be installed via the joyutils or the linuxconsole packages. An alternative is evtest
which can be installed via the evtest package. A graphical version of jstest
is available in the AUR as jstest-gtk-gitAUR.
To test the wheel with jstest
simply call it with the device handler (in this case with a G29 wheel and js0):
$ jstest /dev/input/js0
Driver version is 2.1.0. Joystick (Logitech G29 Driving Force Racing Wheel) has 6 axes (X, Y, Z, Rz, Hat0X, Hat0Y) and 25 buttons (Trigger, ThumbBtn, ThumbBtn2, TopBtn, TopBtn2, PinkieBtn, BaseBtn, BaseBtn2, BaseBtn3, BaseBtn4, BaseBtn5, BaseBtn6, ?, ?, ?, BtnDead, (null), (null), (null), (null), (null), (null), (null), (null), (null)). Testing ... (interrupt to exit) Axes: 0: -923 1: 32767 2: 32767 3: 32767 4: 0 5: 0 Buttons: 0:off 1:off 2:off 3:off 4:off 5:off 6:off 7:off 8:off 9:off 10:off 11:off 12:off 13:off 14:off 15:off 16:off 17:off 18:off 19:off 20:off 21:off 22:off 23:off 24:off
Whenever the input is changed, jstest
will print the full state of the device. In case that only events should be displayed, --event
can be added as flag.
When using evtest
for testing, instead of the js0 as device handler eventX is needed, which in this case is event15 for a Formula Force GP wheel. evtest
then shows the events coming from the wheel:
$ evtest /dev/input/event15
Input driver version is 1.0.0 Input device ID: bus 0x3 vendor 0x46d product 0xc293 version 0x100 Input device name: "Logitech Inc. WingMan Formula Force GP" 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 type 3 (Absolute) Event code 0 (X) Value 438 Min 0 Max 1023 Fuzz 3 Flat 63 Event code 1 (Y) Value 124 Min 0 Max 255 Flat 15 Event type 4 (?) Event code 4 (?) Event type 21 (ForceFeedback) Event code 82 (?) Event code 96 (?) Testing ... (interrupt to exit) Event: time 1295173625.476950, type 3 (Absolute), code 0 (X), value 439 Event: time 1295173625.476983, type 0 (Reset), code 0 (Reset), value 0 Event: time 1295173625.484827, type 3 (Absolute), code 0 (X), value 428
ffcfstress
, which is provided by joyutils, can be used to test the force feedback. The wheel should start to oscillate:
# ffcfstress -d /dev/input/event15
position center force <-----------|****+------> <-----------|*******----> <-----------|**+-------->^C
Configuration
Logitech wheels can be configured via the oversteer
tool from the oversteerAUR package. For general gamepad or joystick settings that may also apply to Logitech wheels, please refer to the Gamepad wiki page.
As of version 0.6.0, oversteer
contains compatibility modes for the following wheels:
- Driving Force / Formula EX
- Driving Force Pro
- Driving Force GT
- G25 Racing Wheel
- G27 Racing Wheel
- G29 Racing Wheel
Besides testing the wheel, oversteer
allows to configure the following aspects of the wheels:
- Steering hardware lock (in degrees)
- Combining pedals into one axis
- Global force feedback strength
- Manual auto-center force
Additional settings might be enabled by installing the new-lg4ff-dkms-gitAUR device driver. Especially the steering hardware lock is useful in certain racing games such as F1 2017 and Dirt Rally to allow for a more realistic steering experience by setting the hardware lock angle to the value of the actual vehicle (e.g. 360 for F1 cars and 540 for modern rally cars).
Games
Flatout 2
The Wheel works without any wine configuration in flatout2. Just the following in-game configuration is needed:
- Force Feedback: On
- Force level: 100%
- Sensitivity: 100%
- Deadzone: 0%
- Controller: Logitech Inc...
- Throttle: Y-Axis left
- Brake: Y-Axis right
- Steer left: X-axis left
- Steer right: X-axis right
Forza Horizon 5
Forza horizon 5 works great with the G920 wheel in PC mode. You can add this rule to switch the wheel into PC mode automatically (usb_modeswitch required):
/etc/usb_modeswitch.d/046d:c261
# Logitech G920 Racing Wheel DefaultVendor=046d DefaultProduct=c261 MessageEndpoint=01 ResponseEndpoint=01 TargetClass=0x03 MessageContent="0f00010142"
Read more in this blog post.
Troubleshooting
Logitech G923 Xbox Edition
This racing wheel requires signals to be sent to change its usb mode every time it is plugged in. To accomplish this:
- Install usb_modeswitch
- When the wheel is plugged in run:
# usb_modeswitch -v 046d -p c26d -M 0f00010142 -C 0x03 -m 01 -r 01
The wheel will then reset itself to the centered position and be available as a racing wheel in games.