GUIDA DEFINITIVA AL GAMING SU LINUX [2020]

28 luglio 2020

Una guida che permetterà a tutti gli utenti Linux di giocare sul pinguino, senza dovere rinunciare a niente.

Ads

 

#PREMESSA:

Questa guida è alla portata di praticamente tutti: chiunque abbia già Linux installato nel proprio computer ha di certo messo mano al terminale qualche volta e conosce i comandi bash di base. Verrà quindi dato per scontato come aprire un terminale e lanciare un comando assieme ad altre funzioni basilari.

Prima di iniziare questa guida assicuriamoci di star lavorando su una distribuzione recente! Ad esempio Pop!_OS 20.04 e Linux Mint 20 sono perfette per il nostro scopo; molti passaggi che vedremo potrebbero non funzionare su versioni precedenti. Per questa guida prenderemo in considerazione solo distribuzioni Debian ed Ubuntu based.

In particolare, questo articolo ci aiuterà a capire come potere giocare al massimo delle performance possibili, senza dovere perdere ore anche solo per far partire un gioco. Purtroppo non tutti i giochi sono nativamente supportati su Linux, ma molti, grazie a progetti come quello che vederemo dopo (Proton) possono essere eseguiti serenamente anche se pensati solo per sistemi Windows.

Quasi tutto ciò che troveremo si basa su progretti open-source, iniziamo!

#DRIVER VIDEO

La prima cosa da fare è pensare ai driver video, per potere avere gli ultimi e più aggiornati in circolazione, esattamente come facciamo su Windows. 

Per prima cosa attiviamo le librerie a 32-bit. Apriamo il terminale ed incolliamo questo comando (basta copiarlo e incollarlo, scrivendo ovviamente la password sudo quando richiesta)

sudo dpkg --add-architecture i386

Adesso distinguiamo i due casi, schede video Nvidia o AMD.

#NVIDIA VIDEO DRIVER (PROPRIETARI)

Questa procedura non è consigliata su distribuzioni che provedo ad aggiornare regolarmente i driver della scheda video, come ad esempio Pop!_OS. Per il resto copiamo e incolliamo nel terminale questo comando per installare gli ultimi driver LTS (long term support)

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


Potremo riscontrare problemi per versioni precedenti alla serie GTX 900, pertanto sarebbe meglio utilizzare schede video più recenti.

#AMD VIDEO DRIVER


Copiamo e incolliamo nel terminale

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


Passiamo alla fase successiva

#CUSTOM KERNEL

Utilizzare un kernel custom può dare molti vantaggi. Ne esistono svariati, ognuno con i suoi pregi e differenze. Un kernel custom può aumentare notevolmente le nostre prestazioni in gioco.

Linux gaming performance

Fonte: Phoronix

Non è mai consigliato utilizzare un solo kernel. Non cancelliamo mai quello fornito dalla distribuzione. Se dovessimo incontrare problemi lungo la strada è sempre un bene poter tornare indietro ad un kernel con cui siamo certi il nostro sistema funzioni. Potremmo incontrare alcuni software non totalmente compatibili con la nostra versione.

NOTA: Se stiamo utilizzando dei processori Ryzen 4000 mobile, è assolutamente necessario utilizzare un kernel superiore al 5.7, altrimenti andremo in contro a tremendi problemi di compatibilità con la scheda video integrata.

#XANMOD

Iniziamo installando Xanmod, qui il sito di riferimento. Per installarlo semplicemente copiamo e incolliamo nel terminale: 

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

Ci vorrà un po', una volta finito riavviamo e dalla schermata di boot (ad esempio il grub), su Advanced option, selezioniamo il kernel che abbiamo appena installato. Per controllare quale versione stiamo utilizzando sarà sufficiente scrivere nel terminale:

uname -sr


 Questa versione di custom kernel è quella che risulta essere più stabile e performante per la maggior parte delle distribuzioni Debian-Based.

ATTENZIONE: Alcune versioni di questo kernel danno problemi di incompatibilità coi Driver ufficiali Nvidia. Consigliato solo su schede AMD o integrate Intel. 

#LIQUORIX


 Se si dovessero riscontrare problemi un’altra alternativa è Liquorix, qui il sito di riferimento. Per installarlo copiamo e incolliamo nel terminale 

Prerequisiti Debian (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


Prerequisiti Ubuntu based  (PPA):

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


Infine per installare (64bit):

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

#Mainline (Debian Bleeding Edge)

Se invece non vogliamo utilizzare un custom kernel questo interessante progetto ci permettere di utilizzare su distribuzioni come Ubuntu e le sue derivate, il kernel più aggiornato di Debian

Per come utilizzarlo, si rimanda al link del progetto: ubuntu-mainline-kernel

#

Purtroppo questa stupenda funzionalità è disponibile solo per AMD. L'ACO compiler potrebbe realmente essere la chiave per il futuro del Linux Gaming. Il 3 luglio 2019 Valve ha annunciato l'ultimo Mesa ACO shader compiler per schede video AMD che utilizzano driver AMD. Nasce come sostituto del compiler "classico" LLVM. Le performance utilizzando il compiler ACO sono spesso superiori (e non di poco) anche rispetto a macchine identiche che girano su Windows. Linus Tech Tips ha trattato in un video l'argomento e qui alcuni risultati dei benchmark: 

AMD ACO compiler

Fonte: Linus Tech Tips

L'installazione non è immediata, ma è abbastanza semplice. Una volta aggiornati i driver mesa (lo abbiamo fatto prima) dobbiamo editare il file

/etc/environment


Per farlo utilizziamo l'editor che più preferiamo, ad esempio, se volessimo usare nano digitiamo 

sudo nano /etc/environment

Se invece volessimo usare vim 

sudo vim /etc/environment

Ci basterà aggiungere alla fine del nostro file questa stringa, salvare e chiudere

RADV_PERFTEST=aco


aco

Fonte: Chris Titus Tech

#

#Dipendenze di Wine e Lutris

Dando per scontato che si abbiano installati Wine e Lutris, possiamo procedere. In particolare Lutris è un launcher open-source per i nostri giochi davvero ben curato e funzionante.

Questa sezione, in realtà non è propriamente necessaria, ma alcuni giochi potrebbero necessitare di determinati pacchetti. Quindi meglio installare il necessario per non avere problemi in futuro: se non dovessero servirci, di certo non disturbano. Per installare il tutto apriamo il terminale e incolliamo. (L'installazione è stata leggermente modificata dall'originale con

-y
 
alla fine di ogni comando per evitare di dovere confermare 5 volte che vogliamo installarlo).

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

#ESYNC 

Se non sappiamo cosa è Esync possiamo trovare tutte le informazioni necessarie sulla pagina ufficiale del progetto. Sostanzialmente, andrà a ridurre i tempi di caricamento di giochi e applicazioni, rendendo il tutto più scattante e piacevole da usare. In quasi tutte le distribuzioni moderne è già preinstallato, per verificarlo apriamo il terminale e digitiamo:

ulimit -Hn

questo comando dovrebbe restituirci un numero di questo tipo 

ulimit -Hn

Se il numero che ci verrà restituito sarà superiore a 500.000 allora non dovremo fare niente, vuol dire che Esync sarà già attivo. Se così non fosse, allora dovremmo andare ad impostarlo manualmente modificando tre file aggiungendo una stringa alla fine di questi, proprio come nella sezione precedente per ACO. È molto semplice, ecco come fare:

Per i file

 /etc/systemd/system.conf
e
 /etc/systemd/user.conf 
dobbiamo aggiungere alla fine del file questa stringa 

DefaultLimitNOFILE=524288

Utilizzando come prima il nostro editor preferito, ad esempio 

sudo nano /etc/systemd/system.conf


ed anche

sudo nano /etc/systemd/user.conf

Mentre dovremo andare ad aggiungere al file

/etc/security/limits.conf
la seguente stringa 

username hard nofile 524288

utilizzando sempre 

sudo nano /etc/security/limits.conf

ATTENZIONE: sostituire

username
con il nostro username. Se ad esempio il nostro username fosse
morethantech
allora andremo a scrivere

morethantech hard nofile 524288

#GAME MODE

Questa sezione si basa sul progetto: https://github.com/FeralInteractive/gamemode

Perfettamente sia per CPU intel che per CPU AMD, GameMode è un daemon/lib combo per Linux che chiede delle specifiche ottimizzazioni al nostro hardware da applicare in maniera temporanea al gioco che stiamo utilizzando. Per vedere nel dettaglio cosa può fare, basta andare a guardare nella pagina del progetto.

Iniziamo installando le dipendenze necessaria per la nostra distribuzione Debian/Ubuntu based (quelle elencate ad inizio video andranno benissimo). Apriamo il terminale e incolliamo 

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

Adesso andiamo a installare effettivamente GameMode clonando direttamente  la repository da GitHub. Apriamo il terminale e incolliamo:

git clone https://github.com/FeralInteractive/gamemode.git

cd gamemode

git checkout 1.5.1 # omit to build the master branch

./bootstrap.sh

Adesso che è installata e perfettamente funzionante non ci resta che capire come utilizzarla. Ci sono diversi modi:

LUTRIS: Dalle impostazioni di Lutris andiamo a spuntare e attivare l'opzione GameMode. Così ogni volta che lanceremo un gioco da Lutris, la GameMode verrà attivata. Questa è la più semplice delle opzioni, non ci riechiederà di fare mai niente.

STEAM: Andiamo nelle opzioni di lancio per il gioco che vogliamo far partire e scriviamo

gamemoderun %command%

TERMINALE: Ci basta scrivere

gamemoderun ./game

ESTENSIONE GNOME: Se stiamo utilizzando Gnome come desktop environment allora possiamo scaricare e installare l'estensione che farà apparire nel pannello superiore un pulsante per attivare e disattivare la game mode. Qui l'estensione

#CUSTOM PROTON 

Questo software, rilasciato da Valve, è basato su Wine e serve per potere giocare su Linux, giochi compatibili solo su Windows. La versione standard di proton però è decisamente rimasta indietro, specialmente rispetto al lavoro fatto dal team di Wine. Questo cosa vuol dire per noi? Andremo a perdere molti dei miglioramenti già esistenti e molti tweak davvero utili. 

Per questo ci baseremo su questo un progetto open-source per potere installare una versione custom di proton. Per installare il tutto molto velocemente e semplificare il processo utilizzeremo uno script presente su GitHub.

IMPORTANTE: Se abbiamo una versione flatpack di Steam non funzionerà! Va cancellata e reinstallata.

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

Ci basterà aprire il terminale e incollare

cd ~

wget https://raw.githubusercontent.com/Termuellinator/ProtonUpdater/master/cproton.sh

sudo chmod +x cproton.sh

./cproton.sh

Ci verrà chiesto se vogliamo se vogliamo cancellare le vecchie versioni presenti. Se non abbiamo motivi particolari per cancellarle, tenerle in caso di problemi è la cosa migliore. Come ultima cosa, andiamo nel menù in alto a sinistra di steam e clicchiamo 

Steam > Settings > Steam Play 

E assicuriamoci di avere attivato le due spunte su "Enable Steam Play for supported titles" e "Enable Steam Play for all other titles"


Nei giochi dove vogliamo utilizzare la nostra versione custom di proton, clicchiamo sul titolo con il tasto destro e andiamo su proprietà. Si aprirà una finestra ed infondo sarà presente l'opzione "Force use of a specific Steam Play compatibility tool", andrà selezionata. Una volta selezionata potremo scegliere la versione che preferiamo. Come in foto:

Alcuni giochi girano meglio su versioni più vecchie di proton, quindi poter scegliere è sempre comodo. In particolare però questa ultima versione 5.9GE è davvero ben fatta.

 

Giocare su Linux è ormai possibile: è facile e spesso performa meglio che su Windows. In meno di 10 minuti seguendo questa guida possiamo configurare il nostro sistema operativo per un'esperienza di gioco ottimale. Se non siamo molto pratici con Linux e vogliamo vedere nel dettaglio come eseguire ogni passaggio, qui c'è un video di Chris Titus Tech dove durante una live da zero esegue tutti i passaggi elecanti di sopra. Per restare sempre aggiornati sui progressi del "Gaming on Linux", su questo sito vengono pubblicate tutte le più novità più recenti

 

Per molti di noi, questa potrebbe essere la svolta per eliminare la tanto fastidiosa partizione di Windows dal nostro computer. Grazie alla compatibilità dei giochi e le ottimizzazioni del sistema operativo, giocare su Linux è ormai alla portata di tutti.

 

#FONTI:

Chris Titus Tech
Linus Tech Tips
r/linux_gaming
OMG! Ubuntu!