[UNOFFICIAL] Tutorial and FAQ for running BMS on Linux
This tutorial is incomplete without FAQ. It’s also very dry. Please send your questions and suggestions.
The tutorial and FAQ are also fully unofficial. The BMS team doesn’t provide any support for running BMS on Linux.
Client on Linux
Use the VM option unless you can’t fulfill the hardware requirements, the Wine method is heavily inferior. The VM method gives 100% native performance and compatibility.
1. If you have a Radeon GPU, use wine-staging with gallium-nine patches. In that case, use the newest prerelease Linux kernel AND the Mesa library. Look up all the technical terms in this point, I’m not explaining them.
2. Turn off triple buffering to avoid a crash on startup.
3. In the events of crashes in general, run `wine “Falcon BMS.exe”’ in a terminal and look for any suspicious errors.
4. Turn off desktop compositing while Falcon BMS is running. At least KDE has the option.
5. Don’t need to set CPU affinity.
For (1): gallium-nine is a direct implementation of Direct3D 9 on Linux. It doesn’t involve any translation layers.
Client on Windows in a VM
This is the superior option for Linux users. You can run Falcon BMS, as well as other games, with native speed. It only works for relatively new Intel and AMD CPUs.
Enable your internal GPU and disable the external one. Connect the display cable to the internal GPU.
3. You should end up with the similar
1:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
Subsystem: ASUSTeK Computer Inc. Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
Kernel driver in use: vfio-pci
Kernel modules: radeon
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cape Verde/Pitcairn HDMI Audio [Radeon HD 7700/7800 Series]
Subsystem: ASUSTeK Computer Inc. Cape Verde/Pitcairn HDMI Audio [Radeon HD 7700/7800 Series]
Kernel driver in use: vfio-pci
Kernel modules: snd_hda_intel
4. Again, don’t bother proceeding until PCI passthrough is fully set up in the kernel!
1. Add a PCI redirection for the GPU. You should see it as if it was physically present in the VM.
2. Set up a Realtek ac97 sound driver. qemu+spice has choppy sound otherwise. On Windows 10 you need to specify the .inf file for the driver directly, running
setup.exe' isn't enough. This is NOT the HD Audio driver, it's ac97 also from realtek. Use the Vista driver. 3\. Add a second display cable from the real GPU to the display. If you have DVI+VGA or HDMI+VGA, use the other one than your existing cable. Switch using "input select" on the display OSD. In win10, you may need to press Win+P then down arrow in case the real display isn't lighting up. Then select "primary display" on the right side of the desktop. Alternatively try "secondary display". You want to disable the other display. 4\. Set virt-manager's release keystroke to something you don't press often, like ctrl+win+alt. 5\. The general full reference to virtual machine configuration is [](https://libvirt.org/formatdomain.html#elementsOS). Use it to set up (1). 6\. Redirect the HOTAS as a USB device. 7\. It's best to put Windows as a separate partition. If you can't use the "raw" type, qcow is too punishing in terms of performance. Set up VirtIO as the disk driver. This is way easier when doing a fresh install (look up virtio-win iso), but also possible on an existing install. 8\. Add the network card. You may want to use thebridge’ interface rather than default
macvtap. The latter has no support for VM<->host communication, and no ipv6.
9. For heavy sims like X-Plane 11 or Prepar3d you may want 10+ GB RAM.
10. Set up “hugepages”, see (1), (3).
11. I didn’t lie, this is your native performance with full compatibility.
Reserved for Wine FAQ
Reserved for VM FAQ