Ottimizzazione di Linux per i giochi
introduzione
Questa guida è solo per Arch e Ubuntu. Dovrebbero funzionare anche eventuali derivati come Manjaro, Mint, PopOS, ecc.
Se la tua distribuzione non è qui, riscontri problemi o hai altre aggiunte a questa guida, lascia un commento e lo aggiungerò. Qualsiasi aiuto è più che benvenuto :)
Se non sei un utente Linux, consulta la mia altra guida su Come scegliere la distribuzione giusta, installarla e poi tornare per ottimizzarla per i giochi :)
Abilita Multilib
Multilib è richiesto da Steam, quindi se stai utilizzando Steam puoi saltare questo passaggio. Se non riesci a trovare Steam nei tuoi repository, questo è il tuo problema.
Arch Linux, Manjaro, Chakra, ecc.:
Modifica /etc/pacman.conf e decommenta la sezione multilib.
sudo nano /etc/pacman.conf
Rimuovi il # davanti a tutte le righe della sezione multilib, quindi salva ed esci con CTRL + X ed esegui
sudo pacman -Syyuu
Se stai utilizzando KDE assicurati di installare lib32-fontconfig con il seguente comando
sudo pacman -S lib32-fontconfig
Ubuntu, PopOS, Mint, Elementare, ecc.:
Aggiungi l'architettura.
sudo dpkg --add-architecture i386
Aggiorna il gestore pacchetti
sudo apt-get update
Aggiornamento a pacchetti più recenti
sudo apt-get dist-upgrade
Driver GPU
Avere i giusti driver GPU è importante, altrimenti i giochi non funzioneranno correttamente.
Se hai una GTX9xx o una versione successiva hai bisogno della versione del driver 430. Se hai una GTX 8xx o una versione inferiore hai bisogno della versione del driver 418 e se hai una GTX5xx o una versione precedente hai bisogno della versione del driver 390. Scegli la versione del driver giusta. Se hai anche una scheda più vecchia, controlla manualmente quale driver ti serve: https://www.nvidia.com/Download/index.aspx?lang=en-us
Se hai una scheda AMD ti serve solo la versione più recente.
Arch Linux, Manjaro, Chakra, ecc.:
Nvidia
Per la Nvidia più recente hai bisogno di questi pacchetti, quindi installali.
sudo pacman -S nvidia nvidia-settings nvidia-utils lib32-nvidia-utils lib32-opencl-nvidia opencl-nvidia libvdpau libxnvctrl vulkan-icd-loader lib32-vulkan-icd-loader
Per Nvidia 390 hai bisogno di questi pacchetti, quindi installali.
sudo pacman -S nvidia-390xx nvidia-390xx-settings nvidia-390xx-utils lib32-nvidia-390xx-utils lib32-opencl-nvidia-390xx opencl-nvidia-390xx libvdpau libxnvctrl-390xx vulkan-icd-loader lib32-vulkan-icd -caricatore
AMD
hai bisogno di questi pacchetti quindi installali se hai una GPU AMD
sudo pacman -S mesa lib32-mesa mesa-vdpau lib32-mesa-vdpau lib32-vulkan-radeon vulkan-radeon glu lib32-glu vulkan-icd-loader lib32-vulkan-icd-loader
Entrambi
Ora aggiorna e riavvia
sudo pacman -Syu && sudo reboot
Ubuntu, PopOS, Mint, Elementare, ecc.:
Nvidia
Per Nvidia è necessario aggiungere un repository
sudo add-apt-repository ppa:graphics-drivers/ppa && sudo apt-get upgrade
Per Nvidia 440 hai bisogno di questi pacchetti, quindi installali.
sudo apt install nvidia-graphics-drivers-440 nvidia-settings vulkan vulkan-utils
Per Nvidia 430 hai bisogno di questi pacchetti, quindi installali.
sudo apt install nvidia-graphics-drivers-430 nvidia-settings vulkan vulkan-utils
Per Nvidia 418 hai bisogno di questi pacchetti, quindi installali.
sudo apt install nvidia-graphics-drivers-418 nvidia-settings vulkan vulkan-utils
Per Nvidia 390 hai bisogno di questi pacchetti, quindi installali.
sudo apt install nvidia-graphics-drivers-390 nvidia-settings vulkan vulkan-utils
Per Nvidia 340 hai bisogno di questi pacchetti, quindi installali.
sudo apt install nvidia-graphics-drivers-340 nvidia-settings vulkan vulkan-utils
AMD
Per le GPU AMD è necessario aggiungere anche un repository
sudo add-apt-repository ppa:oibaf/graphics-drivers && sudo apt-get update && sudo apt-get upgrade
Successivamente installa i file necessari per le GPU AMD
sudo apt-get install libvulkan1 mesa-vulkan-drivers vulkan-utils
Entrambi
Ora riavvia
sudo riavviare
Se usi Gnome o GDM potresti dover disabilitare Wayland, non è sempre così, ma lo includo qui per ogni evenienza, se il tuo sistema non si riavvia puoi provare questo
sudo nano /etc/gdm/custom.conf
Rimuovi il # davanti alla riga #WaylandEnable=false e dovrebbe forzare Xorg.
kernel Linux
Installare il kernel più recente è generalmente il passaggio al kernel più semplice. Sono disponibili altri kernel, li includerò in seguito.
Per installare il kernel più recente
Arch Linux, Manjaro, Chakra, ecc.:
Questa è l'impostazione predefinita in Arch, non è necessario fare nulla, sarà presente il kernel più recente.
Ubuntu, PopOS, Mint, Elementare, ecc.:
Il modo più semplice è usare ukuu. Per prima cosa dobbiamo installarlo.
sudo add-apt-repository ppa:teejee2008/ppa && sudo apt-get update && sudo apt-get install ukuu
Ora ukuu è installato, in questo programma puoi selezionare il kernel stabile più recente, fare clic su Installa e al riavvio verrà utilizzato il nuovo kernel. Non rimuovere il vecchio kernel. Se qualcosa va storto puoi selezionare quale kernel avviare nella schermata di grub all'avvio e rimuovere il kernel che ti dà problemi.
Modalità di gioco selvaggia
Gamemode [github.com] mette tutto il tuo hardware in modalità prestazioni, risolve alcuni problemi comuni e sembra semplicemente fantastico: P
Arch Linux, Manjaro, Chakra, ecc.:
Gamemode è in AUR ed esegui i seguenti comandi per installare gamemode.
git clone https://aur.archlinux.org/gamemode.git && cd gamemode && makepkg -si && cd
stessa cosa per la modalità di gioco a 32 bit.
git clone https://aur.archlinux.org/lib32-gamemode.git && cd lib32-gamemode && makepkg -si && cd
Ubuntu, PopOS, Mint, Elementare, ecc.:
Installa le dipendenze
apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev
Clona il repository
git clone https://github.com/FeralInteractive/gamemode.git
Cambia la directory nella cartella appena scaricata
modalità di gioco su CD
Cambia l'albero nella versione più recente
git checkout 1.5.1
Esegui lo script di installazione
./bootstrap.sh
Tutte le distribuzioni incluse Arch e Ubuntu
Ora che è installato dobbiamo abilitare il servizio con questo comando
systemctl --user abilita gamemoded && systemctl --user avvia gamemoded
Per utilizzare gamemode per supertuxkart, ad esempio, esegui questo terminale
gamemoderun supertuxkart
Per usarlo su Steam, modifica l'opzione di avvio del gioco desiderato su
gamemoderun %comando%
Se gamemode non viene eseguito, prova a renderlo eseguibile:
sudo chmod +x /usr/bin/gamemoderun
Se gamemoderun non funziona, prova questo come comando di avvio:
LD_PRELOAD=$LD_PRELOAD:/usr/lib/x86_64-linux-gnu/libgamemodeauto.so.0 %comando%
Miglioramenti di Nvidia
Gli utenti Nvidia potrebbero voler abilitare tutte le opzioni elencate qui per migliorare le prestazioni nei giochi
Force Full Composition Pipeline evita lo strappo dello schermo lasciando che sia la GPU a eseguire tutto il ridimensionamento.
Triple Buffer evita rallentamenti nel gameplay. Consente un flusso di dati anziché blocchi di dati.
IndirectGLXProtocol forza il gioco a comunicare direttamente con i driver Nvidia.
Coolbits consente l'overclock della tua scheda quale modalità di gioco utilizzerà.
Arch Linux, Manjaro, Chakra, ecc.:
Crea un file di configurazione Xorg:
sudo nvidia-xconfig
Spostalo nella directory giusta:
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.d/20-nvidia.conf
Modifica il file con il seguente comando
sudo nano /etc/X11/xorg.conf.d/20-nvidia.conf
Aggiungi queste righe nella sezione "Dispositivo" tra le altre opzioni
Opzione "TripleBuffer" "on" Opzione "Coolbits" "28"
Aggiungi queste righe nella sezione "Schermo" tra le altre opzioni.
Opzione "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}" Opzione "AllowIndirectGLXProtocol" "off"
Prova questo con rischi, sicuramente causerà l'arresto anomalo di GNOME, non sono sicuro degli altri DE,
basta aggiungerlo alla fine del file
Sezione "Estensioni" Opzione "Composito" "Disabilita" EndSection
Se riscontri problemi, premi semplicemente CTRL ALT F3 per passare a un accesso tty diverso, esegui il comando per modificare nuovamente il file e metti un # davanti alle opzioni che ti danno problemi e riavvia
In alternativa puoi semplicemente rimuoverlo completamente il file con il seguente comando e riavviare
sudo rm /etc/X11/xorg.conf.d/20-nvidia.conf
Ubuntu, PopOS, Mint, Elementare, ecc.:
Crea un file di configurazione Xorg:
sudo nvidia-xconfig
Modifica il file con il seguente comando
sudo nano /etc/X11/xorg.conf
Aggiungi queste righe nella sezione "Dispositivo" tra le altre opzioni
Opzione "TripleBuffer" "on" Opzione "Coolbits" "28"
Aggiungi queste righe nella sezione "Schermo" tra le altre opzioni.
Opzione "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}" Opzione "AllowIndirectGLXProtocol" "off"
Prova questo con rischio, sicuramente causerà l'arresto anomalo di GNOME, non sono sicuro degli altri DE,
basta aggiungerlo alla fine del file
Sezione "Estensioni" Opzione "Composito" "Disabilita" EndSection
Se riscontri problemi, premi semplicemente CTRL ALT F3 per passare a un accesso tty diverso, esegui il comando per modificare nuovamente il file e metti un # davanti alle opzioni che ti danno problemi, Molto probabilmente l'ultima
In alternativa tu puoi semplicemente rimuovere completamente il file con il seguente comando
sudo rm /etc/X11/xorg.conf
Listrangolo
Libstrangle [gitlab.com] è uno strumento che ti aiuta a controllare i framerate ma anche le impostazioni vsync. Ciò è particolarmente utile per i giochi che non supportano queste funzionalità. Vorresti dimezzare il framerate per farlo funzionare meglio, risparmiare energia o semplicemente dare una pausa al tuo hardware.
Se esegui Arch sarà in AUR, per le altre distribuzioni devi eseguire i seguenti comandi
Libstrangle può essere utilizzato in molteplici modi a seconda di ciò che si desidera ottenere.
Per utilizzare libstrangle puoi semplicemente digitare strangle e quindi la quantità di frame che desideri eseguire. Di seguito sono riportati alcuni esempi, ma le funzionalità che probabilmente utilizzerai sono Vsync che usi utilizzando l'opzione -v, le regole per OpenGL e Vulkan sono diverse, ecco cosa fa ciascun numero per le diverse API.
OpenGL 0 Forzatura spegnimento, 1 Forzatura accensione, n - Sincronizzazione con frequenza di aggiornamento
Vulkan 0 Forzatura spegnimento, 1 Modalità casella di posta, 2 Sincronizzazione vsync tradizionale, 3 Sincronia vsync adattivo
Puoi anche limitare il gioco a seconda dello stato di alimentazione del tuo dispositivo, impostalo su 60 durante la ricarica e su 30 durante la scarica, ad esempio. Puoi farlo aggiungendo un secondo numero subito dopo i due punti. ad esempio, strangolare 60:30. Ci sono più funzionalità ma non sono così comunemente usate, puoi controllare il collegamento gitlab sopra o semplicemente digitare strangle -h per maggiori informazioni.
Per limitare il framerate di supertuxkart a 30 è sufficiente eseguire
strangolare 30 supertuxkart
Per forzare l'abilitazione vsync su 60 fps per un gioco OpenGL Steam, imposta l'opzione di avvio su
strangolare -v 1 60 %comando%
Per impostare il framerate di un gioco Vulcan su Steam a 120 fps ma a 60 con l'alimentazione a batteria con vsync adattivo, imposta questo come comando di avvio
strangolare -v 3 120:60 %comando%
Mangohud
Mangohud [github.com] è uno strumento di monitoraggio per le applicazioni Vulkan e OpenGL. Può mostrare l'utilizzo della CPU e della GPU, le temperature, ma anche i framerate, i frametime e molto altro. Se sei su Arch puoi trovarlo in AUR, se sei su Fedora puoi trovarlo nei tuoi repository. Per le altre distribuzioni esegui i seguenti comandi.
git clone --recurse-submodules https://github.com/flightlessmango/MangoHud.git && cd MangoHud && ./build.sh build && ./build.sh pacchetto && ./build.sh installa
Per configurarlo con una GUI puoi controllare GOverlay di seguito. Per una configurazione manuale è possibile modificare
~/.config/MangoHud/MangoHud.conf
Se vuoi esattamente la mia configurazione puoi semplicemente copiarla senza bisogno di GOverlay.
background_alpha=0.3 font_size=20 background_color=020202 text_color=ffffff position=in alto a destra no_display toggle_hud=F11 cpu_stats cpu_temp cpu_color=007AFA gpu_stats gpu_temp gpu_color=00BD00 ram ram_color=B3000A vram vram_color=00801B io_read io_write io_color=B8 4700 arch engine_color=B200B0 frame_timing= 1 frametime_color=00ff00 #output_file=/home/houtworm/mangohud_log_ #fps_limit 120 #media_player #toggle_logging=F10
Puoi modificare tutte le piccole cose che desideri qui. Puoi anche creare diverse configurazioni per gioco aggiungendo un file MangoHud.conf alla directory del gioco.
Per usarlo per qualsiasi gioco, cambia la sua opzione di avvio in
mangohud %comando%
Per usarlo con giochi non Steam, usa il seguente comando
mangohud supertuxkart
Alcuni giochi potrebbero richiedere la versione a 32 bit, prova questa se il comando normale fallisce.
mangohud.x86 %comando%
VKBasalto
VKBasalt [github.com] è un livello di post-elaborazione per Vulkan che ti consente di migliorare ulteriormente la grafica. Funziona solo con Vulkan, inclusi tutti i giochi Proton.
Se sei su Arch, sarà in AUR, cerca Basalt usando il tuo gestore pacchetti.
Se utilizzi una distribuzione diversa devi crearla manualmente.
git clone https://github.com/DadSchoorse/vkBasalt.git && cd vkBasalt && meson --buildtype=release builddir && ninja -C builddir install
Per configurarlo devi prima creare un file di configurazione. Esegui il comando seguente per copiare l'esempio in una cartella che puoi modificare come utente.
mkdir ~/.config/vkBasalt && cp /usr/share/vkBasalt/vkBasalt.conf.example ~/.config/vkBasalt/vkBasalt.conf
Puoi modificare tutte le piccole cose che desideri qui. Puoi anche creare diverse configurazioni per gioco aggiungendo un file vkBasalt.conf alla directory del gioco.
Per utilizzare VKBasalt per un gioco particolare, inseriscilo come opzione di avvio.
ENABLE_VKBASALT=1 %comando%
Puoi anche avviare giochi non Steam in questo modo digitando il seguente comando
ENABLE_VKBASALT=1 supertuxkart
GOverlay
GOverlay [github.com] è un'interfaccia utente grafica per la gestione di MangoHud e VKBasalt Se utilizzi una distribuzione basata su Arch puoi trovarla in AUR, basta installarla con il tuo gestore di pacchetti preferito. Puoi anche trovarlo nei tuoi repository se usi Fedora. Se utilizzi una distribuzione Linux diversa puoi installarla manualmente. Per prima cosa installa Lazarus e git con il tuo gestore pacchetti, dovrebbe essere nei tuoi repository e forse è già installato. Elencherò il metodo di installazione per i sistemi basati su Debian, modificherò il primo comando se utilizzi una distribuzione diversa.
sudo apt-get install lazarus git
git clone https://github.com/benjamimgois/goverlay.git
copertura del cd
lazbuild -B governala.lpi
mesa-demos e vulkan-tools sono opzionali, ti servono se vuoi mostrare le anteprime. Puoi trovarli nel repository delle tue distribuzioni
Controller Xbox One
xpad funziona alla grande, è l'impostazione predefinita sulle moderne distribuzioni Linux e supporta un'ampia gamma di controller, ma se sei come me e hai solo controller Xbox One, utilizzare xpadneo è molto meglio.
Affinché il Bluetooth funzioni con xpad e i controller Xbox One è necessario disabilitare ertm (questo non è necessario per xpadneo)
creare il file di configurazione
sudo nano /etc/modprobe.d/xbox_bt.conf
Aggiungi la seguente riga al documento, salva ed esci con CTRL + X.
opzioni bluetooth disabilita_ertm=1
xpadneo [atar-axis.github.io] supporta i controller Xbox One cablati e tramite Bluetooth, abilita il Force Feedback anche la vibrazione all'interno dei grilletti, supporta l'indicazione del livello della batteria, corregge anche la mappatura in molti giochi con cui prima non era possibile giocare un controller Xbox One su Linux.
Arch Linux, Manjaro, Chakra, ecc.:
Installa le dipendenze
sudo pacman -S dkms linux-headers bluez bluez-utils
Installa xpadneo da AUR
git clone https://aur.archlinux.org/xpadneo-dkms-git.git && cd xpadneo-dkms-git && makepkg -si
Ubuntu, PopOS, Mint, Elementare, ecc.:
Installa le dipendenze
sudo apt-get install dkms linux-headers-`uname -r`
Installa xpadneo da Github
git clone https://github.com/atar-axis/xpadneo.git && cd xpadneo && sudo ./install.sh
Ora dovresti essere in grado di riavviare e tutto dovrebbe andare bene. La vibrazione dei controller per un secondo quando sono collegati è un buon indicatore del funzionamento.
Conclusione
La tua distribuzione Linux ora dovrebbe essere ottimizzata per i giochi, buon divertimento :)
Se hai riscontrato problemi, hai suggerimenti o aggiunte o ti manca la tua distribuzione preferita, faccelo sapere e farò del mio meglio per completare questa guida .
Se non hai caratteri in Steam, esegui il seguente comando
sudo pacman -S lib32-fontconfig