Difference between revisions of "Running LFS on Linux"

From LFS Manual
Jump to navigationJump to search
 
(27 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This document will guide you through the process of installing and configuring Wine and LFS to allow you to run LFS's game client in Linux. We'll also touch on the subjects of configuring your wheel and solving common problems. For Instructions on how to run a dedicated host see [[Hosting#Linux_with_WINE|Hosting - Linux with Wine]].
+
<!-- See: https://www.lfs.net/forum/post/1893089 -->
 +
This document will guide you through the process of installing and configuring Wine and LFS to allow you to run the LFS game client in Linux. We'll also touch on the subjects of configuring your wheel and solving common problems.
  
 
== Intro ==
 
== Intro ==
Line 5: Line 6:
 
=== What to expect ===
 
=== What to expect ===
  
Users have reported that LFS runs great on Linux. It's however likely that performance will be a bit worse compared to Windows, and the Force Feedback is not as detailed.
+
Users have reported that LFS runs great on Linux. Force Feedback should be the only point that may cause issues.
 
Graphics and audio appears to be at par with the native environment, and gamepads should work out of the box (although you may have to map the buttons manually).
 
Graphics and audio appears to be at par with the native environment, and gamepads should work out of the box (although you may have to map the buttons manually).
  
Functionality has been confirmed with Debian GNU/Linux 8.1 (x86_64) and wine-1.6.2.
+
This article was updated in June 2025; I ([[user:Bokujishin|Bokujishin]]) have been playing LFS on Manjaro Linux (KDE Plasma Wayland) for about 2 years now, and it works just fine. The steps in this article were updated and verified to work on both Manjaro Linux and Ubuntu 24.04 (running in virtual machines), and so should work for most Arch-based and Ubuntu-based distributions.
  
=== prerequisites ===
+
=== Prerequisites ===
 
* Basic knowledge of Linux and your distribution (shell, package manager).
 
* Basic knowledge of Linux and your distribution (shell, package manager).
 
* A recent version of the Linux Kernel.
 
* A recent version of the Linux Kernel.
Line 16: Line 17:
  
 
== Basic setup ==
 
== Basic setup ==
 
=== Prepare your system ===
 
 
==== sudo ====
 
Let's become root, install sudo and add our primary user to the sudoers group:
 
  su -
 
  apt-get install sudo
 
  usermod -a G sudo username
 
  exit
 
 
''Replace username with the username of your primary user. After exiting, you may have to re-login for the group changes to take effect.''
 
 
==== contrib archive area ====
 
 
The winetricks package is not available in the default Debian repo. We must therefore enable the contrib archive area. Open '''/etc/apt/sources.list''' with nano:
 
  sudo nano /etc/apt/sources.list
 
 
Add contrib to the very first deb entry so that the file reads:
 
  deb http://ftp.se.debian.org/debian/ jessie main contrib
 
 
''Obviously you do not need to change the mirror. Also, it is not necessary to add contrib to the deb-src entry.''
 
 
==== Enable Multiarch ====
 
<!-- This should be a template -->
 
<div style="border: 1px #ebccd1 solid; background-color: #f2dede; color: #a94442; padding: 0.5em">
 
This step is only required if you're running a x86_64 operating System!
 
</div>
 
 
In case you are running a x86_64 (ie: a 64-bit) operating system, you need to enable Multiarch support in order to run 32-bit software (such as LFS!):
 
  sudo dpkg --add-architecture i386 && sudo apt-get update
 
  
 
=== Install and configure Wine ===
 
=== Install and configure Wine ===
  
Now let's install Wine (the compatibility layer capable of running Windows applications on Linux) and winetricks (a helper script to download and install various redistributable runtime libraries):
+
LFS, like any other Windows software, runs on Linux through wine (or Proton, the Valve-developed fork that runs Steam games). LFS can be run using either of those, but wine is quite simple to setup, and lets you run LFS without launching Steam.
  
  sudo apt-get install wine wine32 winetricks
+
==== Ubuntu ====
  
Then install the Windows DLLs required to run LFS properly ([https://www.lfs.net/forum/post/1875477#post1875477 source]):
+
On Ubuntu, you can install wine with the following command:
  winetricks d3dcompiler_43 d3dx9_43
 
  
''Note that we do NOT issue this command as root!''
+
  sudo apt install wine
  
=== Install LFS ===
+
Note that LFS is still a 32-bit program, and Ubuntu will only install the 64-bit version of wine, so you need to enable support for the 32-bit architecture, and install wine32:
  
Download LFS ([https://www.lfs.net/downloads list of mirrors]):
+
   sudo dpkg --add-architecture i386 && sudo apt update && sudo apt install wine32:i386
   wget <nowiki>https://www.lfs.net/download/LFS_S2_6J_setup.exe</nowiki>
 
  
Run the executable with Wine to install the game:
+
==== Manjaro ====
  wine LFS_S2_6J_setup.exe
 
  
''Wine may ask you to install mono (a cross platform, open source .NET framework), go ahead if you like but it's not required. <br /> Follow the on-screen instructions. This guide assumes that you install LFS to the default location (C:\LFS\).''
+
Manjaro makes things easier for us: you can open the GUI software center/updater to look for "wine" and install it (or use the pamac command, or more generally for Arch, pacman).
 +
You don't need to manually add support for the 32-bit architecture or install wine32.
  
Change to directory where LFS was installed and run LFS:
+
=== winetricks for Vulkan and other tweaks ===
  cd ~/.wine/drive_c/LFS
 
  wine LFS.exe
 
  
That's it!
+
If your GPU supports Vulkan, you should enable dxvk (Vulkan renderer for DirectX) for better performance (in my case, it also prevented crashes from full grids of cars, and properly showed my GPU in the game's options).
  
== Configure a game controller ==
+
Install it from the GUI (Manjaro) or with the following command (Ubuntu):
  
Install the package that allows you to test, calibrate and alter the configuration of your joystick/wheel:
+
   sudo apt install winetricks
   sudo apt-get install joystick
 
  
Get the handler for your joystick device (take note of the '''eventX'' data):
+
Of course, you can also use an equivalent command for your distribution, including pacman for Arch and Manjaro.
  cat /proc/bus/input/devices | grep js
 
  
''If you have multiple joysticks connected it might be open to manually read the file to find the "H: Handlers=" data for your wheel.''
+
From the terminal, execute winetricks, you will be greeted with a simple GUI. From there, choose '''Select the default prefix''' > '''Install a Windows DLL or component''' > '''dxvk'''.
  
If you like, you may test the force feedback of your device:
+
During installation, you may see warning about the wine prefix being 64 bits, you can ignore those warnings. On Ubuntu, you will be prompted to install multiple Microsoft redistributables.
  ffcfstress -d /dev/input/event12
 
  
''Replace event12 with whatever data you noted in the previous step.''
+
=== Install LFS ===
 
 
To adjust the '''g'''ain and '''a'''utocenter strength:
 
  ffset /dev/input/event12 -g 100 -a50
 
 
 
To adjust the range (wheel) turn, change the value in the "range" file located (roughly) at '''/sys/module/hid_logitech/drivers/id/0003:046D:C299.0009/range'''.
 
 
 
Then configure the wheel from within LFS. See [[Options#Wheel.2FJoystick|Options - Wheel/Joystick]] for more information.
 
 
 
== Troubleshooting ==
 
 
 
=== No sound ===
 
 
 
If you are not getting any sound in LFS, trying installing the Advanced Linux Sound Architecture (ALSA):
 
  apt-get install alsa-base alsa-utils
 
 
 
Then run the configuration utility to make sure the ouput devices are configured correctly:
 
  alsamixer
 
 
 
''Use left/right arrow keys to select the Master item and up/down to change gain. <br />
 
Press "M" to unmute the item ("MM" should change to "OO").''
 
 
 
=== The program has encountered a serious problem ===
 
 
 
I ran into issues after switching from software rendering to NVIDIA's driver package.
 
 
 
If you encounter an error message similar (or identical to):
 
 
 
  Unhandled exception: page fault on write access to 0x7bf02fe8 in 32-bit code [...]
 
 
 
You may want to try the development branch of wine. To do this, install:
 
  sudo apt-get install wine-development wine32-development
 
  
And run LFS with the development binary:
+
If you haven't done so already, download the game from https://www.lfs.net, then open a terminal and execute the setup with wine:
  
   /usr/bin/wine-development LFS.exe
+
   wine LFS_S3_7F_setup.exe
  
== Advanced topics ==
+
If wine fails to execute with the error ''wine: could not load kernel32.dll'', simply delete the configuration folder in ~/.wine and try again. This error is especially likely to occur on Ubuntu, since we added 32-bit support manually.
  
=== Launching LFS from a headless environment ===
+
Once the game is installed, you can launch it from the app launcher like any other app, or double-click the desktop icon (on Ubuntu, you will first need to allow executing it).
 +
You can also go the manual way and launch it through wine:
  
So you just completed a minimal netboot installation of Linux without a graphical environment? What a coincidence! To be able to run LFS, first you will need to install the X server and the X Window System initializer:
+
  wine ~/.wine/drive_c/LFS/LFS.exe
  sudo apt-get install xserver-xorg xinit
 
  
Then use xinit to launch wine (and LFS):
+
This can be useful to get logs in the terminal, if you have issues.
  
  xinit "/usr/bin/wine32" "LFS.exe" -- :1
+
== Controllers and force feedback ==
  
=== Manually installing NVIDIA's driver package ===
+
All controllers should work out of the box, as far as ''input'' is concerned. You will likely need to assign all axes and buttons to your preferences.
  
First install the packages required to successfully run NVIDIA's installer package:
+
The main issue on Linux has to do with FFB, or rather the lack thereof: steering wheel manufacturers typically provide their drivers for Windows only, and getting FFB to work on Linux has historically proven challenging.
  sudo aptitude install binutils gcc make linux-headers-$(uname -r)
+
However, things are much better today than they used to be, and we have several options, even for direct drive wheels and the multiple brands that sell them:
  
''Note that `uname -r` will reassigned to your kernel version. This is called command substitution and is, in this, case, pretty safe.''
+
* [https://github.com/berarma/oversteer Oversteer] is a generic steering wheel manager for Linux. Some distributions provide packages for it. The github repository also provides links to projects for specific drivers, so you should test FFB with Oversteer first (especially if you have a Logitech or Thrustmaster wheel), and then look for those specific drivers; for direct drive wheels, you can directly check the specific drivers, chances are you will not have FFB out of the box.
 +
* Logitech and Thrustmaster drivers are available in recent Linux kernels, those wheels should therefore work without much trouble.
 +
* Fanatec: A driver specific to Fanatec wheels [https://github.com/gotzl/hid-fanatecff/ is being developed]. I am myself using a Clubsport DD and driving with this.
 +
* Moza, Asetek, and likely many others: [https://github.com/JacKeTUs/universal-pidff A more universal option], which should work with at least Moza wheels, is available. The repository also claims support for Asetek and other brands (user feedback would be appreciated for those).
  
Download your desired NVIDIA driver:
+
Note that wine 10 includes support for raw PID communication, which also helps directly translate FFB to Linux, and additionally allows games to make use of a wheel's advanced features, for instance using the FanatecSDK to communicate with the wheel's LEDs; LFS does not seem to be affected by this. Do also note that at the time of this writing, the wine version packaged with Ubuntu 24.04 is still 9.x.
  wget http://uk.download.nvidia.com/XFree86/Linux-x86_64/352.30/NVIDIA-Linux-x86_64-352.30.run
 
  
Make the binary file executable:
+
=== Firmware updates ===
  chmod +x NVIDIA-Linux-x86_64-352.30.run
 
  
Run the installer:
+
While wine allows running all sorts of software on Linux, with various success, firmware updates for your wheel base and other devices are still better left for a Windows OS. If you do not have a Windows PC available, you should try running a virtual machine. Or maybe we can petition manufacturers to provide Linux drivers and software...
  ./NVIDIA-Linux-x86_64-352.30.run
 
  
''Choose to install NVIDIA's 32-bit compatability libraries when asked.<br />
+
[[Category:Guides]]
Choose to automatically update the X configuration file when asked.''
+
[[Category:Platforms]]

Latest revision as of 09:00, 7 June 2025

This document will guide you through the process of installing and configuring Wine and LFS to allow you to run the LFS game client in Linux. We'll also touch on the subjects of configuring your wheel and solving common problems.

Intro

What to expect

Users have reported that LFS runs great on Linux. Force Feedback should be the only point that may cause issues. Graphics and audio appears to be at par with the native environment, and gamepads should work out of the box (although you may have to map the buttons manually).

This article was updated in June 2025; I (Bokujishin) have been playing LFS on Manjaro Linux (KDE Plasma Wayland) for about 2 years now, and it works just fine. The steps in this article were updated and verified to work on both Manjaro Linux and Ubuntu 24.04 (running in virtual machines), and so should work for most Arch-based and Ubuntu-based distributions.

Prerequisites

  • Basic knowledge of Linux and your distribution (shell, package manager).
  • A recent version of the Linux Kernel.
  • Willingness to spend a little time setting things up (probably less time than I spent writing this article!)

Basic setup

Install and configure Wine

LFS, like any other Windows software, runs on Linux through wine (or Proton, the Valve-developed fork that runs Steam games). LFS can be run using either of those, but wine is quite simple to setup, and lets you run LFS without launching Steam.

Ubuntu

On Ubuntu, you can install wine with the following command:

 sudo apt install wine

Note that LFS is still a 32-bit program, and Ubuntu will only install the 64-bit version of wine, so you need to enable support for the 32-bit architecture, and install wine32:

 sudo dpkg --add-architecture i386 && sudo apt update && sudo apt install wine32:i386

Manjaro

Manjaro makes things easier for us: you can open the GUI software center/updater to look for "wine" and install it (or use the pamac command, or more generally for Arch, pacman). You don't need to manually add support for the 32-bit architecture or install wine32.

winetricks for Vulkan and other tweaks

If your GPU supports Vulkan, you should enable dxvk (Vulkan renderer for DirectX) for better performance (in my case, it also prevented crashes from full grids of cars, and properly showed my GPU in the game's options).

Install it from the GUI (Manjaro) or with the following command (Ubuntu):

 sudo apt install winetricks

Of course, you can also use an equivalent command for your distribution, including pacman for Arch and Manjaro.

From the terminal, execute winetricks, you will be greeted with a simple GUI. From there, choose Select the default prefix > Install a Windows DLL or component > dxvk.

During installation, you may see warning about the wine prefix being 64 bits, you can ignore those warnings. On Ubuntu, you will be prompted to install multiple Microsoft redistributables.

Install LFS

If you haven't done so already, download the game from https://www.lfs.net, then open a terminal and execute the setup with wine:

 wine LFS_S3_7F_setup.exe

If wine fails to execute with the error wine: could not load kernel32.dll, simply delete the configuration folder in ~/.wine and try again. This error is especially likely to occur on Ubuntu, since we added 32-bit support manually.

Once the game is installed, you can launch it from the app launcher like any other app, or double-click the desktop icon (on Ubuntu, you will first need to allow executing it). You can also go the manual way and launch it through wine:

 wine ~/.wine/drive_c/LFS/LFS.exe

This can be useful to get logs in the terminal, if you have issues.

Controllers and force feedback

All controllers should work out of the box, as far as input is concerned. You will likely need to assign all axes and buttons to your preferences.

The main issue on Linux has to do with FFB, or rather the lack thereof: steering wheel manufacturers typically provide their drivers for Windows only, and getting FFB to work on Linux has historically proven challenging. However, things are much better today than they used to be, and we have several options, even for direct drive wheels and the multiple brands that sell them:

  • Oversteer is a generic steering wheel manager for Linux. Some distributions provide packages for it. The github repository also provides links to projects for specific drivers, so you should test FFB with Oversteer first (especially if you have a Logitech or Thrustmaster wheel), and then look for those specific drivers; for direct drive wheels, you can directly check the specific drivers, chances are you will not have FFB out of the box.
  • Logitech and Thrustmaster drivers are available in recent Linux kernels, those wheels should therefore work without much trouble.
  • Fanatec: A driver specific to Fanatec wheels is being developed. I am myself using a Clubsport DD and driving with this.
  • Moza, Asetek, and likely many others: A more universal option, which should work with at least Moza wheels, is available. The repository also claims support for Asetek and other brands (user feedback would be appreciated for those).

Note that wine 10 includes support for raw PID communication, which also helps directly translate FFB to Linux, and additionally allows games to make use of a wheel's advanced features, for instance using the FanatecSDK to communicate with the wheel's LEDs; LFS does not seem to be affected by this. Do also note that at the time of this writing, the wine version packaged with Ubuntu 24.04 is still 9.x.

Firmware updates

While wine allows running all sorts of software on Linux, with various success, firmware updates for your wheel base and other devices are still better left for a Windows OS. If you do not have a Windows PC available, you should try running a virtual machine. Or maybe we can petition manufacturers to provide Linux drivers and software...