Heads-up: --force-feedback is currently broken with USB controllers. xboxdrv exits with "LinuxUinput::finish(): unable to create uinput device: 'Microsoft X-Box 360 pad': Invalid argument", and the kernel logs "uinput: ff_effects_max should be non-zero when FF_BIT is set".
Root cause: ff_effects_max is only filled in by the evdev backend (EVIOCGEFFECTS); every USB backend leaves it at 0, which the kernel rejects when EV_FF is set. Regression from upstream commit 457916e (2019), still present on current main. Not the same bug as the old write() size issue (#3) — same symptom, different cause.
Full diagnosis and a small patch (fall back to 16 when the controller reports 0): https://github.com/xiota/xboxdrv/issues/11
Rebuilding the package with that patch applied fixes rumble — verified with an 8BitDo Ultimate 2 (2dc8:310b) via --device-by-id + --type xbox360.
Pinned Comments
xiota commented on 2024-04-02 11:20 (UTC) (edited on 2024-09-30 20:11 (UTC) by xiota)
Although other Xbox gamepad drivers are now available, this package is still useful as an input remapper for programs that support only Xbox controllers.
This package is now based on a fork that aims to keep the program working. (Original project ceased development around Sep 2022.)