Table of Contents

Ubuntu Desktop - Gaming

Mame


Video Drivers

Enable 32-bit libraries

sudo dpkg --add-architecture i386 

AMD Mesa Driver Install

sudo add-apt-repository ppa:kisak/kisak-mesa -y
sudo apt update
sudo apt install libgl1-mesa-dri:i386 mesa-vulkan-drivers mesa-vulkan-drivers:i386 -y

NOTE: Did you run into an error?

Make sure you are running Ubuntu 20, Linux Mint 20, or Pop OS 20! - Older versions are not recommended.


Nvidia Proprietary Driver Install

sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
sudo apt install nvidia-driver-450 libnvidia-gl-450 libnvidia-gl-450:i386 libvulkan1 libvulkan1:i386 -y

NOTE: Not working?

Are you using a recent nVidia card?

I recommend at least GTX 900 Series or Above!


Arch Based Distributions

Enable Multilib for 32- bit support in /etc/pacman.conf.

NOTE: You can remove the # to enable multilib shown below.

/etc/pacman.conf
[multilib]
Include = /etc/pacman.d/mirrorlist
sudo pacman -S lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader -y

Install a Custom Linux Kernel

Xanmod (Debian-based Only)

Official Site: https://xanmod.org

echo 'deb http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-kernel.list && wget -qO - https://dl.xanmod.org/gpg.key | sudo apt-key add -
sudo apt update && sudo apt install linux-xanmod -y

Liquorix (Debian-based Only)

Official Site: https://liquorix.net

Debian Prerequisites (No PPA)

codename="$(find /etc/apt -type f -name '*.list' | xargs grep -E '^deb' | awk '{print $3}' | grep -Eo '^[a-z]+' | sort | uniq -c | sort -n | tail -n1 | grep -Eo '[a-z]+$')" && sudo apt-get install apt-transport-https curl && echo -e "deb http://liquorix.net/debian $codename main\ndeb-src http://liquorix.net/debian $codename main\n\n# Mirrors:\n#\n# Unit193 - France\n# deb http://mirror.unit193.net/liquorix $codename main\n# deb-src http://mirror.unit193.net/liquorix $codename main" | sudo tee /etc/apt/sources.list.d/liquorix.list && curl 'https://liquorix.net/linux-liquorix.pub' | sudo apt-key add - && sudo apt-get update -y

Ubuntu based Prerequisites (PPA):

sudo add-apt-repository ppa:damentz/liquorix && sudo apt-get update -y

64-bit Install:

sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64 -y

Zen (Arch-based Only)

Built into Arch Linux and part of the official pacman repositories.

This does a lot of the same tweaks as Liquorix but for Arch based distributions.

pacman -S linux-zen -y

Mainline (Debian Bleeding Edge)

Source Project: https://github.com/pimlie/ubuntu-mainline-kernel.sh

This will update a debian stable release to the latest official kernel.

Installation

apt install wget -y
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
chmod +x ubuntu-mainline-kernel.sh
sudo mv ubuntu-mainline-kernel.sh /usr/local/bin/

Usage

From terminal type any of the following commands:

ubuntu-mainline-kernel.sh -c # Check if Newer Kernel available
ubuntu-mainline-kernel.sh -i # Install latest kernel
ubuntu-mainline-kernel.sh -l # List locally installed kernels
ubuntu-mainline-kernel.sh -u # Uninstall mainline kernel

ACO - Faster Compiling (AMD Only)

This changes the compiling from LLVM to ACO which is considerably faster.

See

You do need up-to-date drivers mesa 20+ and edit /etc/environment.

Add this to /etc/environment

/etc/environment
RADV_PERFTEST=aco

Wine Dependancies and Lutris

There are several packages that wine, proton and lutris game installs need.

It is recommended installing all the dependancies before installing lutris.

Ubuntu/Mint/Pop OS! 20

sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main' -y
sudo add-apt-repository ppa:lutris-team/lutris -y
sudo apt update
sudo apt-get install --install-recommends winehq-staging -y
sudo apt-get install libgnutls30:i386 libldap-2.4-2:i386 libgpg-error0:i386 libxml2:i386 libasound2-plugins:i386 libsdl2-2.0-0:i386 libfreetype6:i386 libdbus-1-3:i386 libsqlite3-0:i386 -y
sudo apt-get install lutris -y

Arch-Based Distros

sudo pacman -S wine-staging giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse libgpg-error lib32-libgpg-error alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo sqlite lib32-sqlite libxcomposite lib32-libxcomposite libxinerama lib32-libgcrypt libgcrypt lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader lutris -y

ESync - Helps Game Overhead

Check to see if esync is enabled already (most distributions do by default)

ulimit -Hn

If this returns more than 500,000 than ESYNC IS ENABLED! If not, proceed with these instructions:

Change the following files and add this line to the bottom

/etc/systemd/system.conf & /etc/systemd/user.conf

/etc/systemd/system.conf
DefaultLimitNOFILE=524288
/etc/systemd/user.conf
DefaultLimitNOFILE=524288

/etc/security/limits.conf

/etc/security/limits.conf
username hard nofile 524288

IMPORTANT: Change username to your username!!!


GameMode - No CPU Throttling

GitHub Source Project: https://github.com/FeralInteractive/gamemode

Ubuntu/Debian Dependencies

apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev dbus-user-session -y

Arch Dependencies

pacman -S meson systemd git dbus -y

Build and Install GameMode

git clone https://github.com/FeralInteractive/gamemode.git
cd gamemode
git checkout 1.5.1 # omit to build the master branch
./bootstrap.sh

Uninstall GameMode

systemctl --user stop gamemoded.service
ninja uninstall -C builddir

GameMode Usage

There are multiple ways to Use GameMode


Custom Proton

The stock steam proton is rather old and behind the Wine team.

Which means there are a lot of performance tweaks and improvements that you aren’t getting yet.

It is therefore recommended that you install Custom proton which should provide a considerable improvement when gaming in Steam.

NOTE: DO NOT USE STEAM IN A FLATPAK! You will lose some performance and modifications are more difficult!

Source Project: https://github.com/GloriousEggroll/proton-ge-custom#manual

Auto-Install Project: https://github.com/Termuellinator/ProtonUpdater

For Installation, we will use the ProtonUpdater script on GitHub.

cd ~
wget https://raw.githubusercontent.com/Termuellinator/ProtonUpdater/master/cproton.sh
sudo chmod +x cproton.sh
./cproton.sh

References

https://christitus.com/ultimate-linux-gaming-guide/

https://www.reddit.com/r/linux_gaming/