Linux PIDFF driver with useful patches for initialization of FFB devices. Primarily targeting Direct Drive wheelbases.
That driver allows most DirectDrive wheelbases to initialize and work. Most of the DirectDrive wheelbases are basically DirectInput wheels, but with some caveats, which Windows allows, but pidff doesn't. In that repository - pidff driver with some changes, which allows most of the DirectDrive wheelbases to work.
- Added multiple quirks for better initialization rules for different wheelbases
- Fixes for infinite-length effects
- Fixes for out-of-bounds values (no more spam in kernel logs)
And that's basically it
- MOZA R3, R5, R9, R12, R16, R21
- Cammus C5, C12
- VRS DirectForce Pro
- FFBeast Wheel
- ...
- FFB (all effects from device descriptor)
- All inputs (wheel axis, buttons)
- Telemetry functions. They are handeled by Monocoque
Firmware Update
function. Use Windows PC or Windows VM at the moment.- Setup through proprietary software. May require some tweaking
You can install it through AUR package, through DKMS or manually.
On SecureBoot enabled systems you will need additional steps for load this driver into the system. See Signing section.
There's an AUR package for Arch Linux maintained by @Lawstorant.
DKMS will install module into system, and will update it every time you update your kernel. Module will persist after reboots. It's the preferrable way to install it on the most distros.
- Install
dkms
package from your distro package manager - Clone repository to
/usr/src/universal-pidff
- Install the module:
sudo dkms install /usr/src/universal-pidff
- Update initramfs:
sudo update-initramfs -u
- Reboot
To remove module:
sudo dkms remove universal-pidff/<version> --all
Best for debugging purposes, where you need frequently change codebase/branches
- Install
linux-headers-$(uname -r)
andbuild-essential
packages from your distro package manager - Clone repository anywhere you want and
cd
into that directory make
. Alternatively, you can enable debug logs from the driver withmake debug
- Load module into system with
sudo insmod hid-universal-pidff.ko
To unload module:
sudo rmmod hid_universal_pidff
To test the supported effects, use ffbplay from ffbtools and play the included effect-test.ffb file
Boxflat is a Linux Pit House alternative made by @Lawstorant
You can do it through VRS with Wine. You need to tweak Wine prefix for them.
That software uses hidraw to set up a base. You need to create udev
rule for allow access to hidraw device:
# VRS DFP
echo 'KERNEL=="hidraw*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a355", MODE="0666", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/11-vrs.rules
# VRS pedals
echo 'KERNEL=="hidraw*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a3be", MODE="0666", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/11-vrs.rules
udevadm control --reload-rules && udevadm trigger
Then you need to force VRS software to use hidraw, not SDL, to find devices:
-
Create new Wine prefix for them:
mkdir ~/.vrs-wine
-
Launch regedit in prefix:
WINEPREFIX=$HOME/.vrs-wine wine regedit
-
Create two keys in
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\winebus
:DisableInput
(DWORD) - set to1
;Enable SDL
(DWORD) - set to0
; (yes, variable name contains space)
-
Install important packages for VRS config tool to work:
WINEPREFIX=$HOME/.vrs-wine winetricks win7
WINEPREFIX=$HOME/.vrs-wine winetricks dotnet48
-
Now you can launch soft through that WINEPREFIX:
WINEPREFIX=$HOME/.vrs-wine wine VRS.exe
- launch VRS software from installation directory.
- Current limit of usable buttons is 160 (up from the Linux default of 80). Create an issue if you want this increased further.
You tell me please
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.