Sticks, Throttles, & Pedals - starcitizen-lug/knowledge-base GitHub Wiki
In general, you can expect any hardware to work on linux but third-party software tied to the device can be an issue. In some cases, a VM may be required for configuring the device.
Troubleshooting:
See the section at the end of this page for specific issues and workarounds.
Virpil and VKB-sim are widely recommended for their build quality at their respective prices. It isn't recommended to go cheaper than these price ranges if you want something that will last.
Virpil has distribution centers in the EU and USA.
North America
Europe
Russia
VKB has distribution centers in the EU, USA, and Australia. VKB also sells parts through their site as replacements or upgrades.
North America
Europe
Russia
Australia, New Zealand
India (AUS distribution)
Tip
Wine 9.22+ has enabled HIDRAW for VKB devices. This removes the 79 button limit and may provide better device support. To enable hidraw access to your VKB devices, create a rules file in /etc/udev/rules.d
named 40-starcitizen-joystick-uaccess.rules
with the following content:
# Set the "uaccess" tag for raw HID access for VKB Devices in wine
KERNEL=="hidraw*", ATTRS{idVendor}=="231d", ATTRS{idProduct}=="*", MODE="0660", TAG+="uaccess"
Important
After adding the udev rule, unplug and replug your device. The event joystick device may still show in the wine joystick control panel and will need to be disabled so that only the raw hid device is presented to the game. Follow the instructions in Accessing Wine Game Controllers Settings, select the device(s) that has Sim (C) Alex Oz
in the name, and click the Disable button.
Important
HIDRAW is recommended for VKB devices running older firmware with a © symbol in the name, or consider upgrading your firmware
You can check the device name using lsusb
or evdev-joystick --list
.
The Gladiator series can be calibrated without needing to use any special software.
They store their configuration on-board but the configuration software is only native to Windows. You can run the software in a virtual machine (VirtualBox, GNOME Boxes, etc) and pass the USB device to the windows environment to configure it that way.
Requires a windows-only software for calibration and configuration. Link
Requires a windows-only software for calibration and configuration. Link; scroll down
Tip
Wine 9.22+ has enabled HIDRAW for Virpil devices. This removes the 79 button limit and may provide better device support. To enable hidraw access to your Virpil devices, create a rules file in /etc/udev/rules.d
named 40-starcitizen-joystick-uaccess.rules
with the following content:
# Set the "uaccess" tag for raw HID access for Virpil Devices in wine
KERNEL=="hidraw*", ATTRS{idVendor}=="3344", ATTRS{idProduct}=="*", MODE="0660", TAG+="uaccess"
Important
After adding the udev rule, unplug and replug your device. The event joystick device may still show in the wine joystick control panel and will need to be disabled so that only the raw hid device is presented to the game. Follow the instructions in Accessing Wine Game Controllers Settings, select the device(s) that has Virpil Controls
in the name, and click the Disable button.
The yaw potentiometer on these sticks tends to fail after a time. It may be possible to prevent or fix the issue, otherwise a new potentiometer can be soldered on.
- Disassemble the grip and trim off some plastic to try to fix or prevent the problem
- Disassemble the potentiometer to try to clean and repair it
- A bit of soldering to replace the potentiometer
Use udevadm
to retrieve the Vendor ID, Model Name, and Model ID that the device reports to the system.
udevadm info -n /dev/input/by-id/usb-your-joystick-name | grep -E 'ID_VENDOR_ID|ID_MODEL_ID|ID_MODEL'
Example:
$ udevadm info -n /dev/input/by-id/usb-VKB-Sim_©_Alex_Oz_2021_VKBsim_Space_Gunfighter-event-joystick | grep -E 'ID_VENDOR_ID|ID_MODEL_ID|ID_MODEL'
E: ID_VENDOR_ID=231d
E: ID_MODEL=VKBsim_Space_Gunfighter
E: ID_MODEL_ENC=\x20VKBsim\x20Space\x20Gunfighter\x20
E: ID_MODEL_ID=0126
Removes the 79 button limit and may provide better device support
- Create a rules file in
/etc/udev/rules.d
named40-starcitizen-joystick-uaccess.rules
with the following content:
# Set the "uaccess" tag for raw HID access for Virpil Devices in wine
KERNEL=="hidraw*", ATTRS{idVendor}=="<Your Vendor ID>", ATTRS{idProduct}=="*", MODE="0660", TAG+="uaccess"
Example:
# Set the "uaccess" tag for raw HID access for VKB Devices in wine
KERNEL=="hidraw*", ATTRS{idVendor}=="231d", ATTRS{idProduct}=="*", MODE="0660", TAG+="uaccess"
Important
After adding the udev rule, unplug and replug your device. The event joystick device may still show in the wine joystick control panel and will need to be disabled so that only the raw hid device is presented to the game. Follow the instructions in Accessing Wine Game Controllers Settings, select the device(s) that do not match the results of the udevadm and click disable
A collection of mappings contributed by our community can be found here.
Mappings for Saitek / Logitech x56 HOTAS are maintained individually by @PaladinTitus here.
The third party tool, input-remapper, can be used to change the behavior of input devices. Note that, while some of our Penguins have had success using this tool, we have not fully vetted its functionality or safety. Some basic profile examples contributed by our community can be found here.
On Linux, evdev adds deadzones to every axis for each controller you plug into your system. This is good for inexpensive controllers that don't have any form of internal calibration or programming. However, with higher end programmable sticks like those from VKB and Virpil, evdev's deadzone adds to the programmed deadzone for those devices. This can also impact throttle devices, where you can get a "hitch" at 50% throttle when it passes through the middle of the axis.
To eliminate this problem, you want to create a udev rule that removes the evdev deadzone from your devices when they're plugged in.
-
Install
evdev-joystick
. This utility is provided by different packages depending on your distribution.
See the list below for your distribution:- Arch -
linuxconsole
- Debian/Ubuntu -
joystick
- Fedora -
linuxconsoletools
- Arch -
-
Create a udev rules file in
/etc/udev/rules.d/
and plug your device info into the following template:
# Custom Joystick Udev Rules
# Sample
ACTION=="add", SUBSYSTEM=="input", KERNEL=="event*", \
ENV{ID_VENDOR_ID}=="<Vendor ID>", ENV{ID_MODEL_ID}=="<Model ID>", \
RUN+="/usr/bin/evdev-joystick --e %E{DEVNAME} --d 0"
This will keep things very specific to just the devices you want to change, and not impact any other devices you use.
Here is an example rules file for 3 VKB devices and one Virpil device:
/etc/udev/rules.d/99-evdev-joystick.rules
# Custom Joystick Udev Rules
# VKB SEM
ACTION=="add", SUBSYSTEM=="input", KERNEL=="event*", \
ENV{ID_VENDOR_ID}=="231d", ENV{ID_MODEL_ID}=="2204", \
RUN+="/usr/bin/evdev-joystick --e %E{DEVNAME} --d 0"
# VKB Gunfighter L
ACTION=="add", SUBSYSTEM=="input", KERNEL=="event*", \
ENV{ID_VENDOR_ID}=="231d", ENV{ID_MODEL_ID}=="0127", \
RUN+="/usr/bin/evdev-joystick --e %E{DEVNAME} --d 0"
# VKB Gunfighter R
ACTION=="add", SUBSYSTEM=="input", KERNEL=="event*", \
ENV{ID_VENDOR_ID}=="231d", ENV{ID_MODEL_ID}=="0126", \
RUN+="/usr/bin/evdev-joystick --e %E{DEVNAME} --d 0"
# Virpil Rudder Pedals
ACTION=="add", SUBSYSTEM=="input", KERNEL=="event*", \
ENV{ID_VENDOR_ID}=="3344", ENV{ID_MODEL_ID}=="01f8", \
RUN+="/usr/bin/evdev-joystick --e %E{DEVNAME} --d 0"
- If using Lutris, Select the game then click the arrow next to the wine glass button -> Wine Control Panel -> Game Controllers
- Use the LUG Helper's Maintenance menu
Open Wine controller configuration
button - For other install methods, run
WINEPREFIX=/path/to/your/prefix wine control joy.cpl
- If you are using wine 9.22+ with a VKB or Virpil device, you may need to enable HIDRAW access. See VKB Devices or Virpil Devices above for instructions.
- If you are using Lutris, make sure "Autoconfigure joypads" is turned off in the game settings for Lutris
- Right click the game -> Configure -> Runner options -> Autoconfigure joypads
- Try setting your joysticks to "dinput" instead of "xinput" in Wine's
- Follow the Accessing Wine Game Controllers Settings instructions above.
- If your joysticks are showing up as "Connected(xinput)", select them and click "Override" to set them to dinput.
- Joysticks can be configured manually in the wine joystick control panel
- Click the arrow next to the wine glass button -> Wine Control Panel -> Game Controllers
- Try disabling the Lutris Runtime
- Right click the game -> Configure -> System options -> Disable Lutris Runtime
- Check that the game has not set the deadzone for this axis to 100%
If your pedals aren't being recognized by Star Citizen but work on Linux, it may be that it has been classified as something else than rudder pedals. This often happens because there are no buttons, and various OS functions assume it might be an accelerometer or similar.
There are two possible workarounds for this:
-
The following Python script creates a virtual device from the real device, adding a few more capabilities to make Star Citizen not discard it as an invalid device: https://github.com/beniwtv/evdev-spoof-device
-
Another solution is to create a Kernel udev rule to change the classification of your device.
- Create a file
/etc/udev/rules.d/90-pedals-workaround.rules
and plug your device info into the following template:ACTION=="add|change", KERNEL=="event[0-9]*", ENV{ID_VENDOR_ID}=="<Your Vendor ID>", ENV{ID_MODEL_ID}=="<Your Model ID>", ENV{ID_INPUT_ACCELEROMETER}="", ENV{ID_INPUT_JOYSTICK}="1", TAG+="uaccess"
- Create a file
Note
Consider contributing your rules to the LUG knowlege-base if your device needs any rules to function properly
Also consider having the rule added to systemd.