Linux
Developers | |
---|---|
Linus Torvalds | |
Release dates | |
Linux | September 17, 1991 |
Key points
- Wide variety of distributions available, allowing unparalleled user choice and customizability across the board.
- The quality of native ports on Linux varies. Some games might perform worse when compared to other operating systems; other might perform better.
- Many Windows games can be played by using either Steam Play or Wine.
Resources
- ProtonDB - crowdsourced database of Proton (Steam Play) games performance
- Phoronix - website dedicated to hardware and benchmarking in Linux
- DistroWatch - page dedicated to Linux distributions
- OpenBenchmarking - a list of user-made benchmarks in Linux
- /r/linuxhardware - subreddit dedicated to Linux hardware
- /r/linuxquestions - subreddit dedicated to Linux-related questions
- Linux Journey - a beginner-friendly page about learning Linux in general
Communities
- Gaming On Linux - a large community dedicated for gaming on Linux
- /r/linux_gaming - Linux gaming subreddit
- /r/linux4noobs - subreddit dedicated for Linux newbies
- Linux Game Cast - pod/videocast
- Back2Gaming - Gaming related news/guide page. More oriented into Linux
Distributions
There are two types of release models which distros are using, both have their pros and cons.
Fixed release
- Offers stable packages
- Most distros which use it are beginner friendly
- Very little maintenance
- Package versions are usually tied to the distro version, so to get the recent packages, you need to update your OS
- Stable packages don't contain the newest features. This is especially important in case of GPU drivers
- Manual intervention is required in order to add user-made repositories in some distros.
- Updating the distro to the next version doesn't require a fresh install and is easy to carry out but might take up to few hours (but usually below an hour)
Distribution | Based on | Desktop(s) [fr note 1] | Release cycle | Supported by[fr note 2] | Description |
---|---|---|---|---|---|
Ubuntu | Debian | GNOME | 6 months, 2 years for LTS | Steam, GoG, many commercial developers | The most popular distribution. Ubuntu LTS (Long Term Support) is officially supported by Steam. If you don't know what to choose, pick this one. Ubuntu non-LTS is updated more often and contains newer packages and functions and is also a great option. Note that as of 19.10, Canonical will include some of the 32 bit packages if needed. |
Pop! OS | Ubuntu | GNOME | 6 months | same as Ubuntu[fr note 3] | A Ubuntu based distro created and maintained by System76 which includes it's own repository. Unlike Ubuntu, it includes much more recent drivers for your graphics card and it's generally more recommended for beginners. |
Ubuntu flavours | Ubuntu | Plasma, LXQt, Budgie, MATE, Xfce | 6 months | same as Ubuntu[fr note 3] | Flavours offer different Desktop Environments, but when it comes to compatibility, they are virtually the same as Ubuntu. Choose if you prefer distinct workflow or art style. Newcomers from Windows should definitely pick Ubuntu MATE, Ubuntu Budgie, Xubuntu or Kubuntu. |
Linux Mint | Debian, Ubuntu | Cinnamon, MATE, XFCE | Up to 2 years | same as Ubuntu[fr note 3] | The most popular beginner-friendly Linux distribution. LMDE 2 Edition is based on Debian. Be aware that the packages may be much older compared to Ubuntu LTS releases, but the main advantage is the built-in kernel upgrader. |
KDE Neon | Debian, Ubuntu | KDE Plasma | Up to a year | same as Ubuntu[fr note 3] | A distro created by the KDE community, compared to the Kubuntu (A KDE Plasma flavoured Ubuntu) it provides the latest version of KDE Plasma, while at the same time being able to use packages from Ubuntu. |
SteamOS | Debian (Stable) | GNOME | Varies | Steam | Linux distribution made by Valve Corporation specifically for Steam Machine or for gaming from couch. It currently provides the latest stable Linux kernel along with newer drivers for GPU. Offers an option to act as a desktop system, it may be behind in terms of packages. |
Rolling release
- Provides the latest version of the package once it’s available
- No distro upgrade is required, as most distros have only one version.
- An update for the package may cause stability issues, so it is recommended to organize an update by yourself in case a revision gets a release, which fixes stability issues.
- In some cases, manual intervention is required.
- No rolling release distribution has any official support from any store
- Some distros offer a semi-rolling release, meaning that the package will be tested before the release, it mostly takes less than a month, often a week depending on distro.
Distribution | Based On | Desktop(s)[rr note 1] | Description |
---|---|---|---|
Manjaro | Arch Linux | Plasma, XFCE, GNOME[rr note 2] | Provides its own official repository has exclusive tools for installing various Linux kernels and managing your hardware drivers. The packages are semi-rolling meaning that it takes longer for the new version of the application to be released (Up to 2 weeks) until it's absolutely stable enough. |
Solus | Independent | Budgie, GNOME, MATE | Despite following the rolling release model it provides stable packages and features great hardware compatibility with any GPU. Includes a special tool called Linux Steam Integration (LSI) which allows you to easily customize Steam ranging from using the libraries from your system (Native mode) or force 32-bit mode. Only stable releases of library and software are added with a very few exceptions (Such as Nvidia's Vulkan Beta Drivers) |
Desktop environments
The Linux community has created multiple variations of the desktop environment for you to choose from as by default the system uses the text mode by default, with their own basic software for common use such as file explorer, notepad, virtual terminal etc. along with their own purpose and features.
Name | Min. RAM | Customizable | Description |
---|---|---|---|
GNOME | 2 GB | Yes, limited |
One of the oldest desktop environments which is still continuously updated. The 3rd generation of GNOME has a more tablet focused interface compared to GNOME 2 with a very large set of software combined with community-made ones as well as extensions, thankfully the GNOME Classic is included for those who do not like its theme and its compositor integrates really well with Nvidia graphics card, which does not cause any tearing at all. However, it's very limited in customization, forcing you to install GNOME Tweak to change things such as the color theme, icons etc. For Wayland use, GNOME supports both GBM and EGLStreams APIs which makes it the only DE to support Wayland for every graphics cards that support it. |
KDE Plasma | 1 GB | Yes |
The very 1st desktop environemnt which to this day is still being updated and maintained. Compared to GNOME, it uses less memory while having many of its features and software included which makes it very attractive to Windows/Mac users while being very customizeable and packed full of options for you to set up and a dedicated option to disable composition when running a software in full screen, providing a better performance in games. Nvidia users with proprietary driver must use at least 5.12.9 LTS or 5.15.9 which stabilizes the desktop for that matter. |
Budgie | 256 MB | Yes |
Created by a original Solus developer and currently maintained by Solus Team. It currently serves as an alternative for GNOME 3 with a much more desktop-like interface and bear some similarities to Windows 10. |
Cinnamon | 256 MB | Yes |
Created by Linux Mint Team, Cinnamon brings back the GNOME 2 appearance with a modern twist, while using some of the features present in GNOME 3, including its compositor's integration with Nvidia GPU. Allows you to run in Hardware (Default) and Software mode (No Composition). |
XFCE | 128 MB | Yes |
Starting off as a clone of a Unix-like desktop environment named CDE, it became its own DE with a much more Windows XP-like appearance and with its light use of memory is well suited for low end hardware or even for Windows veterans. |
MATE | 128 MB | Yes |
MATE was born as a spiritual successor to GNOME 2 after a controversial change in GNOME 3. The DE is well suited for common Windows users while providing its own features such as audio preview by a mouse hover. |
LXQT | 64 MB | Yes, limited |
Starting off as LXDE and later one in combination with Razor-Qt it became LXQt. The most lightweight desktop environment ever created, despite its limited features and customization along with the lack of compositor it is perfectly suited for the lowest end hardware. |
Kernel
- Wikipedia page
- It is important to update your Linux kernel as new versions provide security updates, bugfixes, better performance and support for hardware. Your distributions repository contains the latest version for your OS.
There are two main releases of the official Linux kernel:
- the Long Term Support (LTS) is slightly behind in terms of hardware support and features, but offers better stability and has longer support,
- stable release (sometimes called the current release) offers the best hardware support and the newest features. It's the default choice for a gaming machine and should be avoided only if it causes some issues.
Both releases offer the same security updates.
Kernel replacement
- This section is meant for advanced users, you can easily break your OS, if you don't know what you are doing!
While both stable and LTS Linux kernel releases can be used for gaming, there are also community-made ones which add features and improvements, thus may improve your gaming experience even further. Be warned that you may have to install the DKMS version of the drivers along with the kernel headers to make your hardware useable with multiple kernels, this is not required if the kernel already includes it.
The most notable releases:
- For help with installing different kernels on distro of your choice, you should go to kernel version official website or your distros forum and wiki.
- Be sure to keep the current kernel you have in case if things go wrong.
- UKUU is an useful utility for swaping kernels, although newer versions have nonfree license.
Microcode
It is very important to install the microcode for your CPU as the manufacturer provides security and stability updates.
Most distributions use either package manager or some kind of firmware/drivers manager to update your microcode.
Hardware
Graphics
- ArchWiki's ATI and Catalyst Article
- ArchWiki's AMDGPU/AMDGPU Pro Article
- ArchWiki's Nvidia and Nouveau Article
- ArchWiki's Intel Graphics Article
Here is a following table describing the drivers and information which Linux supports for each GPU brand.
Brand | Driver type | Driver | Library | Supported GPU | Vulkan support |
---|---|---|---|---|---|
AMD/ATI | Open Source | AMDGPU | Mesa (GLX and DRI) | GCN 1 to GCN 4 and newer architecture1 | Yes (RadV, AMDVLK) |
ATI | GCN 2 and older architecture | No | |||
Proprietary | AMDGPU | AMDGPU Pro | GCN 3 to newer architecture | Yes | |
Catalyst | Catalyst GL Library | GCN 3 and older architecture | No | ||
Nvidia | Open Source | Xorg Nouveau | Mesa (GLX and DRI) | Any Nvidia GPU | |
Proprietary | Nvidia | Nvidia GLX | From Kepler based GPUs to recent | Yes | |
Nvidia 390 | Nvidia 390 GLX | From Fermi based GPUs to recent | |||
Nvidia 340 | Nvidia 340 GLX | For Tesla based GPUs | No | ||
Nvidia 304 | Nvidia 304 GLX | From GeForce 6 series to Tesla based GPUs | |||
Nvidia 173 | Nvidia 173 GLX | GeForce 5 FX series (NV30 to NV360) | |||
Nvidia 96 | Nvidia 96 GLX | From GeForce 2/3/4 MX/Ti | |||
Intel | Open Source | Xorg Intel2 | Mesa (GLX and DRI) | Any Intel HD Graphics GPU | Yes (ANV) |
Xorg modesetting |
1 - GCN 1 and 2 architecture support in AMDGPU is experimental.
2 - Do not use it on Intel HD 4000 series and newer GPU.
AMD/ATI users should use the open source driver as they provide the best performance and support compared to the proprietary ones, while Nvidia users should stick to the proprietary ones. However there are some things to remember:
- Never install drivers from the respective GPU brand's website unless you are forced to! since some installers would require you to install through text mode, like in case of Nvidia. AMD however have prepared packages that can be ran for distros they support. Otherwise rely on the graphical package manager installation, to ease up it up.
- If forced to use Catalyst, Nvidia 173 or Nvidia 96 drivers, you must downgrade Xorg to the version it got the last support.
- Before using the open source driver you must install LLVM and Linux Firmware.
- As always when using the 64 bit system, install the 32 bit version of the drivers if possible.
List of 3rd-party repositories
Ubuntu/Linux Mint/Zorin OS/Pop! OS/Linux Lite/KDE Neon
Use sudo add-apt-repository <PPA repository>
to add one. Make sure to run sudo apt update
in order to update the repository list after adding one.
Repository | Description |
---|---|
ppa:paulo-miguel-dias/pkppa | Padoka Stable Mesa. For AMD/Intel/Nouveau GPU drivers, also contains Wayland. |
ppa:paulo-miguel-dias/mesa | Padoka Unstable Mesa. Same as the previous, however it is the developer version. Mind the issues you may encounter. |
ppa:graphics-drivers/ppa | "Graphics Drivers" Teams' PPA. Contains the recent proprietary Nvidia drivers and the Vulkan drivers for that GPU. |
ppa:ubuntu-x-swat/updates | Ubuntu X Team's Stable Mesa. For AMD/Intel/Nouveau GPU drivers, also contains Wayland. |
OpenSUSE
As of 10 August 2017, OpenSUSE Tumbleweed has an official Nvidia RPM [1], you can manually add the repository with this command
zypper ar https://download.nvidia.com/opensuse/tumbleweed nvidia-tumbleweed zypper inr (For installing)
Optimus support
- Nvidia Optimus linux guide
- To this day the Optimus support in Nvidia GPUs is still considered to be troublesome. It is recommended to use fixed release distributions for this case.
In case of laptops which contains Nvidia Optimus support it is recommended to have PRIME enabled, which can be done by installing additional package, follow the distro’s documentation to learn which one. The alternative to it can be Nvidia XRun package and Bumblebee's optirun/primusrun (Not recommended as it is no longer in development), but then the manual intervention is required (With the exception of the former). The linked guide will explain in detail the differences between them, as well as how to use them.
AMD users have a much easier time with that feature as it only requires running the game with the DRI_PRIME=1
command.
Audio
Audio is mostly handled by ALSA, with or without PulseAudio. You may set up to use ALSA only, however it is mostly recommended to use with the latter, as it acts as a main central configuration point for audio itself and some games are set to use PA by default. When using a sound card you must install ALSA Firmware package from your repository, while in case of using Bluetooth headphones in PulseAudio, install it's PulseAudio Bluetooth library.
When it comes to API in Linux games, there are multiple of em such as OpenAL (Otherwise known as OpenAL Soft), SDL_mixer, SteamAudio, FMOD and more. But the most popular ones are the first two APIs.
You may also encounter the OSS, also known as Open Sound System, released in 1995, it was used as a default sound manager which was added into the kernel, until it was replaced by ALSA in 2.5 version release of Linux kernel. Linux games released till 2001 were using it to play any sound. Even to this day, the OSS is still being updated but it is not much used anymore. If you ever encounter a software where it supports only this audio interface and complaing about the lack of /dev/dsp
, you have to either install the OSS itself and set the audio up (the hard way) or rely on emulation. In general, installing the OSSP package and enabling/starting it's daemon process (osspd) is enough to do it as it supports both PulseAudio and ALSA, but it is not updated frequently.
Another way is to use the OSS emulator for the specific audio interface:
- PulseAudio can use the
padsp
command which can be found with the PulseAudio utility package or in some distros, already included with the main software. - ALSA users should install the alsa-oss package and then use the
aoss
, if using a 64 bit system you need to use the-32
argument if you run a 32-bit application.
Do not run aoss
if you are using PulseAudio, all you will get is a static noise mixed with the white ones at high volume!
In case of MIDI, installing Timidity is required along with either soundfonts or FreePats package. Depending on the distro, it will either set it up automatically or require manual intervention. Keep in mind that if you are using PulseAudio, all the sounds, beside the MIDI music, will be muted unless you include the -iA -Os argument for the timidity command as either an autostart or as a user-made service.
You can also use Fluidsynth, however bear in mind that it uses more CPU and needs to be set up to work alongside with PulseAudio, but compared to Timidity, it is more up to date.
Input devices
- Libinput ArchWiki article
- Touchpad ArchWiki article
- Keyboard Configuration in Xorg ArchWiki article
- Touchscreen ArchWiki article
The keyboard and mouse are supported on the go, however if using XOrg you must have it's input-libinput (input-evdev being the alternative) package installed as well in order to work, however by default it will support only 3 buttons for the mouse, in order to use all of them, you have to configure it manually. When using a laptop you may also need to install XOrg's Synaptic package to have access to all features of your touchpad, against the touchscreen it will either work out of the box (besides some calibration) or being very tedious, especially when it is not supported by Linux kernel.
Wayland users only requires the libinput package itself, which also supports XOrg.
If using a mouse dedicated for gaming, there is a universal configurator called Piper. Due to the fact that the software is still new, there is a limited support for some mouse devices, it does support some of the Logitech mouses. However, there are some other ones made specifically for a product from one company:
- RazerGenie - Keyboard and Mouse setup for Razer products
- RazerCommander - Ditto
- RazerCFG - A much more simplified configurator for Razer products
- Roccat Configurator - An official configurator for Roccat products
- Polychromatic - Yet another configurator for Razer products
Controller support
All the controllers such as DualShock 4,DirectInput gamepads and XInput ones (Such as Xbox 360) are supported, however in case of issues regarding XInput ones, you may wish to install xboxdrv. For calibration purpose, you can install the graphical interface of JSTest package to do it.
The most interesting thing is the Steam Controller, as despite requiring Steam to make it work, it’s entirely possible to use it outside of it with the use of third-party scripts which lets you emulate it as an actual gamepad or a mouse. Even so, far to use it on Wine, if it’s set properly.
It is possible to use SDL2's binary for testing the Joystick or Gamepad to set up a non-supported controller to work with SDL2 applications [2].
If dealing with a game that has a very limited or no controller support at all, the AntiMicro has you covered. It allows you to bind keyboard and mouse inputs into the controller, however it works only in Xorg environment. Fedora has the stable build already available in their repository, Debian users should use the LibreGeek's repository, especially Ubuntu or Ubuntu-based distributions which can be added with this PPA. Otherwise, you need to compile the program on your own, which luckily includes the instructions and a list of dependencies required for compiling.
Other
Disk partitioning
By default the most common format used in Linux is EXT4 which manages the files much more efficiently than Windows' NTFS, even so far to decrease loading time in games at the cost of being case sensitive, where for example File1
is treated differently than file1
. While NTFS is supported, it is generally not recommended to use it for running installed games from it as it may cause compatibility issues depending on the software.
The most important aspect is the swap partition with it's own disk format, they generally act as a RAM replacement, the absence of it will cause any software to shut down due to low memory and it's commonly used when putting the PC under Hibernation or Sleep mode. The size of the swap disk depends on how much RAM you have.
If less than 8 GB of RAM, you must increase the swap disk. If more than 8 GB of RAM, decrease the swap disk size.
It is generally recommended to partition your disk in this particular order: / (Root) Home Swap disk
The partition order also affects the performance of your HDD/SSD as the 1st partition has a higher priority than the other ones, you can create multiple partitions for each directory with a specific disk size to use or use the entire free space on Root and leave some for swap.
Wayland or Xorg?
While hanging around the Linux community you have most likely heard about the Wayland, which is meant to replace the decades old XOrg display server raising the question if you should consider switching to it or stay.
The main advantage of Wayland are:
- Passive compositioning when fetching pixel data from the client, which removes any kind of latency.
- Isolating I/O of every window and provide smaller access to root for running the code, improving the security.
- Acts as both display server and as a compositor. Whereas XOrg only acts as a former but a 3rd party compositor is required.
- Backwards compatibility with softwares that rely on XOrg through XWayland.
This all however depends on the driver which your GPU uses as there are two buffer APIs which Wayland makes use of, as well as it's implementation for the desktop environment.
GPU | Driver | Buffer API |
---|---|---|
AMD | Open Source | GBM |
Intel | ||
Nvidia | ||
Proprietary (From 364.12+) | EGLStreams |
Both GNOME 3 and KDE Plasma supports Wayland for all APIs (With Plasma's case, EGLStreams support began with 5.16). Nvidia proprietary driver however are way behind in terms of supporting it as it lacks most of the key extensions such as Vulkan support under it along with low performance on XWayland, forcing you to use Xorg instead.
AMD and Intel users however, contains all the required extensions for a full experience.
Certain APIs used for software would require a specific package or an environment variable to run in Wayland mode
- GTK3 - Supported and enabled by default since 3.20, if not, use the
GDK_BACKEND=wayland
command at the beginning. - Qt5 - Requires the Qt5 Wayland package. After that you can run the Qt 5 application with the
-platform wayland
command prompt. - SDL2 - Added in 2.0.2 enabled by default since 2.0.4. If not, use
SDL_VIDEODRIVER=wayland
command before running the application. You can enforce newer SDL2 on games and use the command, althou there may be a risk of graphical glitches to appear. - GLFW - Install the Wayland version package of GLFW instead of X11, support added in 3.2.
- EFL - Enabled by default.
- Clutter - Included with clutter package
- FreeGLUT - Has initial support.
Benchmarking
It is entirely possible to benchmark native Linux games in this system by using the Phoronix Test Suite. While it is not in GUI form, it's actually very easy to use. You will need to download any game you wish to benchmark through this program and later on run it. The biggest advantage is that once it's completed, it will save the information as a webpage which the program automatically generates, creating a separate result is not required, as the program can also include it to the existing ones, making a comparison between the hardware you have used or settings much easier.
If decided to benchmark on your own, whether the game has a built-in benchmark or not, using Gallium HUD is recommended. Due to the option of displaying the FPS, CPU or even the GPU load graph while running the software and can be customized to your need and it is available when the Mesa package (version 13 or newer) has been installed. This option is only available for AMD, Intel HD and Nouveau.
Another much simpler and available for every kind of GPU is the glxosd which requires installing the package with the same name and just like Gallium HUD, you need to type glxosd
before launching a game. The settings can be changed in the glxosd_config.lua file located in /etc/glxosd/
. It is recommended to change the refresh rate of displaying the information as by default it will show the current info after 3 seconds (In config file it's 3000).
Steam users can use Valve's voglpref which only works for Steam. It will display both information in the Terminal and at the custom website which can be accessed privately, from there you perform any task you want, although you need to know the SteamID of the game you wish to benchmark.
PCI passthrough
Since Linux 3.9 and recent QEmu version, it is possible to passthrough a graphics card, motherboard or even other hardwares into the virtual machine. The main advantage of it is having a native GPU working on Windows 7/8/10 in virtual machine such as the KVM or QEmu, which allows you to play Windows games on it without even using the dual-boot or relying on Wine to do so! However, there are some disadvantages:
- Your CPU must support hardware virtualization and IOMMU
- Your motherboard must also support IOMMU
- Your GPU must support UEFI
- You need a 2nd hardware for PCI passthrough
- It takes some time to set up and the whole process may be a little tough for beginners
The following links and the subreddit can be used to learn about the process. Keep in mind that it is not possible to perform a PCI passthrough from Windows. This can be done only in Linux itself!
Wine
WINE (Wine Is Not an Emulator) is a compatibility layer which allows you to run Windows programs in Unix/Linux environment, it’s main advantage is a wide support of Windows versions ranging from 3.11 to Windows 10 and supports both 32-bit and 64-bit versions of their systems (32 bit only if you have a 32 bit version of Wine). Besides that some games may even work better than on native Windows such as games which use OpenGL or Vulkan rendering. However a manual intervention may be required if there are issues and checking the WineHQ’s App Database to see if it’s compatible and how to make it work. There are multiple versions of this program each with their own differences:
- Normal
- Staging - Provides additional features such as CSMT which may or may not improve the performance of the game and contains community-made patches which improves the compatibility.
- Gallium Nine - Uses Gallium3D State Tracker, which dramatically improves the performance for games using DirectX 9, as it won’t translate Direct3D calls into OpenGL.
- Proton - A fork of Wine created by Valve and CodeWeavers which includes special patches and additional addons such as DXVK, FAudio, ESync etc. mainly dedicated for gaming and is integrated with Steam, but it is possible to use without it.
- tkg - Considered to be a "Wine to rule them all!" it contains a large set of patches and features from other community project to provide the best performance and compatibility for games and can be easily customized to your preference, however it was mainly made for Arch Linux (and distros based on it), but it is possible to use it in other distributions. A Protonified version uses Proton as a base instead.
So far only AMD and Nvidia graphics cards which rely on open source drivers have a support for Gallium 3D Nine which greatly benefits the compatibility and performance with DirectX 9-based games.
If WINE itself is hard to use there are also front-ends which may improve your experience with it:
Name | Release | Notes |
---|---|---|
PlayOnLinux | Free |
|
Crossover | Commercial |
|
Q4Wine | Free |
|
Lutris | Free |
|
Stores and clients
Name | Client available | Registers Linux sales? | Notes |
---|---|---|---|
Steam | Yes | Yes |
|
Humble Bundle | No | Yes |
|
GOG.com | No | Yes |
|
Itch.io | Yes (Optional) | Yes | None |
Feral Store | No | Yes |
|
Notes
- There are no best distros, it all depends on your need. You may be switching between it until you find a perfect one, commonly called “distro hopping”.
- Always ask the forum or refer to the documentation of the distro in case you have a problem. Arch Linux one can be used regardless the distro you are using.
- In some distros, such as Arch Linux, you may want to check the main page before updating, sometimes a manual intervention is required, but will always provide instructions what to do. Not required for fixed release type distros.
- You don’t have to keep making an update if a new version is released in a rolling release distro, you can always do it later. It’s actually recommended to do it after some time to avoid any stability issue.
- Always use virtual machines such as VirtualBox to learn about the distro you want to use. Some distros have a LiveCD or LiveUSB which allows you to check the distro out before installing or even use it for the maintenance. Make sure to install any utilities related to VirtualBox at the Linux distro you are emulating such as graphics drivers.
- Some keys on your keyboard are labeled differently in Linux world. Meta4/Super key are actually Windows key, while "^X" in text mode is actually Ctrl+X.
- Almost all of the desktop environments have their own Terminal, you can install a 3rd party ones which generally are more feature rich.
- If you are confused with using the package manager in Terminal for each distro, this page will help you.
- Having a second workstation is extremely useful in case if the game hangs out or freezes without any option to minimize it back to the desktop. Mostly happens to the Xorg/X11 server display.
- Files and folders can be hidden by adding "." at the beginning of the name.
- If using a 64-bit version of the distro. Always make sure to install the 32-bit package counterpart for the compatibility!
- Configuration files for games and applications are stored in your Home directory which are mostly hidden. Either at the
~/.config
,~/.local/share
or the~/.<application/developer name>
directory. - If someone tells you to use this command
sudo rm -Rf /
, don't do it unless you want to have a bad time.
Improvements
Hardware
Disable mitigation for Intel CPUs
- WARNING! Be aware that disabling this kernel parameter will cause your PC to be susceptible to multiple vulnerabilities found in Intel processors such as Spectre, Meltdown, Zombieland etc. use it at your own risk! Otherwise, use AMD processors instead.
- Depending on the Intel CPU, disabling the Mitigation will increase the performance up to 50% or more. The following parameter used in here is available only in 5.1.13 kernel or newer, for older see this guide.
Edit the GRUB settings[1] |
---|
Open up the Re-generate the grub.cfg using one of these commands as root: grub-mkconfig -o /boot/grub/grub.cfg update-grub # Used by Ubuntu based distros, easy version of the 1st one. |
Disable mouse acceleration in Xorg
- Some desktop environments offer an option to set up the mouse acceleration directly from the settings menu (Such as KDE Plasma, GNOME and later on MATE)
Create a new Xorg rule[2] |
---|
Create a config file in /etc/X11/xorg.conf.d/ as Section "InputClass" Identifier "My Mouse" Driver "libinput" MatchIsPointer "yes" Option "AccelProfile" "flat" EndSection Then restart the system or Xorg (In most distros it's Ctrl+Alt+Backspace ←) |
Improve shutdown time in systemd
Edit the system.conf |
---|
In some desktop environments such as LXQt, the system shutdown or restart process may take longer due to Systemd having the time to stop the session set to 1 minute 30 seconds by default.
OR Install watchdog package and enable/run the watchdog service. |
Resolution scaling with xrandr
It is entirely possible to scale the resolution through multiplications (--scale
) or by resolution (--scale-from
) with xrandr
command. Provided that you input the monitor name and your current resolution, which can be learned by using xrandr -q
command (It will also list available resolutions).
Here are some examples:
xrandr --output VGA1 --mode 1024x768 --scale 0.5x0.5
- this will downscale the resolution by 0.5 while using 1024x768 resolution in VGA1 monitor.xrandr --output VGA3 --mode 1920x1080 --scale-from 1440x900
- This command will imitate the 1440x900 resolution under 1080p in your VGA3 monitor.
Software
Use Feral Game Mode to improve the performance
- Most distros includes the software in their repository, it is recommended to install both 64 and 32 bit versions to apply in every game, if not, the source code can be found in the GitHub page.
- Supports custom scripts
- Developers can use it to implement in their games.
Feral Game Mode is used by Feral Interactive to provide optimization in their games (From Rise Of The Tomb Raider) when being ran, it provides changes to these following processes:
- CPU governor
- Input/Output priority
- Process niceness
- Kernel scheduler
- Screensaver inhibiting
- GPU performance mode (Nvidia and AMD), GPU overclocking (Nvidia)
Once the package is installed, you can activate it when running other games with gamemoderun *game executable/launcher*
, on Steam add gamemoderun %command%
into Launch Options.
Enable 32 bit support for your distro
Enable 32-bit library support in Ubuntu/Debian based distros |
---|
As Ubuntu/Debian 64 bit distros have 32 bit libraries disabled by default, this can cause compatibility issues with the software (Especially with upgrading Wine). To enable it you must use these following commands: sudo dpkg --add-architecture i386 sudo apt update |
List missing dependencies
List the missing dependencies |
---|
As GOG, Steam and other stores mostly support Ubuntu due to it's popularity in both making another distribution (Such as Linux Mint) or wide use, there can be a limited support for the other distros such as Arch Linux, Fedora etc. Mostly in terms of requiring dependencies to run the game or a software. The ldd <binary file> After running the command, it'll list all the *.so files the software uses, if there is a "Not found" somewhere, this is the moment to learn which package does it contain the file. The missing dependency checkup can be even easier with the inclusion of the ldd <binary_file> | grep "Not found" This will only look for the lines related to "Not found" only, if nothing shows up then you have everything you need. |
Improve compiling speed in AUR (Manjaro, Antergos, Arch Linux) |
---|
Open makepkg.conf as root and under MAKEFLAGS add
|
Create a script which the game uses libraries from your system instead
Make a native executable for your game |
---|
#!/bin/sh LD_LIBRARY_PATH=/path/to/library /path/to/executable 3. Replace
4. Once done, save it and make it executable using either Notes
|
Common fixes
Hardware
The Nvidia DKMS driver won't install after updating it |
---|
Text Mode
LiveCD/LiveUSB
|
Set up a primary monitor in multi-monitor setup[citation needed] |
---|
Notes
|
No sound[citation needed] |
---|
Open the Terminal and type as root
|
Crackling sound/audio delay in PulseAudio |
---|
Type in terminal this command to stop and then start PulseAudio at the same time: pulseaudio -k && pulseaudio --start
|
Software
Screen tearing |
---|
Nvidia users can fix the screen tearing by enabling Force Composition Pipeline in Nvidia Settings, if it persists, enable Force Full Composition (Keep in mind that it reduces the performance in games even more). AMD and Intel HD users do not have to do anything as DRI3 handles the refresh rate by default without compromising the performance, provided the compositor contains the Present extension. If it persists, chances are you may be required to install and use a 3rd party compositor such as Compiz, Compton etc. |