Running LFS on Linux

From LFS Manual
Jump to navigationJump to search

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.

Intro

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. 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).

The Demo and S1/S2 versions should work equally well.

Functionality has been confirmed with:

  • LFS S2 6J
  • Debian GNU/Linux 8.1 (x86_64) and wine-1.6.2.
  • Logitech G25 Racing Wheel
  • Xbox 360 Wireless Controller for Windows

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

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 step is only required if you're running a x86_64 operating System!

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

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):

 sudo apt-get install wine wine32 winetricks

Then install the Windows DLLs required to run LFS properly (source):

 winetricks d3dcompiler_43 d3dx9_43

Note that we do NOT issue this command as root!

Install LFS

Download LFS (list of mirrors):

 wget https://www.lfs.net/download/LFS_S2_6J_setup.exe

Run the executable with Wine to install the game:

 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.
Follow the on-screen instructions. This guide assumes that you install LFS to the default location (C:\LFS\).

Change to directory where LFS was installed and run LFS:

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

That's it!

Configure a game controller

Install the package that allows you to test, calibrate and alter the configuration of your joystick/wheel:

 sudo apt-get install joystick

Get the handler for your joystick device (take note of the 'eventX data):

 cat /proc/bus/input/devices | grep js

If you have multiple joysticks connected it might be easier to manually read the file to find the "H: Handlers=" data for your wheel.

If you like, you may test the force feedback of your device:

 ffcfstress -d /dev/input/event12

Replace event12 with whatever data you noted in the previous step.

To adjust the gain and autocenter 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/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.
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:

 /usr/bin/wine-development LFS.exe

Advanced topics

Launching LFS from a headless environment

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:

 sudo apt-get install xserver-xorg xinit

Then use xinit to launch wine (and LFS):

 xinit "/usr/bin/wine32" "LFS.exe" -- :1

Manually installing NVIDIA's driver package

First install the packages required to successfully run NVIDIA's installer package:

 sudo aptitude install binutils gcc make linux-headers-$(uname -r)

Note that $(uname -r) will reassigned to your kernel version. This is called command substitution and is, in this case, pretty safe.

Download your desired NVIDIA driver:

 wget http://uk.download.nvidia.com/XFree86/Linux-x86_64/352.30/NVIDIA-Linux-x86_64-352.30.run

Make the binary file executable:

 chmod +x NVIDIA-Linux-x86_64-352.30.run

Run the installer:

 ./NVIDIA-Linux-x86_64-352.30.run

Choose to install NVIDIA's 32-bit compatability libraries when asked.
Choose to automatically update the X configuration file when asked.