Forçar DXVK para DirectX 11

Arch Linux: Volume 11

Arch Linux: Volume 11
Gaming, Wine, Automação, Performance e Troubleshooting
Bem-vindo ao volume mais completo da série definitiva de Arch Linux em português brasileiro. Neste volume, mergulhamos fundo no universo do gaming no Linux — do Steam ao Proton-GE, do Lutris ao Heroic Launcher — e expandimos o horizonte para automação avançada com cron, systemd timers e scripts Bash reais. Exploraremos monitoramento profissional, tuning de performance, e técnicas de troubleshooting sistemático que salvam sistemas em situações críticas. Se você chegou até aqui, está pronto para dominar o Arch Linux em sua totalidade.
O Estado da Arte do Gaming no Linux em 2025
O gaming no Linux passou por uma revolução silenciosa e impressionante. Em 2025, o ecossistema atingiu um patamar que poucos imaginavam possível há cinco anos. A Valve, com o sucesso massivo do Steam Deck, investiu bilhões no desenvolvimento de camadas de compatibilidade e drivers, tornando o Linux uma plataforma gaming de primeira classe. Hoje, mais de 80% dos jogos listados no Steam rodam no Linux com desempenho equivalente ou superior ao Windows, graças a tecnologias como Proton, DXVK e VKD3D-Proton.
A mudança de paradigma começou com o Proton, um fork do Wine desenvolvido e mantido pela Valve, que automatiza todo o processo de tradução de chamadas DirectX para Vulkan. Antes do Proton, configurar um jogo no Linux exigia horas de pesquisa, configuração manual de prefixes Wine, instalação de DLLs específicas e muito trial-and-error. Hoje, a maioria dos jogos simplesmente funciona com um clique. Mas o que diferencia um usuário casual de um usuário expert é entender o que acontece por baixo dos panos — e esse conhecimento é o que este volume entrega.
O anti-cheat continua sendo um desafio pontual, mas títulos como Fortnite (via EasyAntiCheat com suporte nativo), Apex Legends, e centenas de outros já têm suporte oficial ou compatibilidade via Proton. Sites como ProtonDB (protondb.com) e Are We Anti-Cheat Yet? são referências para verificar o status de cada jogo antes de comprar. O ecossistema de emulação também floresceu: RetroArch, Dolphin, RPCS3 e Yuzu (ou seus forks legais) rodam com desempenho excelente no Arch Linux.
80%
Jogos compatíveis
Dos títulos Steam funcionam no Linux via Proton em 2025
40K+
Títulos no ProtonDB
Jogos catalogados com relatórios de compatibilidade da comunidade
2M+
Steam Deck vendidos
Impulsionando investimento da Valve no gaming Linux
Steam no Arch Linux: Instalação e Multilib
A instalação do Steam no Arch Linux requer alguns passos importantes, principalmente a ativação do repositório multilib, que contém pacotes de 32 bits necessários para o Steam e muitos jogos funcionarem corretamente. O Arch Linux por padrão só ativa repositórios de 64 bits, então esse passo é fundamental e frequentemente esquecido por iniciantes.
01
Ativar o repositório multilib
Edite o arquivo /etc/pacman.conf e descomente as linhas do repositório multilib:
02
Atualizar o banco de dados de pacotes
Execute sudo pacman -Sy para sincronizar o novo repositório.
03
Instalar Steam e dependências
Execute sudo pacman -S steam lib32-nvidia-utils lib32-vulkan-icd-loader
04
Configurar o Proton nas configurações
No Steam → Configurações → Steam Play → Ativar para todos os títulos.
O arquivo /etc/pacman.conf precisa ter as seguintes linhas descomentadas (remova o # antes delas):
[multilib] Include = /etc/pacman.d/mirrorlist
Após instalar o Steam, é fundamental também instalar os drivers Vulkan de 32 bits correspondentes à sua GPU. Para NVIDIA: lib32-nvidia-utils. Para AMD: lib32-vulkan-radeon ou lib32-amdvlk. Para Intel: lib32-vulkan-intel. Sem esses pacotes, muitos jogos com Proton simplesmente não iniciam ou apresentam telas pretas.

Sempre instale os pacotes lib32 correspondentes à sua GPU. Sem eles, o Proton não consegue inicializar o ambiente Vulkan de 32 bits e jogos falharão silenciosamente.
Proton e Proton-GE: A Mágica por Trás do Gaming
O Proton é uma camada de compatibilidade desenvolvida pela Valve, baseada no Wine, que permite executar jogos Windows no Linux. Ele inclui uma versão customizada do Wine, DXVK (tradução de DirectX 9/10/11 para Vulkan), VKD3D-Proton (tradução de DirectX 12 para Vulkan), Steam Linux Runtime (um container com bibliotecas específicas) e várias correções e patches exclusivos. Tudo isso é orquestrado automaticamente quando você clica em "Jogar" no Steam.
O Proton-GE (GE = GloriousEggroll) é uma versão não-oficial do Proton, mantida pela comunidade, que inclui patches mais recentes, codecs de mídia adicionais (para cutscenes em jogos), correções para jogos específicos que ainda não chegaram ao Proton oficial, e otimizações extras de desempenho. Para instalar o Proton-GE, a maneira mais elegante é via ProtonUp-Qt:
yay -S protonup-qt
Após instalar e abrir o ProtonUp-Qt, selecione "Steam" como plataforma, clique em "Add version" e escolha a versão mais recente do Proton-GE. Após o download, reinicie o Steam e o Proton-GE aparecerá nas opções de compatibilidade de cada jogo. Para forçar o uso de uma versão específica: clique com o botão direito no jogo → Propriedades → Compatibilidade → Force the use of a specific Steam Play compatibility tool.
Proton Oficial (Valve)
  • Integrado ao Steam automaticamente
  • Atualizações regulares e estáveis
  • Testado extensivamente pela Valve
  • Melhor para a maioria dos jogos populares
  • Runtime isolado (pressão de container)
Proton-GE (GloriousEggroll)
  • Patches mais recentes e experimentais
  • Suporte a codecs de vídeo adicionais
  • Correções para jogos específicos
  • Ideal para jogos problemáticos
  • Instalação via ProtonUp-Qt ou manual

Dica prática: sempre tente o Proton oficial primeiro. Se o jogo tiver problemas, consulte o ProtonDB e tente Proton-GE. Na maioria dos casos, um dos dois funciona perfeitamente.
Variáveis de Ambiente do Proton
Uma das ferramentas mais poderosas para ajustar o comportamento do Proton são as variáveis de ambiente. Você pode defini-las nas opções de lançamento de cada jogo no Steam (clique direito → Propriedades → Opções de lançamento). Essas variáveis permitem ativar backends específicos, habilitar logs de diagnóstico, forçar versões de APIs e muito mais.
# Forçar DXVK para DirectX 11 PROTON_USE_DXVK=1 %command% # Ativar logging completo (para debug) PROTON_LOG=1 %command% # Usar VKD3D-Proton para DX12 PROTON_USE_VKD3D=1 %command% # Desativar esync (para jogos com problemas) PROTON_NO_ESYNC=1 %command% # Forçar resolução específica PROTON_SET_GAME_DRIVE=1 %command% # Combinar múltiplas variáveis DXVK_ASYNC=1 PROTON_USE_DXVK=1 gamemoderun %command%
O %command% ao final é obrigatório — ele representa o comando real de lançamento do jogo. Tudo que vem antes são variáveis de ambiente que o Proton lê na inicialização. A variável DXVK_ASYNC=1 ativa compilação assíncrona de shaders, reduzindo os famosos stutters (travamentos momentâneos) que ocorrem quando o jogo carrega novos shaders pela primeira vez.
PROTON_LOG=1
Gera log detalhado em ~/steam-proton-*.log. Essencial para diagnosticar por que um jogo não inicia.
DXVK_ASYNC=1
Compila shaders em background sem travar o jogo. Reduz drasticamente os stutters na primeira execução.
PROTON_NO_ESYNC=1
Desativa o esync (eventfd-based synchronization). Use quando jogos travam na inicialização ou ficam sem resposta.
Lutris: O Gerenciador Universal de Jogos
O Lutris é um gerenciador de jogos open source que funciona como um hub central para todas as suas plataformas de jogos no Linux. Ele suporta Steam, Epic Games, GOG, Battle.net, Origin/EA App, jogos nativos, emuladores e qualquer instalador customizado. O grande poder do Lutris está nos seus scripts de instalação — scripts comunitários que automatizam toda a configuração de Wine, instalam dependências, configuram prefixes e deixam o jogo pronto para jogar com um clique.
Para instalar o Lutris no Arch Linux:
sudo pacman -S lutris python-gobject python-pillow python-yaml # Dependências para Wine e runners sudo pacman -S wine wine-mono wine-gecko # Instalar runners adicionais (via interface do Lutris)
O Lutris usa o conceito de runners — backends de execução que podem ser Wine (para jogos Windows), Steam, MAME, RetroArch, ScummVM, DOSBox, e outros. Cada runner pode ter múltiplas versões instaladas simultaneamente, e você pode escolher qual usar para cada jogo. Isso é extremamente útil quando um jogo específico funciona melhor com uma versão específica do Wine.
Wine Runner
Executa jogos Windows com prefixes Wine customizados por jogo. Suporte a Esync e Fsync.
Steam Runner
Integra jogos Steam diretamente no Lutris. Usa o Proton automaticamente para jogos Windows.
Emuladores
RetroArch, Dolphin, PCSX2, RPCS3 e mais, todos gerenciados por uma interface única e organizada.
Scripts Comunitários
Milhares de instaladores automáticos criados pela comunidade em lutris.net para jogos populares.
Heroic Launcher: Epic Games e GOG no Linux
O Heroic Games Launcher é um cliente open source para as lojas Epic Games Store e GOG no Linux. Ele oferece uma interface gráfica elegante, integração com Proton e Wine, suporte a nuvem de saves, e é ativamente mantido pela comunidade. Para muitos usuários do Linux, o Heroic é a alternativa definitiva ao cliente oficial da Epic (que não existe no Linux).
# Instalar via AUR yay -S heroic-games-launcher-bin # Ou via Flatpak (recomendado para mais compatibilidade) flatpak install flathub com.heroicgameslauncher.hgl
Após instalar, configure o Heroic com sua conta Epic Games ou GOG. Nas configurações globais, você pode definir o Wine/Proton padrão — recomendamos apontar para uma versão do Proton-GE instalada via ProtonUp-Qt. Cada jogo também pode ter suas configurações individuais de runtime, variáveis de ambiente e prefixes Wine separados.

O Heroic suporta instalação automática de DXVK, VKD3D e outras dependências via interface gráfica. Não é necessário configurar manualmente — basta ativar nas configurações do jogo.
Uma funcionalidade valiosa do Heroic é o suporte a Wine prefixes por jogo. Cada jogo tem seu próprio diretório Wine isolado (geralmente em ~/.wine/heroic/prefixes/NomeDoJogo), evitando conflitos entre diferentes jogos que podem precisar de versões diferentes de DLLs ou configurações do registro Windows. Isso imita exatamente o comportamento do Proton no Steam.
Bottles: Wine para Usuários Modernos
O Bottles é uma aplicação GTK4 que oferece uma abordagem moderna para gerenciar ambientes Wine. O conceito central são os "bottles" (garrafas) — cada bottle é um prefixe Wine completamente isolado, com sua própria versão de Wine, DLLs, configurações de registro e lista de programas instalados. É a solução ideal para quem precisa rodar aplicativos Windows no Linux de forma organizada e sem conflitos.
# Instalar via Flatpak (maneira recomendada) flatpak install flathub com.usebottles.bottles # Ou via AUR yay -S bottles
Ao criar um novo bottle, você escolhe um "ambiente": Gaming (otimizado para jogos, inclui DXVK automaticamente), Application (para software Windows comum) ou Custom (configuração manual). O Bottles então faz o download e configura tudo automaticamente. Você pode instalar runners adicionais (versões de Wine/Proton) diretamente pela interface, sem precisar do terminal.
🎮 Gaming
Pré-configurado com DXVK, VKD3D, Esync. Ideal para jogos Windows que não estão no Steam.
💼 Application
Ambiente limpo para software Windows. Microsoft Office, Adobe, ferramentas corporativas.
⚙️ Custom
Controle total. Escolha manualmente cada componente, runner, e configuração do prefixe.
Wine Avançado: Prefixes, Winetricks e DLLs
Mesmo com ferramentas gráficas como Lutris e Bottles, entender o Wine diretamente é fundamental para diagnosticar problemas e configurar casos complexos. O Wine funciona criando um prefixe — um diretório que simula uma instalação Windows completa, com estrutura de pastas C:\, registro, e bibliotecas DLL. Por padrão, o prefixe fica em ~/.wine.
# Criar um novo prefixe Wine de 64 bits WINEPREFIX=~/.wine_meu_jogo winecfg # Criar prefixe de 32 bits (necessário para alguns jogos antigos) WINEPREFIX=~/.wine32_meu_jogo WINEARCH=win32 winecfg # Instalar um executável em um prefixe específico WINEPREFIX=~/.wine_meu_jogo wine /caminho/para/setup.exe # Rodar winecfg no prefixe para configurar WINEPREFIX=~/.wine_meu_jogo winecfg
O Winetricks é uma ferramenta essencial que automatiza a instalação de componentes Windows dentro de um prefixe Wine, como runtimes do Visual C++, DirectX, .NET Framework, fontes Microsoft, e centenas de outras dependências que jogos e aplicativos Windows exigem. Sem Winetricks, você teria que instalar cada componente manualmente.
# Instalar Winetricks sudo pacman -S winetricks # Instalar componentes comuns necessários para jogos WINEPREFIX=~/.wine_meu_jogo winetricks vcrun2019 vcrun2022 d3dx9 dxvk # Abrir interface gráfica do Winetricks WINEPREFIX=~/.wine_meu_jogo winetricks --gui # Componentes mais comuns para jogos Windows: # vcrun2019 - Visual C++ 2019 Runtime # dotnet48 - .NET Framework 4.8 # d3dx9_43 - DirectX 9 (apenas para Wine sem DXVK) # xact - Microsoft XACT (áudio em muitos jogos) # corefonts - Fontes Microsoft básicas

Com Proton/DXVK, você raramente precisa instalar d3dx9 manualmente — o DXVK já implementa o DirectX 9/10/11 via Vulkan nativamente. Use winetricks principalmente para runtimes de C++ e .NET.
Drivers GPU para Gaming: NVIDIA, AMD e Intel
A escolha e configuração correta dos drivers de GPU é um dos fatores mais críticos para o gaming no Linux. Cada fabricante tem suas especificidades, e uma instalação incorreta pode resultar em jogos que não iniciam, telas pretas, ou desempenho muito inferior ao esperado. Vamos cobrir as três principais GPUs.
NVIDIA Proprietário
Instale nvidia nvidia-utils lib32-nvidia-utils. Use o driver proprietário para máximo desempenho. O driver open-source nouveau tem desempenho muito inferior para gaming.
AMD (AMDGPU)
O driver amdgpu é open-source e incluído no kernel. Instale vulkan-radeon lib32-vulkan-radeon mesa lib32-mesa para suporte completo a Vulkan e OpenGL.
Intel Arc/Integrado
Instale vulkan-intel lib32-vulkan-intel intel-media-driver. Para GPUs Arc dedicadas, use também intel-compute-runtime para suporte a OpenCL/compute.
# Instalação completa para NVIDIA (substitua pelos seus pacotes) sudo pacman -S nvidia nvidia-utils lib32-nvidia-utils nvidia-settings # Verificar que o Vulkan está funcionando vulkaninfo --summary # Verificar drivers carregados lspci -k | grep -A 3 VGA
DXVK e VKD3D-Proton
O DXVK (DirectX to Vulkan) é uma das tecnologias mais importantes do gaming no Linux. Ele implementa as APIs DirectX 9, 10 e 11 usando Vulkan como backend, resultando em performance significativamente melhor que a implementação nativa do Wine (que usa OpenGL). O VKD3D-Proton faz o mesmo para DirectX 12.
# Instalar DXVK standalone (para uso com Wine puro) sudo pacman -S dxvk-bin # Via AUR com yay # OU instalar manualmente no prefixe: WINEPREFIX=~/.wine_meu_jogo setup_dxvk.sh install # Verificar se DXVK está ativo em um jogo DXVK_HUD=1 wine jogo.exe # Mostra overlay com info do DXVK # Configurar nível de log do DXVK DXVK_LOG_LEVEL=info wine jogo.exe # none, error, warn, info, debug # Cache de shaders DXVK (melhora performance em sessões subsequentes) DXVK_STATE_CACHE=1 %command% # No Steam
O cache de shaders DXVK merece atenção especial. Na primeira vez que você roda um jogo com DXVK, ele compila shaders e os armazena em cache. Nas próximas execuções, esse cache é reutilizado, eliminando os travamentos de compilação. O Steam pré-carrega shaders para jogos populares (por isso o download de "shader pre-compilation" que você vê no Steam). Nunca delete a pasta de cache do Steam sem necessidade.
Este fluxo de tradução é o que permite que jogos Windows rodem no Linux com performance comparável ou superior à nativa no Windows, graças à eficiência do Vulkan comparado ao overhead do OpenGL.
GameMode e MangoHud: Performance e Monitoramento
O GameMode é uma ferramenta desenvolvida pela Feral Interactive que otimiza automaticamente o sistema Linux quando um jogo está rodando. Ele ajusta o governor de CPU para "performance", aumenta a prioridade do processo do jogo, otimiza parâmetros de I/O, e pode executar scripts customizados no início e fim de cada sessão de gaming. É uma das ferramentas mais simples e eficazes para melhorar a experiência de gaming.
# Instalar GameMode sudo pacman -S gamemode lib32-gamemode # Ativar no Steam: adicione às opções de lançamento gamemoderun %command% # Verificar se está ativo gamemoded -s # Saída esperada: "gamemoded is active, current clients: 1" # Configurar GameMode (arquivo de config) sudo nano /etc/gamemode.ini
O MangoHud é um overlay de monitoramento que exibe em tempo real — enquanto você joga — informações como FPS, frametime, uso de GPU/CPU, temperatura, frequência, uso de VRAM e RAM, e muito mais. É indispensável para diagnosticar problemas de desempenho e ver o impacto real de cada otimização aplicada.
# Instalar MangoHud sudo pacman -S mangohud lib32-mangohud # Ativar no Steam (combinando com gamemoderun) MANGOHUD=1 gamemoderun %command% # Configuração do MangoHud mkdir -p ~/.config/MangoHud nano ~/.config/MangoHud/MangoHud.conf # Exemplo de config mínima: fps gpu_stats cpu_stats ram vram frametime temperature

Combine GameMode + MangoHud + DXVK_ASYNC para uma experiência de gaming altamente otimizada. Sua linha de opções de lançamento no Steam ficaria: MANGOHUD=1 DXVK_ASYNC=1 gamemoderun %command%
Controladores e Joystick no Linux
O suporte a controladores no Linux é excelente e, na maioria dos casos, plug-and-play. Controles Xbox (wired e wireless via adaptador USB), PlayStation (DualShock 4, DualSense), e controladores genéricos USB/Bluetooth funcionam nativamente com o kernel Linux. Controladores gamepad são expostos via a API de input do kernel e acessíveis via SDL2, que é usada pela grande maioria dos jogos.
# Verificar controladores conectados ls /dev/input/js* # Joystick clássico ls /dev/input/event* # Dispositivos de input modernos # Instalar ferramentas de diagnóstico sudo pacman -S jstest-gtk gamepad # Testar controle via terminal jstest /dev/input/js0 # Para controles Xbox via Bluetooth (driver xpadneo) yay -S xpadneo-dkms # Para DualSense PS5 com recursos avançados (haptia/adaptive triggers) yay -S dualsensectl
Xbox Wired/USB
Funciona nativo via módulo xpad do kernel. Zero configuração necessária.
Xbox Bluetooth
Use xpadneo-dkms via AUR para suporte completo a vibração e Bluetooth.
DualShock 4 / DualSense
Suporte nativo no kernel moderno. DualSense tem suporte a háptico via dualsensectl.
Switch Pro / Joy-Cons
Driver hid-nintendo incluído no kernel 5.16+. Instale joycond para Joy-Cons.
Para mapear botões de forma customizada, a ferramenta AntiMicroX é excelente — permite mapear botões do controle para teclas de teclado/mouse, útil para jogos que não suportam controles nativamente.
Anti-Cheat no Linux: Estado Atual 2025
O anti-cheat é historicamente o maior obstáculo para o gaming no Linux. Sistemas como BattlEye e EasyAntiCheat (EAC) originalmente bloqueavam jogadores Linux, mas a situação mudou significativamente. Com o sucesso do Steam Deck (que roda Linux), a Valve pressionou desenvolvedores a ativarem suporte Linux nos seus sistemas anti-cheat, e muitos o fizeram.
EasyAntiCheat (EAC)
Suporte Linux ativado pela Epic. Jogos precisam optar explicitamente. Fortnite, Rust, Apex (parcial) funcionam.
BattlEye
Suporte Linux disponível. Jogos como DayZ, PUBG, Rainbow Six funcionam. Depende de cada desenvolvedor ativar.
Vanguard (Riot)
Valorant ainda não suporta Linux oficialmente. O kernel-level driver do Vanguard é incompatível com sistemas Linux.
nProtect GameGuard
Maior incompatibilidade atual. Jogos coreanos com GameGuard (Aion, Ragnarok) geralmente não funcionam.
O site Are We Anti-Cheat Yet? (areweanticheatyet.com) mantém um banco de dados atualizado com o status de compatibilidade anti-cheat de centenas de jogos. É a primeira referência a consultar antes de comprar um jogo com intenção de jogar no Linux. Verifique sempre antes de comprar.
Streaming com OBS Studio
O OBS Studio (Open Broadcaster Software) é o software de streaming e gravação de tela mais popular do mundo, e tem suporte nativo excelente no Linux. No Arch Linux, você pode usar o OBS com captura de tela via PipeWire (o moderno servidor de áudio/vídeo do Linux), que oferece captura de janelas e telas individuais sem necessidade de ser root.
# Instalar OBS Studio e plugins essenciais sudo pacman -S obs-studio # Plugins importantes via AUR yay -S obs-vkcapture # Captura de jogos Vulkan/OpenGL direta yay -S obs-pipewire-audio-capture # Captura de áudio por aplicação # Para captura de tela moderna (Wayland/X11) sudo pacman -S xdg-desktop-portal-gtk # ou portal do seu DE # Ativar captura de jogos Vulkan (sem impacto de performance) # Nas opções de lançamento do jogo no Steam: OBS_VKCAPTURE=1 %command%
A grande vantagem do obs-vkcapture é que ele injeta uma layer Vulkan diretamente no jogo, capturando o frame buffer antes de ser enviado para a tela. Isso resulta em captura de altíssima qualidade sem o overhead da captura de tela do sistema. Diferente do Windows (onde o Game Capture funciona de forma semelhante), no Linux esta solução é ainda mais elegante por funcionar tanto em X11 quanto em Wayland.
01
Instalar OBS + obs-vkcapture
Instale via pacman e AUR. Configure a cena com uma "Game Capture" source.
02
Configurar áudio com PipeWire
No OBS, adicione "Application Audio Capture" para capturar áudio do jogo separadamente.
03
Adicionar OBS_VKCAPTURE=1 ao jogo
Nas opções de lançamento do Steam, ative a variável para captura direta de frames.
04
Configurar encoder de hardware
Use NVENC (NVIDIA), VA-API (AMD/Intel) para encoding acelerado por hardware sem impacto de CPU.
Game Streaming com Sunshine e Moonlight
O Sunshine é um servidor de game streaming open source compatível com o protocolo NVIDIA GameStream. Ele permite que você transmita jogos do seu PC Linux para qualquer dispositivo na rede (ou pela internet) com baixíssima latência. O Moonlight é o cliente correspondente, disponível para Android, iOS, Windows, Raspberry Pi, Smart TVs e outros dispositivos Linux. Juntos, formam uma solução de streaming de jogos completamente open source e gratuita.
# Instalar Sunshine (servidor no Arch Linux) yay -S sunshine # Iniciar o Sunshine (interface web em localhost:47990) sunshine # Adicionar ao systemd para iniciar automaticamente systemctl --user enable --now sunshine # Configurar firewall (se usar ufw) sudo ufw allow 47984/tcp # HTTPS sudo ufw allow 47989/tcp # HTTP sudo ufw allow 48010/tcp # RTSP sudo ufw allow 47998:48000/udp # Video/Audio/Control
A latência do Sunshine/Moonlight numa rede local gigabit é tipicamente de 5-15ms — completamente imperceptível para a maioria dos jogos. Para streaming pela internet, a latência aumenta, mas a qualidade de vídeo ainda é excelente graças ao encoding H.264/HEVC/AV1 com aceleração de hardware. Configure o encoder nas configurações do Sunshine para usar NVENC, VA-API ou VAAPI conforme sua GPU.

Sunshine substitui completamente o NVIDIA GameStream (descontinuado pela NVIDIA em 2023) e funciona com qualquer GPU, não apenas NVIDIA. É a solução recomendada para streaming de jogos no Linux.
Emulação: RetroArch
O RetroArch é um frontend para emuladores que usa uma arquitetura de plugins chamados cores. Cada core é um emulador específico (ou uma variante de emulador) que implementa um sistema de videogame. Com um único programa, você emula NES, SNES, Mega Drive, PlayStation 1, Nintendo 64, Game Boy, e dezenas de outros sistemas. O RetroArch também oferece shaders de pós-processamento, rewind, netplay e save states.
# Instalar RetroArch sudo pacman -S retroarch retroarch-assets-xmb # Instalar cores (emuladores) via RetroArch # Abra RetroArch → Online Updater → Core Downloader # Ou instale cores individualmente via AUR: yay -S libretro-mesen # NES de alta precisão yay -S libretro-bsnes # SNES de alta precisão yay -S libretro-mupen64plus-next # Nintendo 64 yay -S libretro-pcsx-rearmed # PlayStation 1 yay -S libretro-snes9x # SNES rápido e compatível
A estrutura de arquivos do RetroArch segue um padrão organizado. Suas ROMs devem ser organizadas por sistema em pastas separadas, e você configura o diretório principal nas configurações. O RetroArch também suporta scanning de ROMs — ele verifica checksums das ROMs contra um banco de dados e cria uma biblioteca organizada automaticamente, similar ao Steam para jogos retrô.

ROMs devem ser de games que você possui legalmente. A emulação em si é legal; baixar ROMs de jogos que você não possui pode violar direitos autorais. Muitos jogos retrô estão disponíveis legalmente via sites como Internet Archive ou vendidos em plataformas como GOG.
Emulação: Dolphin, RPCS3 e Além
Para sistemas mais modernos, emuladores dedicados oferecem qualidade de emulação superior ao RetroArch para plataformas específicas. Os dois mais importantes são o Dolphin (GameCube/Wii) e o RPCS3 (PlayStation 3).
Dolphin (GameCube/Wii)
O melhor emulador de GameCube e Wii do mundo. Suporta upscaling até 4K, anti-aliasing, save states, netplay e controles customizados. No Arch: sudo pacman -S dolphin-emu. Recomenda-se usar a versão "Development" para melhor compatibilidade.
RPCS3 (PlayStation 3)
Emulador de PS3 de alta compatibilidade. Muitos jogos rodam em 60fps com upscaling. No Arch: yay -S rpcs3-bin. Requer CPU forte (6+ cores recomendados) pois o Cell do PS3 é arquitetura complexa.
PCSX2 (PlayStation 2)
Emulador de PS2 maduro e muito compatível. Versão Qt moderna no Arch: sudo pacman -S pcsx2. Upscaling até 8K, filtros de textura, widescreen patches automáticos.
Ryujinx (Nintendo Switch)
Emulador de Switch open source e legal. Boa compatibilidade com muitos títulos. No Arch: yay -S ryujinx. Requer firmware e chaves do Switch (obtidas do seu console).
Capítulo 2
Automação com Cron: Sintaxe Completa
O cron é o agendador de tarefas clássico do Unix/Linux, presente há décadas e ainda extremamente útil. Ele permite executar comandos ou scripts em horários específicos de forma completamente automática. No Arch Linux, o daemon cronie é a implementação recomendada do cron. A configuração é feita via crontab — arquivos de texto com uma sintaxe específica que define quando e o quê executar.
# Instalar cronie sudo pacman -S cronie # Habilitar e iniciar o serviço sudo systemctl enable --now crond # Editar seu crontab pessoal crontab -e # Abre editor (usa $EDITOR) # Listar crontab atual crontab -l # Crontab do sistema (para root) sudo crontab -e
A sintaxe de uma linha de crontab tem 6 campos:
# Formato: # ┌───────────── minuto (0-59) # │ ┌─────────── hora (0-23) # │ │ ┌───────── dia do mês (1-31) # │ │ │ ┌─────── mês (1-12 ou jan,feb,mar...) # │ │ │ │ ┌───── dia da semana (0-7, onde 0 e 7=domingo) # │ │ │ │ │ # * * * * * comando_a_executar # Caracteres especiais: # * = qualquer valor (todos) # , = lista de valores (1,3,5) # - = intervalo (1-5) # / = passo (*/5 = a cada 5) # @reboot = na inicialização do sistema
Cron: Exemplos Práticos Reais
Nada melhor do que exemplos concretos para fixar a sintaxe do cron. Abaixo, uma coleção de tarefas úteis que você pode usar diretamente ou adaptar para suas necessidades.
# Backup diário às 2h da manhã 0 2 * * * /home/usuario/scripts/backup.sh # Limpar cache do pacman todo domingo às 3h 0 3 * * 0 sudo paccache -r # Sincronizar dotfiles com git todo dia às 23h55 55 23 * * * cd ~/.dotfiles && git add -A && git commit -m "auto: sync $(date)" && git push # Atualizar banco de dados do updatedb a cada 6 horas 0 */6 * * * updatedb # Reiniciar serviço a cada hora se estiver parado 0 * * * * systemctl is-active --quiet meu-servico || systemctl restart meu-servico # Relatório semanal de uso de disco (toda segunda às 8h) 0 8 * * 1 df -h | mail -s "Disk Report $(hostname)" usuario@email.com # Log de temperatura da CPU a cada 5 minutos */5 * * * * sensors | grep "Core 0" >> /var/log/cpu_temp.log # Executar na inicialização do sistema @reboot /home/usuario/scripts/startup.sh # Executar uma vez por ano (1 de janeiro às 0h) 0 0 1 1 * /home/usuario/scripts/happy_new_year.sh

Por padrão, o cron não carrega variáveis de ambiente do usuário como PATH. Sempre use caminhos absolutos nos seus scripts cron, ou defina PATH explicitamente no início do crontab: adicione PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin no topo do arquivo.
Systemd Timers: O Cron Moderno
Os systemd timers são a alternativa moderna ao cron no ecossistema systemd. Eles oferecem vantagens importantes: integração com o journal do systemd (logs automáticos), capacidade de depender de outros serviços, precisão de microssegundos, e a possibilidade de executar tarefas que "perdeu" o horário quando o sistema estava desligado (catch-up). Para criar um timer systemd, você precisa de dois arquivos: um .service (o que fazer) e um .timer (quando fazer).
# Estrutura básica de um timer systemd para usuário # Arquivo 1: ~/.config/systemd/user/backup.service [Unit] Description=Backup diário dos documentos [Service] Type=oneshot ExecStart=/home/usuario/scripts/backup.sh # Arquivo 2: ~/.config/systemd/user/backup.timer [Unit] Description=Timer para backup diário Requires=backup.service [Timer] OnCalendar=*-*-* 02:00:00 Persistent=true [Install] WantedBy=timers.target
# Ativar e iniciar o timer systemctl --user daemon-reload systemctl --user enable --now backup.timer # Verificar status do timer systemctl --user list-timers --all systemctl --user status backup.timer
A diretiva Persistent=true é muito útil: ela garante que se o timer "perdeu" o horário de execução (porque o PC estava desligado), ele executará imediatamente na próxima vez que o sistema iniciar. Isso é ideal para tarefas como backup, que não devem ser puladas silenciosamente.
Sintaxe OnCalendar do Systemd
A diretiva OnCalendar do systemd tem uma sintaxe muito flexível e poderosa. Ela suporta notações por nome do dia, expressões de intervalo, e muito mais. Entender essa sintaxe é essencial para criar timers precisos.
# Formato completo: DiaDaSemana Ano-Mês-Dia Hora:Minuto:Segundo # Exemplos fundamentais: OnCalendar=daily # Todo dia à meia-noite OnCalendar=weekly # Todo domingo à meia-noite OnCalendar=monthly # Primeiro dia do mês à meia-noite OnCalendar=hourly # A cada hora (no minuto 0) OnCalendar=minutely # A cada minuto OnCalendar=annually # Uma vez por ano (1 de janeiro) # Exemplos com horário específico: OnCalendar=*-*-* 02:30:00 # Todo dia às 2h30 OnCalendar=Mon *-*-* 09:00 # Toda segunda às 9h OnCalendar=Mon..Fri 08:00 # Dias úteis às 8h OnCalendar=Sat,Sun 10:00 # Fins de semana às 10h # Intervalos: OnCalendar=*:0/15 # A cada 15 minutos OnCalendar=*-*-1/2 00:00 # A cada 2 dias, às meia-noite OnCalendar=*-*/3-1 00:00 # Primeiro de cada trimestre # Verificar quando o próximo disparo ocorrerá: systemd-analyze calendar "Mon..Fri 08:00"

O comando systemd-analyze calendar "expressão" é extremamente útil para verificar se sua expressão OnCalendar está correta antes de ativar o timer. Ele mostra a próxima data/hora de execução e as próximas iterações.
Scripts Bash de Automação: Backup Inteligente
Scripts Bash são a cola que une automação, monitoramento e manutenção do sistema. Um bom script de automação deve ser idempotente (pode ser rodado múltiplas vezes sem efeitos colaterais), ter tratamento de erros adequado, logging, e verificações de pré-condição. Vejamos um script de backup robusto e real:
#!/bin/bash # backup.sh - Script de backup incremental com rotação set -euo pipefail # Para em erros, variáveis não definidas, falhas em pipes # Configuração ORIGEM="$HOME/Documentos" DESTINO="/mnt/backup/$(hostname)" LOG="/var/log/backup.log" RETENCAO=30 # dias para manter backups DATA=$(date +%Y-%m-%d_%H-%M-%S) # Função de log log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOG" } # Verificações de pré-condição verificar_prereqs() { command -v rsync >/dev/null 2>&1 || { log "ERRO: rsync não instalado"; exit 1; } [[ -d "$ORIGEM" ]] || { log "ERRO: Origem $ORIGEM não existe"; exit 1; } [[ -d "$DESTINO" ]] || mkdir -p "$DESTINO" } # Backup incremental com rsync fazer_backup() { log "Iniciando backup de $ORIGEM para $DESTINO/$DATA" rsync -avz --delete \ --backup --backup-dir="$DESTINO/historico/$DATA" \ --exclude='.cache' \ --exclude='node_modules' \ --exclude='*.tmp' \ "$ORIGEM/" "$DESTINO/atual/" log "Backup concluído com sucesso" } # Limpar backups antigos limpar_antigos() { log "Removendo backups com mais de $RETENCAO dias" find "$DESTINO/historico" -maxdepth 1 -type d \ -mtime "+$RETENCAO" -exec rm -rf {} \; log "Limpeza concluída" } # Execução principal verificar_prereqs fazer_backup limpar_antigos log "=== Backup finalizado ==="
Scripts Bash: Manutenção do Sistema Arch
#!/bin/bash # manutencao_arch.sh - Rotina completa de manutenção do Arch Linux set -euo pipefail CORES='\033[0;32m' AMARELO='\033[1;33m' VERMELHO='\033[0;31m' SEM_COR='\033[0m' info() { echo -e "${CORES}[INFO]${SEM_COR} $*"; } aviso() { echo -e "${AMARELO}[AVISO]${SEM_COR} $*"; } erro() { echo -e "${VERMELHO}[ERRO]${SEM_COR} $*" >&2; } # 1. Atualizar sistema info "Atualizando sistema..." sudo pacman -Syu --noconfirm # 2. Atualizar pacotes AUR if command -v yay &>/dev/null; then info "Atualizando pacotes AUR..." yay -Sua --noconfirm fi # 3. Limpar cache do pacman (manter 2 versões) info "Limpando cache do pacman..." sudo paccache -rk2 sudo paccache -ruk0 # Remover versões de pacotes desinstalados # 4. Remover pacotes órfãos ORFAOS=$(pacman -Qdtq 2>/dev/null || true) if [[ -n "$ORFAOS" ]]; then aviso "Pacotes órfãos encontrados:" echo "$ORFAOS" sudo pacman -Rns $ORFAOS --noconfirm else info "Nenhum pacote órfão encontrado." fi # 5. Verificar arquivos .pacnew e .pacsave NOVOS=$(find /etc -name "*.pacnew" 2>/dev/null | wc -l) [[ $NOVOS -gt 0 ]] && aviso "$NOVOS arquivos .pacnew aguardam revisão!" # 6. Relatório final info "=== Manutenção concluída em $(date) ==="

Salve este script em ~/scripts/manutencao_arch.sh, torne-o executável com chmod +x ~/scripts/manutencao_arch.sh e configure um timer systemd para rodá-lo semanalmente.
Ansible Básico para Arch Linux
O Ansible é uma ferramenta de automação de infraestrutura que permite descrever o estado desejado do seu sistema em arquivos YAML chamados playbooks. Ao contrário de scripts Bash que executam comandos imperativos, o Ansible é declarativo — você descreve o que quer, não como fazer. Ele é idempotente por natureza: rodar um playbook múltiplas vezes sempre resulta no mesmo estado final.
# Instalar Ansible sudo pacman -S ansible # Verificar instalação ansible --version # Para gerenciar a própria máquina (localhost), crie um inventário: echo "localhost ansible_connection=local" > ~/ansible/inventory # Testar conexão ansible localhost -i ~/ansible/inventory -m ping
Um playbook básico para configurar um Arch Linux fresh install:
--- # ~/ansible/playbooks/arch_setup.yml - name: Configurar Arch Linux hosts: localhost become: yes # Executar como sudo quando necessário tasks: - name: Atualizar sistema community.general.pacman: update_cache: yes upgrade: yes - name: Instalar pacotes essenciais community.general.pacman: name: - git - vim - htop - tmux - zsh - bat - ripgrep - fd state: present - name: Garantir que serviços essenciais estão ativos systemd: name: "{{ item }}" state: started enabled: yes loop: - NetworkManager - bluetooth # Executar o playbook: ansible-playbook -i ~/ansible/inventory ~/ansible/playbooks/arch_setup.yml
Gerenciamento de Dotfiles: Chezmoi
Dotfiles são os arquivos de configuração do seu ambiente Linux — .bashrc, .vimrc, .config/nvim/, .ssh/config, e centenas de outros. Gerenciá-los corretamente permite recriar seu ambiente personalizado em qualquer máquina nova em minutos. O chezmoi é a ferramenta mais sofisticada e segura para isso, suportando templates, segredos criptografados, e diferenciação por máquina.
# Instalar chezmoi sudo pacman -S chezmoi # Inicializar repositório (cria ~/.local/share/chezmoi) chezmoi init # Adicionar um dotfile ao gerenciamento chezmoi add ~/.bashrc chezmoi add ~/.vimrc chezmoi add ~/.config/nvim/ # Ver quais arquivos estão gerenciados chezmoi managed # Ver diferenças entre o gerenciado e o atual chezmoi diff # Aplicar todas as configurações gerenciadas chezmoi apply # Editar um arquivo gerenciado (no source) chezmoi edit ~/.bashrc # Fazer commit das mudanças chezmoi cd # Entra no diretório source git add -A && git commit -m "Update bashrc" git push # Em uma nova máquina, restaurar tudo: chezmoi init --apply https://github.com/usuario/dotfiles
O grande diferencial do chezmoi são os templates. Você pode ter configurações diferentes para máquinas diferentes no mesmo dotfile, usando a sintaxe de template Go. Por exemplo, configurações de proxy só em máquinas de trabalho, ou temas de terminal diferentes em cada sistema.
Gerenciamento de Dotfiles: GNU Stow e YADM
GNU Stow
Abordagem de symlinks: cria um repositório com a mesma estrutura de diretórios do $HOME e usa stow para criar symlinks automaticamente. Muito simples e sem dependências além do próprio stow.
sudo pacman -S stow # Estrutura do repositório: ~/.dotfiles/ bash/.bashrc vim/.vimrc nvim/.config/nvim/ # Aplicar com stow: cd ~/.dotfiles stow bash # Cria ~/.bashrc stow vim # Cria ~/.vimrc stow nvim # Cria ~/.config/nvim
YADM (Yet Another Dotfiles Manager)
Usa o próprio Git diretamente no $HOME, sem symlinks. Mais simples que chezmoi, suporta templates básicos e hooks. Ideal para quem quer algo entre "git puro" e chezmoi.
yay -S yadm # Inicializar yadm init yadm add ~/.bashrc ~/.vimrc yadm commit -m "Initial dotfiles" yadm remote add origin URL yadm push -u origin main # Clonar em nova máquina: yadm clone https://github.com/user/dotfiles

Recomendação: use chezmoi para ambientes complexos com múltiplas máquinas e necessidade de segredos; GNU Stow para simplicidade máxima; YADM para um meio-termo com interface similar ao Git.
Capítulo 3
Monitoramento do Sistema: htop, btop e nvtop
Monitorar o sistema em tempo real é fundamental para identificar gargalos, detectar processos problemáticos e entender o comportamento do seu Arch Linux. O Linux oferece uma rica variedade de ferramentas de monitoramento, desde as clássicas baseadas em texto até dashboards web completos. Vamos explorar as melhores ferramentas para cada necessidade.
htop
O clássico monitor de processos interativo. Mostra uso de CPU por core, memória, swap, processos com tree view. Navegue com setas, pressione F6 para ordenar, F9 para matar processos. sudo pacman -S htop
btop
A evolução moderna do htop. Interface colorida com gráficos de uso histórico, monitoramento de rede e disco, temas customizáveis. Extremamente informativo e bonito. sudo pacman -S btop
nvtop
Monitor de GPU em tempo real, similar ao htop mas para placa de vídeo. Mostra uso de GPU, VRAM, temperatura, frequência e processos usando a GPU. sudo pacman -S nvtop
iotop
Monitor de I/O de disco por processo. Identifica qual processo está causando alta atividade de disco. Precisa de root: sudo iotop. Pacote: sudo pacman -S iotop
Glances e Netdata: Monitoramento Avançado
# Instalar Glances (monitor all-in-one) sudo pacman -S glances # Usar Glances em modo texto glances # Modo servidor web (acesse em http://localhost:61208) glances -w # Monitorar servidor remoto glances --client IP_DO_SERVIDOR # Instalar Netdata (dashboard web em tempo real) yay -S netdata # Iniciar serviço sudo systemctl enable --now netdata # Acessar dashboard # http://localhost:19999
O Glances é uma ferramenta all-in-one que combina informações de CPU, memória, disco, rede, processos, temperatura e muito mais em uma única tela de terminal. Sua interface é organizada e intuitiva, e ele também pode ser usado como servidor de monitoramento acessível por navegador ou por outros Glances clientes na rede.
O Netdata é um nível acima: é um sistema de monitoramento completo com um dashboard web lindamente projetado, coleta de métricas em tempo real (cada segundo), alertas configuráveis, e suporte a milhares de integrações. É a ferramenta ideal para quem quer um sistema de monitoramento profissional sem a complexidade de soluções empresariais como Prometheus/Grafana. O Netdata coleta automaticamente métricas de CPU, memória, disco, rede, containers Docker, bancos de dados, servidores web e muito mais — sem precisar configurar nada manualmente.

Para uma solução de monitoramento pessoal completa: use btop no terminal para monitoramento rápido, nvtop para GPU quando fizer gaming ou compute, e Netdata para um dashboard persistente e alertas automáticos.
Tuning de Performance: CPU Governor
O CPU governor é o mecanismo do kernel Linux que decide em qual frequência o processador deve rodar em cada momento. Escolher o governor correto pode ter um impacto significativo tanto no desempenho quanto no consumo de energia. No Arch Linux moderno com kernel 5.10+, o governor padrão é geralmente schedutil ou powersave.
# Ver governors disponíveis cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors # Ver governor atual de todos os cores cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor # Mudar governor temporariamente (para todos os cores) sudo cpupower frequency-set -g performance # Ou via echo (mais manual): for cpu in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "performance" | sudo tee "$cpu" done # Ver frequência atual de cada core cpupower frequency-info --hwlimits
performance
CPU sempre na frequência máxima. Melhor desempenho, maior consumo. Ideal para gaming e workloads intensivos.
schedutil
Padrão moderno. Ajusta frequência baseado no scheduler do kernel. Bom equilíbrio entre desempenho e eficiência.
powersave
CPU sempre na frequência mínima. Menor consumo, desempenho reduzido. Ideal para laptops em bateria.
ondemand
Ajusta frequência dinamicamente conforme carga. Governor clássico, ainda funcional mas superado pelo schedutil.
Para gaming, usar o governor performance garante que a CPU não throttle em momentos críticos. O GameMode faz isso automaticamente quando você inicia um jogo — outra razão para sempre usar gamemoderun %command%.
Tuning: I/O Scheduler e Swappiness
O I/O scheduler controla como o kernel organiza as operações de leitura/escrita no disco. Para SSDs (especialmente NVMe), o scheduler ideal é diferente do para HDDs. O padrão moderno do kernel é mq-deadline ou none para SSDs, que são excelentes escolhas.
# Ver scheduler atual por dispositivo cat /sys/block/sda/queue/scheduler # HDD cat /sys/block/nvme0n1/queue/scheduler # NVMe SSD # Mudar scheduler (temporário) echo "mq-deadline" | sudo tee /sys/block/sda/queue/scheduler echo "none" | sudo tee /sys/block/nvme0n1/queue/scheduler # Tornar permanente via udev rule: # /etc/udev/rules.d/60-ioschedulers.rules ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="mq-deadline" ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"
A swappiness controla com que agressividade o kernel move dados da RAM para o swap. O valor padrão é 60 (numa escala de 0-100). Para sistemas com muita RAM, valores mais baixos (10-20) mantêm mais dados na RAM rápida. Para sistemas com ZRAM (swap em memória comprimida), valores mais altos (100) fazem sentido.
# Ver swappiness atual cat /proc/sys/vm/swappiness # Mudar temporariamente sudo sysctl vm.swappiness=10 # Tornar permanente echo "vm.swappiness=10" | sudo tee /etc/sysctl.d/99-swappiness.conf sudo sysctl --system # Aplicar sem reiniciar
ZRAM: Swap em Memória Comprimida
O ZRAM é uma tecnologia que cria um dispositivo de swap dentro da própria RAM, mas com compressão. Em vez de usar o disco (lento) como swap, o ZRAM comprime páginas de memória inativa e as mantém na RAM (rápida). Isso é especialmente útil em sistemas com 8-16GB de RAM — você efetivamente ganha mais memória utilizável sem precisar de disco. O kernel Arch inclui o módulo ZRAM por padrão.
# Instalar zram-generator (configuração automática) sudo pacman -S zram-generator # Criar configuração sudo nano /etc/systemd/zram-generator.conf # Conteúdo mínimo: [zram0] zram-size = ram / 2 # 50% da RAM como ZRAM compression-algorithm = zstd # zstd = melhor relação velocidade/compressão # Habilitar e iniciar sudo systemctl daemon-reload sudo systemctl start systemd-zram-setup@zram0.service # Verificar se está ativo zramctl swapon --show # Ajustar swappiness para usar ZRAM agressivamente: echo "vm.swappiness=180" | sudo tee /etc/sysctl.d/99-zram.conf echo "vm.watermark_boost_factor=0" | sudo tee -a /etc/sysctl.d/99-zram.conf sudo sysctl --system

ZRAM é especialmente valioso em sistemas com 8GB de RAM ou menos. Com ZRAM configurado, operações que causariam swapping para disco (lento, audível em HDDs) agora fazem swap para memória comprimida, com latência de microssegundos em vez de milissegundos.
Journalctl: Dominando os Logs do Systemd
Capítulo 4: Troubleshooting
O journalctl é a ferramenta para ler e filtrar os logs do systemd journal — o sistema centralizado de logging do Linux moderno. Dominar o journalctl é essencial para diagnosticar qualquer problema no sistema. O journal armazena logs de todos os serviços, do kernel, do boot, e de aplicações de forma estruturada e pesquisável.
# Ver todos os logs (mais recentes primeiro: use -r) journalctl -r # Seguir logs em tempo real (como tail -f) journalctl -f # Logs desde o último boot journalctl -b # Logs de dois boots atrás journalctl -b -1 # Logs de um serviço específico journalctl -u NetworkManager journalctl -u nginx -f # Seguir logs do nginx # Filtrar por prioridade (erros e críticos) journalctl -p err # err, warning, notice, info, debug journalctl -p 0..3 # 0=emerg, 1=alert, 2=crit, 3=err # Filtrar por tempo journalctl --since "2025-01-01 00:00:00" journalctl --since "1 hour ago" journalctl --since yesterday --until today # Ver logs de kernel (equivalente ao dmesg) journalctl -k # Exportar para análise journalctl -b --no-pager > /tmp/boot_log.txt # Quanto espaço o journal ocupa journalctl --disk-usage # Limpar logs antigos journalctl --vacuum-time=30d # Manter últimos 30 dias journalctl --vacuum-size=500M # Limitar a 500MB
dmesg: Mensagens do Kernel
# Ver mensagens do kernel (completo) dmesg # Seguir em tempo real dmesg -w # Mostrar com timestamps legíveis dmesg -T # Filtrar por nível (apenas erros e críticos) dmesg --level=err,crit,warn # Filtrar por facilidade (hardware, drivers) dmesg -f kern # Mensagens do kernel dmesg -f user # Mensagens do espaço de usuário # Ver apenas mensagens de um dispositivo/driver dmesg | grep -i nvidia dmesg | grep -i usb dmesg | grep -i error # Cores para facilitar leitura dmesg -H # Human-readable com cores # Limpar buffer do dmesg sudo dmesg -C
O dmesg é especialmente útil para diagnosticar problemas de hardware: drivers que falham ao carregar, dispositivos USB não reconhecidos, erros de disco (procure por I/O error ou SCSI error), problemas de ACPI, e mensagens de inicialização do kernel. Quando um dispositivo para de funcionar subitamente, dmesg -w em um terminal enquanto você reproduz o problema quase sempre revela a causa.
Dispositivo USB não reconhecido
dmesg -w enquanto conecta o dispositivo. Procure por "device not accepting address" ou "USB disconnect".
Driver NVIDIA não carregando
dmesg | grep -i nvidia após o boot. Mensagens de erro aqui indicam conflito com nouveau ou parâmetro de kernel incorreto.
Erros de disco
dmesg | grep -iE "error|I/O|scsi|ata". Erros consistentes indicam falha de hardware iminente — faça backup imediatamente.
Análise de Coredumps
Quando um programa trava com um "Segmentation fault" ou similar, o sistema pode gerar um coredump — um snapshot do estado da memória do processo no momento do crash. Analisar coredumps é a forma mais precisa de entender por que um programa travou. O systemd integra gerenciamento de coredumps via systemd-coredump.
# Verificar coredumps recentes coredumpctl list # Ver informações de um coredump específico coredumpctl info PID # Analisar com GDB (debugger) coredumpctl debug PID # Abre GDB automaticamente # No GDB, comandos úteis: # bt - backtrace (pilha de chamadas no momento do crash) # frame N - ir para frame específico # info reg - ver registros da CPU # quit - sair # Configurar onde coredumps são salvos # /etc/systemd/coredump.conf [Coredump] Storage=external Compress=yes MaxUse=500M KeepFree=1G
Para desenvolvedores ou usuários que frequentemente testam software beta ou compilam do AUR, entender coredumps é valioso. O backtrace (bt no GDB) mostra exatamente em qual função e linha de código o programa travou, permitindo reportar bugs precisamente para os desenvolvedores com informação acionável.

Para coredumps de programas instalados via pacman, o Arch Linux tem pacotes -debug separados que adicionam símbolos de debug. Por exemplo, para debug de crashes no Firefox: sudo pacman -S firefox-debug
Troubleshooting Sistemático: Metodologia
Um bom troubleshooter não tenta coisas aleatórias — ele segue uma metodologia. O processo começa com a observação cuidadosa dos sintomas: quando começou, o que mudou recentemente, quais mensagens de erro aparecem. Com essas informações, formula hipóteses ordenadas por probabilidade. Então testa cada hipótese isoladamente, para identificar a causa raiz. Finalmente, aplica a solução e documenta o processo.
Perguntas de Observação
Quando começou? O que mudou antes? Acontece sempre ou intermitentemente? Afeta outros usuários/programas? Há mensagens de erro específicas?
Ferramentas de Coleta
journalctl -b -p err, dmesg -T, systemctl status servico, strace programa, lsof, ss -tulpn
Isolar a Causa
Teste com usuário diferente, ambiente mínimo, desative extensões/plugins, verifique permissões, teste com versão anterior do pacote via downgrade.
Recuperação do Sistema: Chroot do Live USB
Quando o sistema não consegue mais inicializar — seja por um kernel corrompido, configuração do GRUB errada, ou arquivos de sistema danificados — a solução é inicializar por um Live USB do Arch Linux e usar o chroot para "entrar" no sistema instalado a partir do ambiente live. Com chroot, você tem acesso total ao sistema como se estivesse logado normalmente, podendo corrigir qualquer problema.
# Passo 1: Inicialize pelo Live USB do Arch Linux # (Grave a ISO em um USB com: dd if=archlinux.iso of=/dev/sdX bs=4M) # Passo 2: Identificar partições do sistema instalado lsblk fdisk -l # Passo 3: Montar o sistema de arquivos mount /dev/sdaX /mnt # Substituir por sua partição root # Se usar partição EFI separada: mount /dev/sdaY /mnt/boot/efi # Passo 4: Montar sistemas de arquivos virtuais mount --types proc /proc /mnt/proc mount --rbind /sys /mnt/sys mount --make-rslave /mnt/sys mount --rbind /dev /mnt/dev mount --make-rslave /mnt/dev # Alternativa mais simples com arch-chroot: arch-chroot /mnt # Este comando faz tudo automaticamente! # Passo 5: Agora você está "dentro" do seu sistema # Pode rodar qualquer comando como se estivesse logado normalmente

Sempre use arch-chroot em vez de chroot puro — ele monta todos os sistemas de arquivos virtuais necessários automaticamente e configura o ambiente corretamente, evitando erros comuns como "cannot open /dev/null".
Reparo do GRUB
O GRUB é o bootloader mais comum no Arch Linux. Quando ele falha — seja por uma atualização de kernel mal sucedida, mudança de partição UUID, ou instalação de outro sistema operacional que sobrescreveu o MBR/EFI — o sistema não consegue inicializar. A recuperação é feita via chroot do Live USB.
# Após fazer chroot (como mostrado no card anterior): # Para sistemas UEFI/GPT: # Reinstalar o GRUB no ESP (EFI System Partition) grub-install --target=x86_64-efi \ --efi-directory=/boot/efi \ --bootloader-id=ARCH \ --recheck # Para sistemas BIOS/MBR: grub-install --target=i386-pc \ --recheck \ /dev/sda # Disco, não partição! # Regenerar arquivo de configuração do GRUB grub-mkconfig -o /boot/grub/grub.cfg # Verificar que os kernels foram detectados ls /boot/vmlinuz* # Deve mostrar seus kernels instalados # Se o grub.cfg não detectar o sistema: # Instalar os-prober para detectar outros SOs: sudo pacman -S os-prober # Habilitar no /etc/default/grub: # GRUB_DISABLE_OS_PROBER=false grub-mkconfig -o /boot/grub/grub.cfg
Após o reparo, saia do chroot com exit, desmonte os sistemas de arquivos com umount -R /mnt e reinicie. Na grande maioria dos casos, o sistema volta a funcionar normalmente após esses passos.
Recuperação de Dados com TestDisk e PhotoRec
O TestDisk e o PhotoRec são ferramentas gratuitas e poderosas para recuperação de dados. O TestDisk recupera partições deletadas, repara tabelas de partição corrompidas, e torna partições não-bootáveis bootáveis novamente. O PhotoRec recupera arquivos deletados de discos, cartões SD, e pendrives — mesmo quando o sistema de arquivos está corrompido ou formatado.
# Instalar sudo pacman -S testdisk # Inclui o PhotoRec # Recuperar partição perdida com TestDisk sudo testdisk /dev/sda # Disco com problema # No menu do TestDisk: # 1. Selecionar disco # 2. Tipo de tabela de partição (geralmente detectado auto) # 3. Analyse → Quick Search # 4. Selecionar partição encontrada → Write para restaurar # Recuperar arquivos deletados com PhotoRec sudo photorec /dev/sda # Ou arquivo de imagem # No menu do PhotoRec: # 1. Selecionar disco/partição # 2. Escolher sistema de arquivos # 3. Selecionar destino para arquivos recuperados # (NUNCA na mesma partição que está recuperando!) # 4. Aguardar a varredura

Regra de ouro da recuperação de dados: NUNCA escreva na partição/disco que está tentando recuperar. Todo arquivo recuperado deve ir para um dispositivo de armazenamento diferente. Escrever no mesmo disco pode sobrescrever exatamente os dados que você quer recuperar.
System Rescue: Toolkit Completo
🔑 Resetar Senha Root
Via chroot: passwd root após entrar no sistema pelo Live USB. Simples e definitivo.
🔄 Regenerar initramfs
Após atualizar kernel ou mudar configurações de mkinitcpio: mkinitcpio -P dentro do chroot.
💾 Backup de Emergência
Do Live USB, monte a partição e use rsync para salvar dados em disco externo antes de reparos agressivos.
🔍 Verificar Sistema de Arquivos
Com partição desmontada: fsck -y /dev/sdaX. NUNCA rode fsck em partição montada.
📋 Reinstalar Pacotes
Do chroot: pacman -S pacote --overwrite='*' para reinstalar pacotes com arquivos corrompidos.
🌐 Acesso à Internet do Live USB
Configure rede no Live USB com iwctl (WiFi) ou dhcpcd eth0 (ethernet) para baixar ferramentas.
# Comandos de emergência úteis dentro do chroot: # Verificar integridade de todos os pacotes instalados pacman -Qkk 2>&1 | grep -v "0 missing" # Reinstalar todos os pacotes do sistema base pacman -S $(pacman -Qq) --overwrite='*' # Verificar arquivos de configuração alterados pacman -Qii | grep "^MODIFIED"
Comandos --help: Navegando a Documentação
Um dos hábitos mais valiosos que um usuário Linux pode desenvolver é o reflexo de usar --help e man antes de recorrer à internet. Praticamente todos os comandos Unix/Linux têm documentação embutida acessível instantaneamente. Saber navegar essa documentação é uma habilidade fundamental que diferencia usuários intermediários de avançados.
# --help: ajuda rápida e concisa pacman --help systemctl --help journalctl --help git --help # Para subcomandos, --help funciona depois deles: git commit --help pacman -S --help # Não, mas: pacman --help | grep "\-S" # man: manual completo e estruturado man pacman man 5 crontab # Seção 5 = arquivos de configuração man 8 fdisk # Seção 8 = comandos de sistema/admin # Navegar no man: # q = sair | /palavra = buscar | n = próxima ocorrência # G = ir ao final | g = ir ao início | Espaço = próxima página # info: formato alternativo mais detalhado (GNU) info bash info coreutils # Páginas man online com exemplos práticos: # tldr: "man simplificado com exemplos" sudo pacman -S tealdeer tldr ls tldr rsync tldr systemctl

O tldr (tealdeer no Arch) é um complemento valioso ao man tradicional. Enquanto o man dá a referência completa, o tldr mostra os exemplos mais comuns de uso real. Use os dois: tldr para uso rápido, man para detalhes.
Strace e ltrace: Depuração de Baixo Nível
O strace é uma ferramenta de diagnóstico que intercepta e exibe todas as chamadas de sistema que um processo faz ao kernel. É extremamente útil para entender por que um programa falha ao abrir arquivos, qual biblioteca está sendo carregada, quais conexões de rede um programa tenta fazer, e muitos outros diagnósticos de comportamento de processos.
# Instalar strace sudo pacman -S strace # Rastrear chamadas de sistema de um comando strace ls /tmp # Filtrar por tipo de chamada (muito útil) strace -e openat ls # Apenas chamadas de abertura de arquivo strace -e network ls # Apenas chamadas de rede strace -e trace=file ls # Todas relacionadas a arquivos # Rastrear processo já em execução (por PID) strace -p 1234 # Salvar saída para análise strace -o /tmp/strace_output.txt programa # Mostrar tempo de execução de cada chamada strace -T programa # Mostra tempo em segundos por syscall # Casos práticos de uso: # 1. Por que um programa não acha um arquivo: strace -e openat programa 2>&1 | grep "ENOENT" # 2. Por que um programa não tem permissão: strace -e openat programa 2>&1 | grep "EACCES\|EPERM" # 3. Quais conexões um programa tenta fazer: strace -e trace=network,connect programa
Diagnóstico de Rede no Arch Linux
# Ver todas as interfaces de rede e seus IPs ip addr show ip link show # Status das interfaces # Ver tabela de roteamento ip route show # Testar conectividade ping -c 4 8.8.8.8 # Teste de conectividade básica ping -c 4 archlinux.org # Teste de DNS # Diagnosticar DNS dig archlinux.org nslookup archlinux.org resolvectl status # Status do systemd-resolved # Ver conexões ativas (substitui netstat) ss -tulpn # t=tcp u=udp l=listening p=processo n=numérico ss -s # Estatísticas gerais # Verificar se uma porta está aberta ss -tlnp | grep :80 nc -zv archlinux.org 443 # Test de porta remota # Monitorar tráfego de rede em tempo real sudo pacman -S nethogs # Por processo sudo nethogs eth0 # Rastrear rota até destino traceroute archlinux.org mtr archlinux.org # Traceroute contínuo (mais útil) # Capturar pacotes (para análise detalhada) sudo tcpdump -i eth0 -n host 8.8.8.8

O comando mtr (My Traceroute) é superior ao traceroute clássico — ele combina ping e traceroute em uma tela contínua, mostrando perda de pacotes e latência em cada hop em tempo real. Ideal para diagnosticar problemas de roteamento intermitentes.
Performance Profiling com perf
O perf é a ferramenta de profiling de performance do Linux, integrada ao kernel. Ele permite medir ciclos de CPU, cache misses, branch mispredictions, e identificar exatamente quais funções consomem mais CPU em qualquer programa — sem precisar modificar o código. É a ferramenta definitiva para otimização de performance no Linux.
# Instalar perf (kernel tools) sudo pacman -S perf # Profile básico de um programa (10 segundos) perf stat programa_lento # Identificar hotspots (funções mais executadas) perf record -g programa_lento # Gera perf.data perf report # Interface interativa # Profile de um processo em execução perf top # Similar ao top mas por função de código # Ver eventos disponíveis para monitorar perf list # Contar eventos específicos perf stat -e cache-misses,cache-references,instructions programa # Exemplo de saída típica do perf stat: # Performance counter stats for 'ls': # 0.87 msec task-clock # 0 context-switches # 1,234 instructions / 0.89 insn per cycle # 234 branch-misses / 3.21% of all branches
O perf também é excelente para investigar gargalos de sistema: use perf top durante um período de alta carga para ver quais funções do kernel e do espaço de usuário estão consumindo mais ciclos de CPU. Isso é especialmente útil para diagnosticar causas de alta carga inexplicável no sistema.
Gerenciamento de Memória e OOM Killer
Quando o sistema fica sem memória RAM disponível, o kernel Linux ativa o OOM Killer (Out of Memory Killer) — um mecanismo que escolhe e termina processos para liberar memória. Entender o OOM Killer é importante para diagnosticar crashes inesperados de processos. Quando um processo é terminado pelo OOM Killer, ele registra uma mensagem específica no journal.
# Verificar se OOM Killer agiu recentemente journalctl -k | grep -i "oom\|killed process\|out of memory" # Ver score OOM de cada processo (maior = mais provável de ser morto) cat /proc/PID/oom_score # Proteger um processo do OOM Killer (score -1000 = nunca matar) echo -1000 | sudo tee /proc/PID/oom_score_adj # Configurar via systemd service: # [Service] # OOMScoreAdjust=-500 # Ver uso de memória por processo smem -p # Percentual de RAM por processo (instalar: sudo pacman -S smem) # Analisar memória disponível free -h vmstat -s # Estatísticas de memória detalhadas # Identificar vazamentos de memória valgrind --leak-check=full ./programa_suspeito
oom_score_adj: -1000
Nunca matar. Use para processos críticos de sistema como banco de dados ou servidores.
oom_score_adj: 0
Padrão. O kernel decide baseado no uso de memória e tempo de execução do processo.
oom_score_adj: 1000
Sempre matar primeiro. Use para processos descartáveis que podem ser reiniciados.
Auditoria de Segurança com lynis e chkrootkit
Manter o Arch Linux seguro requer verificações periódicas de configuração. O Lynis é uma ferramenta de auditoria de segurança que verifica centenas de aspectos do sistema — permissões de arquivos, configurações de serviços, usuários com senhas fracas, portas abertas desnecessárias, e muito mais — e gera um relatório com sugestões de hardening.
# Instalar Lynis sudo pacman -S lynis # Executar auditoria completa sudo lynis audit system # A saída inclui seções como: # [+] Boot and services # [+] Kernel # [+] Memory and processes # [+] Authentication # [+] File systems # [+] File permissions # [+] Network # [+] Firewalls # Hardening Index: 65 (em 100) # Instalar e usar chkrootkit (detecta rootkits comuns) yay -S chkrootkit sudo chkrootkit # Verificar integridade de arquivos de sistema com AIDE sudo pacman -S aide sudo aide --init # Criar banco de dados inicial sudo aide --check # Verificar mudanças (comparar com banco)

Ferramentas de auditoria de segurança como Lynis apenas identificam problemas potenciais — elas não os corrigem automaticamente. Avalie cada sugestão no contexto do seu sistema antes de aplicar mudanças. Nem toda configuração "insegura" segundo o Lynis é realmente um risco no seu caso de uso.
Drivers NVIDIA Avançado: DKMS e Configuração
O driver NVIDIA proprietário no Arch Linux merece atenção especial. Diferente de distribuições como Ubuntu, que têm scripts de instalação automatizados, no Arch você precisa entender o processo para manter os drivers funcionando corretamente após atualizações de kernel. O módulo nvidia-dkms recompila automaticamente o driver para cada novo kernel instalado.
# Instalação recomendada para sistemas com atualização contínua sudo pacman -S nvidia-dkms nvidia-utils lib32-nvidia-utils nvidia-settings # Para kernels não-padrão (linux-zen, linux-lts, etc.) sudo pacman -S nvidia-dkms # Funciona com qualquer kernel! # Adicionar módulo ao initramfs (para DRM) # Em /etc/mkinitcpio.conf, adicione à linha MODULES: MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm) # Regenerar initramfs sudo mkinitcpio -P # Adicionar parâmetro ao kernel (para DRM kernel mode setting) # Em /etc/default/grub, linha GRUB_CMDLINE_LINUX: # nvidia-drm.modeset=1 sudo grub-mkconfig -o /boot/grub/grub.cfg # Verificar instalação nvidia-smi # Deve mostrar GPU e driver version # Monitorar GPU em tempo real nvidia-smi -l 1 # Atualiza a cada 1 segundo

Nunca misture drivers NVIDIA proprietários com o driver nouveau. Certifique-se de que nouveau está na blacklist: adicione blacklist nouveau ao arquivo /etc/modprobe.d/blacklist.conf.
Pipewire: Áudio Moderno para Gaming
O PipeWire substituiu PulseAudio e JACK como servidor de áudio padrão nas distribuições Linux modernas, incluindo Arch Linux. Para gaming, o PipeWire oferece latência ultra-baixa (comparável ao JACK), compatibilidade total com aplicações PulseAudio e JACK (via camadas de compatibilidade), e gerenciamento simplificado de dispositivos de áudio. A transição do PulseAudio para o PipeWire é recomendada para qualquer usuário que faz gaming.
# Instalar PipeWire completo com compatibilidade sudo pacman -S pipewire pipewire-alsa pipewire-pulse \ pipewire-jack wireplumber # Habilitar para o usuário systemctl --user enable --now pipewire pipewire-pulse wireplumber # Verificar status systemctl --user status pipewire pactl info | grep "Server Name" # Deve mostrar PipeWire # Configurar latência baixa para gaming/áudio # Crie ~/.config/pipewire/pipewire.conf.d/10-latency.conf: context.properties = { default.clock.rate = 48000 default.clock.quantum = 256 # Menor = menor latência default.clock.min-quantum = 64 default.clock.max-quantum = 8192 } # Instalar interface gráfica para gerenciar áudio sudo pacman -S qpwgraph # Gráfico de conexões PipeWire sudo pacman -S pavucontrol # Controle de volume (funciona com PipeWire)
Otimização de Gaming: Configuração Completa
A otimização completa para gaming no Arch Linux é uma combinação sinérgica de todos os componentes: drivers corretos, camadas de compatibilidade bem configuradas, ferramentas de lançamento otimizadas, e um sistema operacional ajustado. Nenhum componente sozinho faz a diferença — é a soma de todos que transforma o Arch Linux em uma plataforma gaming de elite.
Configuração Final das Opções de Lançamento Steam
Chegou o momento de juntar tudo que aprendemos em uma configuração real, completa e otimizada para as opções de lançamento do Steam. Esta é a linha que maximiza performance, oferece diagnóstico em tempo real e minimiza problemas de compatibilidade para a grande maioria dos jogos.
# Opções de lançamento completas e comentadas para Steam: # (Clique direito no jogo → Propriedades → Opções de Lançamento) # Configuração MÁXIMA (para diagnóstico inicial): MANGOHUD=1 DXVK_ASYNC=1 DXVK_STATE_CACHE=1 \ PROTON_USE_DXVK=1 gamemoderun %command% # Configuração PADRÃO (para uso diário): DXVK_ASYNC=1 gamemoderun %command% # Se o jogo tiver problemas com esync: PROTON_NO_ESYNC=1 DXVK_ASYNC=1 gamemoderun %command% # Para jogos DX12 (adiciona VKD3D-Proton): PROTON_USE_VKD3D=1 DXVK_ASYNC=1 gamemoderun %command% # Configuração para streaming com OBS: OBS_VKCAPTURE=1 MANGOHUD=1 gamemoderun %command% # Para debugging de jogos que não iniciam: PROTON_LOG=1 MANGOHUD=1 gamemoderun %command% # Depois: cat ~/steam-proton-APPID.log | grep -i error

Dica de ouro: comece sempre com a configuração padrão mínima. Só adicione variáveis quando necessário. Mais variáveis não significa necessariamente mais performance — algumas podem interferir com outras.
Pacotes AUR Essenciais para Gaming e Produtividade
1
Gaming
protonup-qt, mangohud, gamemode, heroic-games-launcher-bin, bottles, lutris, retroarch-assets-xmb
2
Ferramentas
chezmoi, yadm, tealdeer, bat, ripgrep, fd, dust, procs, zoxide, starship
3
Monitoramento
nvtop, glances, netdata, btop, iotop-c, bandwidth-monitor
4
Segurança
lynis, chkrootkit, aide, ufw, bitwarden-bin, keepassxc
# Instalação em lote de ferramentas modernas de terminal yay -S bat ripgrep fd dust procs zoxide starship \ tealdeer bottom chezmoi # Configurar aliases modernos (adicione ao ~/.bashrc ou ~/.zshrc) alias ls='eza --icons' alias cat='bat' alias find='fd' alias grep='rg' alias top='btop' alias du='dust' alias ps='procs' # Instalar eza (ls moderno com ícones) sudo pacman -S eza
Kernel Zen e Kernels Alternativos para Gaming
O Arch Linux oferece facilidade única para usar kernels alternativos além do kernel padrão. Para gaming, o linux-zen é frequentemente recomendado — ele inclui patches de otimização para desktops interativos, como o patchset MuQSS/EEVDF que melhora a responsividade em workloads de desktop, e o patch futex2 que melhora o desempenho do esync/fsync usado pelo Proton.
# Instalar kernel Zen (mantendo o padrão como fallback) sudo pacman -S linux-zen linux-zen-headers # Se usar NVIDIA com DKMS: sudo pacman -S nvidia-dkms # Compila automaticamente para o zen # Atualizar GRUB para incluir o novo kernel sudo grub-mkconfig -o /boot/grub/grub.cfg # Reiniciar e selecionar linux-zen no menu GRUB # (ou configurar como padrão) # Para fazer linux-zen o padrão no GRUB: # Em /etc/default/grub, defina: # GRUB_DEFAULT="Advanced options for Arch Linux>Arch Linux, with Linux linux-zen" # Verificar qual kernel está em uso uname -r # Deve mostrar X.X.X-zen1-1-zen
linux (padrão)
Kernel vanilla Arch. Estável, atualizado. Base para tudo. Recomendado manter como fallback.
linux-zen
Patches para desktop. Melhor responsividade, ótimo para gaming. Escolha principal recomendada.
linux-lts
Long Term Support. Máxima estabilidade. Ideal para servidores ou sistemas críticos.
linux-hardened
Foco em segurança. Patches de hardening. Performance levemente reduzida.
Flatpak e Sandboxing para Aplicações Gaming
O Flatpak é um sistema de distribuição de aplicações que funciona em qualquer distribuição Linux, incluindo Arch. Para gaming e aplicações de terceiros, o Flatpak oferece sandboxing (isolamento de segurança) e versões atualizadas de aplicações independentemente dos pacotes de sistema. O repositório Flathub é o maior repositório de aplicações Flatpak e contém a maioria das ferramentas gaming.
# Instalar Flatpak sudo pacman -S flatpak # Adicionar repositório Flathub flatpak remote-add --if-not-exists flathub \ https://dl.flathub.org/repo/flathub.flatpakrepo # Instalar aplicações gaming populares via Flatpak flatpak install flathub com.heroicgameslauncher.hgl # Heroic flatpak install flathub com.usebottles.bottles # Bottles flatpak install flathub net.lutris.Lutris # Lutris flatpak install flathub com.obsproject.Studio # OBS # Gerenciar permissões de Flatpak sudo pacman -S flatseal # GUI para gerenciar permissões # Listar aplicações instaladas flatpak list # Atualizar todos os Flatpaks flatpak update

Flatpaks de gaming frequentemente têm melhor compatibilidade com jogos específicos porque empacotam suas próprias versões de bibliotecas. O Bottles e o Heroic via Flatpak, por exemplo, têm acesso a versões mais recentes do Proton-GE que podem estar menos disponíveis nos pacotes nativos do Arch.
Configuração de Display para Gaming: Resolução e Taxa de Atualização
Configurar corretamente a resolução e taxa de atualização do monitor é fundamental para aproveitar ao máximo o hardware de gaming. No Arch Linux com Wayland ou X11, há diferentes ferramentas para cada caso.
# Para X11: configurar via xrandr xrandr # Listar modos disponíveis xrandr --output DP-1 --mode 2560x1440 --rate 144 # 1440p 144Hz xrandr --output DP-1 --primary # Definir monitor primário # Para criar modo customizado não listado: cvt 2560 1440 144 # Gera modeline # Usar output do cvt com xrandr --newmode e --addmode # Para Wayland (KDE Plasma): kscreen-doctor output.DP-1.mode.2560x1440@144 # Para Wayland (GNOME): # Configurações → Exibições → Configurar na interface # Verificar taxa atual cat /sys/class/drm/*/modes | head -5 # Variable Refresh Rate (FreeSync/G-Sync) # Ativar no arquivo de configuração do Xorg: # /etc/X11/xorg.conf.d/20-amdgpu.conf (para AMD): Section "Device" Identifier "AMD" Driver "amdgpu" Option "TearFree" "true" Option "VariableRefresh" "true" EndSection
Resolução de Problemas Comuns de Gaming
Tela Preta ao Iniciar
1. Verifique se lib32-vulkan-icd-loader e os pacotes lib32 da GPU estão instalados. 2. Tente PROTON_USE_DXVK=1 %command%. 3. Ative PROTON_LOG=1 e leia o log.
Stuttering / Travamentos
1. Ative DXVK_ASYNC=1 para compilação assíncrona de shaders. 2. Use GameMode: gamemoderun %command%. 3. Verifique se há shader pre-compilation pendente no Steam.
Sem Áudio no Jogo
1. Instale pipewire-pulse se não tiver. 2. Tente winetricks xact no prefixe do jogo. 3. Verifique se o dispositivo de saída padrão está correto no pavucontrol.
Controle Não Reconhecido
1. Instale xpadneo-dkms para Xbox Bluetooth. 2. Tente SDL_GAMECONTROLLERCONFIG customizado. 3. Verifique permissões udev para o dispositivo.
ProtonDB e Recursos da Comunidade
A comunidade Linux gaming é extraordinariamente ativa e colaborativa. Saber onde buscar informação e como contribuir de volta é parte fundamental da cultura. O ProtonDB (protondb.com) é o recurso mais valioso: é um banco de dados comunitário onde usuários reportam se cada jogo funciona no Linux com Proton, com qual versão, quais variáveis de ambiente foram necessárias, e qualquer workaround descoberto.
🌐 ProtonDB
Relatórios de compatibilidade de jogos Steam no Linux. Antes de comprar qualquer jogo, verifique aqui. protondb.com
🛡️ Are We Anti-Cheat Yet?
Status de compatibilidade de sistemas anti-cheat com Linux. areweanticheatyet.com
🐧 r/linux_gaming
Comunidade Reddit ativa com notícias, dicas, e suporte para gaming no Linux.
📖 ArchWiki
A wiki mais completa do Linux. Referência definitiva para qualquer configuração no Arch. wiki.archlinux.org
Além desses recursos, o GamingOnLinux (gamingonlinux.com) é um portal de notícias dedicado ao gaming no Linux, cobrindo lançamentos, patches e eventos relevantes. O Boiling Steam publica análises aprofundadas e estatísticas de compatibilidade do Steam.
Script de Setup Completo: Arch Linux Gaming
Reunindo tudo que aprendemos neste volume, criamos um script de setup completo que configura um ambiente de gaming otimizado no Arch Linux do zero. Este script é idempotente — pode ser executado múltiplas vezes com segurança — e cobre todos os componentes essenciais discutidos ao longo do volume.
#!/bin/bash # gaming_setup.sh - Configuração completa de gaming no Arch Linux set -euo pipefail CORES='\033[0;32m' AMARELO='\033[1;33m' SEM_COR='\033[0m' info() { echo -e "${CORES}[INFO]${SEM_COR} $*"; } aviso() { echo -e "${AMARELO}[AVISO]${SEM_COR} $*"; } # 1. Ativar multilib (necessário para lib32) info "Ativando repositório multilib..." if ! grep -q "^\[multilib\]" /etc/pacman.conf; then sudo sed -i '/^#\[multilib\]/,/^#Include/{s/^#//}' /etc/pacman.conf sudo pacman -Sy fi # 2. Detectar GPU e instalar drivers info "Detectando GPU..." if lspci | grep -qi nvidia; then info "NVIDIA detectada - instalando drivers proprietários" sudo pacman -S --needed nvidia-dkms nvidia-utils \ lib32-nvidia-utils nvidia-settings elif lspci | grep -qi "amd\|radeon"; then info "AMD detectada - instalando drivers mesa/vulkan" sudo pacman -S --needed mesa lib32-mesa vulkan-radeon \ lib32-vulkan-radeon fi sudo pacman -S --needed vulkan-icd-loader lib32-vulkan-icd-loader # 3. Instalar Steam e ferramentas gaming info "Instalando Steam e ferramentas de gaming..." sudo pacman -S --needed steam gamemode lib32-gamemode \ mangohud lib32-mangohud wine wine-mono wine-gecko \ lutris retroarch # 4. Instalar PipeWire completo info "Configurando PipeWire..." sudo pacman -S --needed pipewire pipewire-alsa \ pipewire-pulse pipewire-jack wireplumber systemctl --user enable --now pipewire pipewire-pulse wireplumber # 5. Instalar ferramentas AUR essenciais if command -v yay &>/dev/null; then info "Instalando pacotes AUR..." yay -S --needed protonup-qt heroic-games-launcher-bin \ bottles nvtop obs-vkcapture fi # 6. Configurar swappiness e ZRAM info "Otimizando memória..." echo "vm.swappiness=10" | sudo tee /etc/sysctl.d/99-gaming.conf sudo sysctl --system info "=== Setup de gaming concluído! Reinicie o sistema. ==="
Encerramento
Resumo do Volume 11: O que Você Dominou
Ao completar este volume, você passou por uma jornada que vai muito além do básico. Você aprendeu a montar um ambiente de gaming completo e otimizado, entendeu as camadas de compatibilidade que fazem o magic do Linux gaming funcionar, configurou automação real com ferramentas profissionais, e adquiriu as habilidades de troubleshooting que separam usuários avançados de iniciantes. O Arch Linux, nas suas mãos, é agora uma ferramenta poderosa e totalmente sob seu controle.
Referência Rápida: Comandos Mais Importantes do Volume 11
Gaming
gamemoderun %command% MANGOHUD=1 %command% DXVK_ASYNC=1 %command% PROTON_LOG=1 %command% protonup-qt yay -S heroic-games-launcher-bin vulkaninfo --summary
Automação
crontab -e crontab -l systemctl --user list-timers systemd-analyze calendar "expr" chezmoi apply chezmoi add ~/.bashrc ansible-playbook -i inv play.yml
Monitoramento
btop nvtop sudo iotop glances journalctl -b -p err journalctl -u servico -f dmesg -T | grep error
Troubleshooting e Recuperação
arch-chroot /mnt grub-install --target=x86_64-efi ... grub-mkconfig -o /boot/grub/grub.cfg mkinitcpio -P coredumpctl list sudo testdisk /dev/sda sudo photorec /dev/sda fsck -y /dev/sdaX

Salve esta referência rápida! Esses são os comandos que você usará com mais frequência no seu dia a dia com Arch Linux após dominar os conceitos deste volume. Com a prática, eles se tornarão reflexos automáticos.
O Caminho Continua
Você não apenas usa o Arch Linux. Você o domina.
Este Volume 11 marca um ponto de virada na sua jornada com o Arch Linux. Você agora possui conhecimentos que a grande maioria dos usuários Linux — mesmo os experientes — nunca se aprofundou. Gaming com performance de elite, automação inteligente que poupa horas de trabalho manual, monitoramento profissional que detecta problemas antes que se tornem crises, e habilidades de recuperação que salvam sistemas quando tudo parece perdido.
A série definitiva de Arch Linux em português brasileiro continua. Cada volume constrói sobre o anterior, aprofundando o conhecimento e expandindo as fronteiras do que você consegue fazer com seu sistema. O Arch Linux é uma filosofia tanto quanto uma distribuição — a filosofia de entender seu sistema, de ter controle total, de nunca aceitar "funciona mas não sei por quê" como resposta suficiente.
Continue Aprendendo
A ArchWiki é inesgotável. Cada página leva a três outras. Explore, experimente, quebre e conserte — é assim que o verdadeiro aprendizado acontece no Linux.
Contribua com a Comunidade
Reporte bugs, escreva relatórios no ProtonDB, ajude no fórum do Arch, contribua com o AUR. A comunidade que te ensinou precisa da sua experiência acumulada.
Próximo Volume
Containers com Podman e Docker, Kubernetes pessoal, servidores em casa, VPN com WireGuard, e muito mais. A jornada no Arch Linux não tem fim — e isso é exatamente o que a torna fascinante.
"The more you know, the more you realize you don't know. And in the Arch Linux world, that's not a source of anxiety — it's an infinite source of excitement."
a187838077.cdn.optimizely.com

a187838077.cdn.optimizely.com is blocked

This page has been blocked by an extension

  • Try disabling your extensions.
ERR_BLOCKED_BY_CLIENT
This page has been blocked by an extension