Meu Arch Linux para jogos CLT com NTSYNC e Proton-CachyOS

Recentemente fiz uma instalação do Arch Linux com o objetivo de ter um sistema enxuto e responsivo, que eu possa utilizar no dia a dia e também aproveitar alguns jogos, tipos os Jogo para um CLT. :sweat_smile:

Aqui vou abordar um pouco sobre as escolhas que fiz e um breve passo a passo de como montei o ambiente:

  • Hardware: Radeon RX 580 2048SP + Ryzen 5
  • Ambiente gráfico: GNOME / Wayland
  • kernel linux-zen;
  • Steam nativa com Mesa e RADV;
  • NTSYNC com ntsync-autoload;
  • Proton-CachyOS instalado manualmente;
  • GameMode otimizar o desempenho durante os jogos;
  • MangoHud para monitorar o CPU, GPU e temperaturas.

1. Instalação e escolhas iniciais

Na instalação, optei pelo kernel linux-zen e pelo systemd-boot. Preferi manter o kernel e o initramfs separados, sem utilizar UKI (Unified Kernel Image), para manter a configuração de inicialização mais simples e evitar complexidade desnecessária.

2. Steam e drivers AMD

Habilitei o repositório multilib no arquivo /etc/pacman.conf, necessário para instalar os componentes de 32 bits utilizados pelo Steam:

[multilib]
Include = /etc/pacman.d/mirrorlist

Em seguida, atualizei o sistema e instalei a Steam nativa e os componentes gráficos necessários. No meu caso, com a Radeon RX 580 2048SP, utilizo o driver de kernel amdgpu e o RADV, implementação do Vulkan fornecida pelo Mesa.

Atenção: os pacotes do comando abaixo são específicos para placas AMD. Se você utiliza NVIDIA, não execute esse comando, consulte a documentação do Arch Linux para saber como fazer a instalação da Steam em hardware com placa da NVIDIA. :sweat_smile:

sudo pacman -Syu

sudo pacman -S --needed \
  steam \
  mesa lib32-mesa \
  vulkan-radeon lib32-vulkan-radeon \
  lib32-vulkan-icd-loader \
  vulkan-tools

Para verificar o kernel, o driver associado à placa e o funcionamento do Vulkan:

uname -r
lspci -k | grep -A 3 -E 'VGA|3D|Display'
vulkaninfo --summary

3. NTSYNC

Eu estava ansioso para experimentar o NTSYNC, um recurso disponível a partir do kernel Linux 6.14 que implementa primitivas de sincronização compatíveis com as utilizadas pelo Windows, podendo melhorar o desempenho de alguns jogos.

Primeiro, verifiquei se o módulo estava disponível e o carreguei:

modinfo ntsync
sudo modprobe ntsync

Para facilitar o carregamento automático, instalei o ntsync-autoload:

sudo pacman -S --needed ntsync-autoload

Depois da instalação, conferi se o módulo estava carregado e se o dispositivo existia:

lsmod | grep ntsync
ls -l /dev/ntsync

Caso ocorra algum problema e o modulo não estiver carregando de forma automática, também é possível configurar o carregamento manualmente, em vez de depender do pacote de automação, é possível criar o arquivo /etc/modules-load.d/ntsync.conf:

echo ntsync | sudo tee /etc/modules-load.d/ntsync.conf

Para aproveitar o NTSYNC, também é necessário utilizar uma versão do Proton compatível com o recurso. A recomendações que encontrei foram o GE-Proton e o Proton-CachyOS. Algumas versões do Proton da Steam ativam o NTSYNC automaticamente; em outras não, parece que com o Protom experimental também funciona.

Caso a documentação da versão utilizada indique a ativação manual, é possível por exemplo, testar esta opção de inicialização:

PROTON_USE_NTSYNC=1 %command%

4. Proton-CachyOS

Resolvi experimentar o Proton-CachyOS e optei pela instalação manual, por ser um processo simples que evita adicionar repositórios ao pacman ou instalar softwares extras.

A página oficial dos lançamentos é:

Baixei uma versão pré-compilada compatível com o sistema, proton-cachyos-11.0-20261014-slr-x86_64.tar.xz e extraí o arquivo para o diretório de compatibilidade do Steam.

Quando fui fazer a pasta já existia, caso não exista basta criar o diretório:

mkdir -p ~/.steam/root/compatibilitytools.d

É importante que o arquivo compatibilitytool.vdf fique diretamente dentro da pasta da ferramenta, sem uma pasta extra criada durante a extração.

A estrutura deve ficar semelhante a esta:

~/.steam/root/compatibilitytools.d/
└── proton-cachyos-.../
    ├── compatibilitytool.vdf
    ├── proton
    ├── version
    └── ...

Reiniciei o Steam, e depois, nas propriedades do jogo, acessei Compatibilidade, marquei a opção para forçar uma ferramenta específica e selecionei o Proton-CachyOS.

Obs: Como a instalação foi manual, as futuras atualizações também precisarão ser feitas dessa forma.

5. GameMode

Instalei o GameMode e a biblioteca de 32 bits:

sudo pacman -S --needed gamemode lib32-gamemode

Adicionei meu usuário ao grupo gamemode:

sudo usermod -aG gamemode "$USER"

Depois, encerrei a sessão do GNOME e entrei novamente para aplicar a nova associação ao grupo.

Conferi a associação com:

groups

Em seguida, executei o teste de diagnóstico:

gamemoded -t

Nas opções de inicialização do jogo, utilizei:

gamemoderun %command%

Com o jogo aberto, também é possível consultar o estado do serviço:

gamemoded -s

6. MangoHud

Instalei o MangoHud para acompanhar informações como FPS, frametime, temperaturas e utilização dos componentes:

sudo pacman -S --needed mangohud lib32-mangohud

Fiz uma configuração básica do Mangohud.

mkdir -p ~/.config/MangoHud
nano ~/.config/MangoHud/MangoHud.conf

Conteúdo do arquivo MangoHud.conf:

gpu_stats
gpu_temp
cpu_stats
cpu_temp

Nas opções de inicialização do jogo, para combiná-lo com o GameMode:

mangohud gamemoderun %command%

Aqui testei dessa forma:

Conclusão

Até aqui, estou gostando bastante do resultado. Espero que essas dicas ajudem de alguma forma.

E vocês, o que andam usando e testando no Linux para jogos? Têm alguma dica ou configuração que vale a pena experimentar?

Abraços! :penguin:

Sim, tenho usado o Linux para esporadicamente jogar jogos da steam e compatíveis com Linux !