An all-in-one installer that gets SimHub and CrewChief running on Linux, including telemetry bridging via Winecarte so they can read data from Linux-native and Proton-based sim titles.
Supported games include: Assetto Corsa, Assetto Corsa Competizione, Assetto Corsa Evo, Assetto Corsa Rally, rFactor 2, Automobilista 2, Project Cars 2, Le Mans Ultimate, and American/Euro Truck Simulator 2.
SimHub and CrewChief are Windows applications. On Linux, Windows software is run using a compatibility layer called Wine. The catch is that sim racing games write their telemetry data (speed, gear, lap times, etc.) to a region of memory that Wine-hosted apps can't normally see.
This installer sets up everything needed to bridge that gap using Winecarte. Winecarte has three components:
- Wine2Linux runs in a Wine prefix and maps shared memory in either direction between the prefix and the Linux system. Multiple instances can be run in different prefixes to replicate shared memory across prefixes.
- Winehub, which runs against a 'target' (non-game, eg. SimHub/CrewChief/etc.) prefix and works by detecting games running in their own separate prefixes. Upon detection it starts an instance of Wine2Linux in the target prefix to map shared memory files from Linux into the Wine environment.
- winecarte-run, wraps the execution of a Proton game and starts a Wine2Linux instance in the game's prefix to export data from the game to the Linux environment. Optional now that injection is automatic.
Before running the installer, make sure the following are installed on your system. If you're not sure how to install them, search for instructions for your specific Linux distribution (e.g. Ubuntu, Fedora, Arch).
- curl — for downloading files (usually pre-installed)
- unzip — for extracting downloaded archives (usually pre-installed)
The installer ships its own Wine build, so you don't need Wine installed. On NixOS its runtime libraries and dynamic loader are fetched from a pinned nixpkgs revision and wired up automatically; no extra system configuration is needed.
Important: Choose where you want to keep this folder before running the installer. The install location gets baked into the desktop launchers for SimHub and CrewChief. If you move the folder later, just re-run
install.shfrom the new location to fix everything up.
Quickest way, run this in a terminal:
curl -fsSL https://raw.githubusercontent.com/srounce/linux-simracing-utils/master/install.sh | bashIt asks where to install (default ~/linux-simracing-utils) and puts a copy of install.sh there for re-runs and updates. Then skip to step 4.
To install from a clone instead:
-
Open a terminal and download the installer:
git clone https://github.com/srounce/linux-simracing-utils
If you don't have
git, you can also download a ZIP from GitHub and extract it. -
Move into the folder:
cd linux-simracing-utils -
Run the installer:
bash install.sh
-
Follow the prompts. The installer will ask whether you want to install or skip each component — Wine, SimHub, CrewChief, and Winecarte. You can safely press Enter to accept the defaults.
The installer will download and set everything up, including its own Wine build and a dedicated Wine environment so SimHub and CrewChief don't interfere with any other Wine applications you might have.
Winecarte injection is automatic, so games need no setup. Launch them from Steam as normal.
If you previously added winecarte-run %command% to a game's Steam launch options, you can remove it. winecarte-run is now optional.
Once installation is complete, SimHub and CrewChief will appear in your application menu (the same place you launch other apps). Launch them from there as normal.
Winehub starts automatically in the background when you open either app, bridging the game's shared memory into Wine so SimHub and CrewChief can read the telemetry. It shuts down cleanly when you close the apps. You don't need to do anything special to make it work.
Re-run the installer at any time to update to the latest versions:
bash install.shIt checks the installed version of each component against the latest release and only offers an update when there actually is one. Anything already up to date is offered as a reinstall/repair instead, and pressing Enter skips it, so a re-run costs nothing if you only need the launchers fixing up.
To follow Winecarte prereleases, or to pin a specific release:
LSU_WINECARTE_PRERELEASE=1 bash install.sh
LSU_WINECARTE_VERSION=v0.4.0 bash install.shTo have the installer self-update from a branch other than master:
LSU_BRANCH=my-feature bash install.shThe installed copy of install.sh keeps that branch as its default, so later runs follow it without setting LSU_BRANCH again.
To pin a specific Wine release:
LSU_WINE_VERSION=sangria-11.17-pre1 bash install.shThe pin is kept in the installed copy of install.sh the same way. LSU_WINE_VERSION=latest removes it and returns to the newest release.
LSU_WINE_REPO=owner/repo takes Wine releases from another GitHub repository, and is kept the same way. The default is srounce/wine.
Re-run the installer from the new location:
bash install.shThis will also fix up the desktop launchers for SimHub and CrewChief to point to the new location.
install.sh # the installer
bin/ # helper scripts and tools (created by the installer)
pfx/ # the Wine environment (created by the installer)
log/ # install and runtime logs (created by the installer)
Not receiving telemetry after an update? Re-run install.sh to repair the desktop launcher entries in the prefix.
Install logs are saved to the log/ folder inside the project directory. If something goes wrong during installation, check the relevant log file there for details.
If you need to debug runtime issues, you can enable verbose output by setting DEBUG=1 before running any of the scripts:
DEBUG=1 bash install.sh- SimHub_on_Linux by @srlemke — Provided initial inspiration for this project and was a helpful reference for various aspects of the processes involved. Big shoutout to @srlemke for his work on this.