Making the Logitech G920 wheel work



I am trying to play Dirt Rally on Steam using my Logitech G920 wheel. This was working previously on Manjaro, now that I fully switched to NixOS it’s not working in steam games anymore (Dirt Rally and GRID Autosport).

My current situation is that I need to use So I tried to activate services.udev.packages = with pkgs; [ usb-modeswitch-data ]; but this wasn’t working (by looking at the files in the package this device should be supported but it seems there is a problem with the NixOS package, see #11647).

So I made the config file manually according to the instructions on the forum above. When I launch sudo usb_modeswitch -v 046d -p c261 -c Documents/046d\:c261 I can see the correct device in lsusb and the KDE settings can see the wheel and I can test the inputs. I also tried fftest successfully (a tool to test force feedback).

But after this I can’t use the wheel in any games in Steam (I tried Dirt Rally and GRID Autosport).

strace of the game:

Interesting lines:

it’s opening a device that looks like the wheel

readlink("/sys/devices/pci0000:00/0000:00:1c.7/0000:07:00.0/usb3/3-2/3-2:1.0/0003:046D:C262.000D/input/input26/event23", 0x7ffec665ce48, 1024) = -1 EINVAL (Invalid argument)
stat("/sys/devices/pci0000:00/0000:00:1c.7/0000:07:00.0/usb3/3-2/3-2:1.0/0003:046D:C262.000D/input/input26/event23/uevent", {st_mode=S_IFREG|0644, st_size=4096, ...}) = 0
openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.7/0000:07:00.0/usb3/3-2/3-2:1.0/0003:046D:C262.000D/input/input26/event23/uevent", O_RDONLY|O_CLOEXEC) = 31

Trying to do something with js1 device:

stat("/dev/input/js1", {st_mode=S_IFCHR|0664, st_rdev=makedev(13, 1), ...}) = 0
openat(AT_FDCWD, "/dev/input/js1", O_RDONLY) = 31
ioctl(31, EVIOCGNAME(128), 0x7ffec665d9c0) = -1 EINVAL (Invalid argument)

Do you have any idea to make this work ?

What’s working

native games:

  • vdrift