O SteamOS é incrível mas ele tem problemas que eu queria eliminar. Então fiz meu próprio sistema!
| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. Mais detalhes clicando aqui.
1. Introdução
O SteamOS é um sistema absurdamente incrível desenvolvido pela VALVe para o Steam Deck. Conforme já falei em publicações anteriores, em sua base original o aparelho é um pequeno notável quando se trata de desempenho, otimização, funcionalidade e responsividade.
Porém evidente que mesmo com tantas vantagens alguns problemas iriam eventualmente surgir.
Por ser plenamente pensado para ser um sistema essencialmente gamer, o SteamOS peca em alguns recursos que vem desabilitados/inacessíveis por padrão. Isso se deve à natureza Imutável, ou seja, o usuário apenas liga e executa os jogos, não tem por quê mexer em sistemas de pacotes, compilar um kernel ou acessar algum /dev/ específico. Mas meu ponto aqui, é que tem quem vai querer esse nível de acesso!
Mesmo o BazziteOS ou mesmo o ChimeraOS carregam consigo as mesmas propostas: Serem sistemas gamers engessados, imutáveis, só que, enquanto o SteamOS roda sob uma base ArchLinux, o BazziteOS roda sob o Fedora. Em ambos casos, todos sistemas imutáveis.
Ok o sistema é imutável, qual o problema?
Se você for um pouquinho mais entusiasta vai querer ir além.
Pra mim usar um sistema operacional baseado em Linux seja ele qual for, você aprende quebrando, mexendo, formatando toda semana, fuçando o /sys, modificando o conteúdo de /etc, quebrando o que tiver em /dev. Eu formatava meu PC pessoal toda semana em meados de 2015 antes mesmo deste site existir, mexi com Ubuntu MATE, mexi com EndeavourOS, eu gosto desse nivel de controle e tirar isso de mim é como me dar um android sem root, é um sistema chato, que não desperta meu interesse.
E o hardware do Steam Deck é um prato cheio pra quem quer modificar ou customizar recursos e/ou funcionalidades, a VALVe simplesmente colocou nele opções que nem mesmo o hardware do PlayStation 5 possui. Entre os recursos que o SteamOS impede de serem acessados – apesar da BIOS suportar nativamente – temos:
- Pode configurar o Waydroid no sistema. O SteamDeck já possui uma excelente tela touch, rodar Android nele seria uma adição mais do que bem-vinda!
- Acesso ao /dev/kvm permitindo rodar máquinas virtuais de qualquer natureza através do QEMU-KVM ou mesmo do VirtualBox.
- A possibilidade de inicializar containers Docker com a opção privileged, ou seja, com acessos diretos ao hardware; e para execução de IA’s locais como o Ollama.
- Ter acesso root no sistema para qualquer ajuste ou modificação que assim desejar, por exemplo, eliminar as mitigações de processador que a VALVe mantém.
- Complementando o item 3 acima, você terá acesso root ao módulo WiFi e Bluetooth, permitindo executar tarefas de pentesting como Aircrack-ng se assim o desejar!
- Poder utilizar pacotes diretamente do repositório da distribuição e não depender somente de Flatpaks, assim como pode usar PPA’s no Ubuntu, ou AUR do ArchLinux.
Essa opção em particular é fundamental se você quiser ler Token A3 no SteamDeck! Acredite, com tal opção disponível, você pode ligar o SteamDeck a uma dock e usá-lo como um computador convencional completo sem qualquer dificuldade. - Acesso ao /dev/kfd + /dev/dri para que o Blender possa usar a GPU do SteamDeck para renderização via Cycles isoladamente, deixando a CPU em idle podendo realizar outras tarefas, como navegar na internet, enquanto acontece alguma renderização.
Por padrão o Blender não funciona diretamente pelo Steam Game Mode, e no desktop, ele só renderiza por CPU. – Funciona também com distrobox conforme já expliquei aqui mas é uma gambiarra monstruosa envolvendo subir um container via podman com Ubuntu 24.04, aplicar os drivers ROCm nesse container e subir o binário do Blender.tar.gz através dele. - Complementando o item 6 acima, poderá, COM CUIDADO, fazer ajustes de overclock na CPU/GPU modificando os controles de hardware diretamente via /sys/ e /dev/.
- Com root permite a configuração de ferramentas de acesso remoto como Tailscale.com ou mesmo do DWService e aqui, diferentemente do Moonlight/Sunshine que são usados para jogar remotamente, me refiro a ferramentas de acesso remoto para outros tipos de uso mais amplas, que precisem de acesso direto a alguma pasta como /etc/ para alguma aplicação específica.
Ou seja, a lista de possibilidades aumenta absurdamente para quem quer modificar o pequeno console!
Nesse momento você vai dizer:
Mas o SteamOS é o sistema definitivo oficial recomendado da VALVe, ele é o melhor para que funcione perfeitamente com o maior desempenho possível! E ele permite que você faça coisas como root… basta fazer os comandos que desbloqueiam o SteamOS.
Bem, quando o console foi lançado em Fevereiro de 2022, basicamente à 4 anos atrás, estávamos no SteamOS 3.0/3.1 e ele realmente era o melhor para o Steam Deck. Conforme o tempo passou, a VALVe apostou em permitir que o SteamOS funcione em outros consoles como o ROG ALLY e muita coisa chegou ao kernel mainline, ou seja, teoricamente, qualquer distribuição Linux estará funcional no pequeno portátil.
Até a data desta publicação o SteamOS 3.8.14 era o mais recente trazendo consigo o Plasma 6.4.3 e Kernel Linux 6.16.
Então imagine o que aconteceria se eu pegasse um sistema absolutamente genérico como o Kubuntu 26.04 LTS com Plasma 6.6.5 e Kernel Linux 7.0? Ele tem que teoricamente funcionar tão bem quanto, ou até melhor, que o SteamOS, puramente por trazer drivers mais recentes.
E quanto ao root, sempre que o SteamOS receber um update você vai precisar refazer todos os passos e reinstalar tais aplicações, porque ele trocará o sistema e limpará tudo que estiver além da /home/
Isso eu fiz.
E eu tinha razão.
2. Kubuntu 26.04 LTS
Eu já havia falado aqui sobre o Kubuntu 24.04 LTS sobre o quanto ele é um sistema excelente. Não é apenas seguro e homologado na base Ubuntu, como é um dos poucos sabores que NÃO exige o uso de pacotes Snap, vem com um Plasma absolutamente estável e funciona bem para um propósito geral.
E já falei aqui neste vídeo por quê eu considero o Kubuntu uma distro de padrão empresarial funcional para todo tipo de propósito.
Enfim, adotei ele como meu sistema principal para tudo e meu povo, não me arrependi de absolutamente nada.
E ficou tão bom que também usei ele na placa de PlayStation 5 chinesa BC-250! Falei dela no meu canal secundário, em breve disponível para todos.
Então com esse desempenho absurdo, quais os desafios de replicar o comportamento, desempenho e funções do SteamOS em um Kubuntu?
3. Instalação
3.1 BIOS
Eu recomendo que entre na BIOS e faça uma única alteração, para que a UMA seja de 256 Mb. Deixe a memória de vídeo a menor possível.
Permita que o Kernel Linux do Kubuntu faça o GTT automaticamente e aloque a VRAM necessária no momento que algum jogo inicializar.
Antigamente era interessante manter em 4 Gb, hoje em dia eu não recomendo mais.
3.2 Sistema
A instalação se deu de forma absolutamente normal porém com um adendo: Na hora que o Kubuntu pergunta quais pacotes instalar, marque a opção Instalação Mínima. Isso elimina os pacotes Snap!

Além disso, eu recomendo marcar a opção Swap em Arquivo com sistema de arquivos BTRFS que atualmente trará o melhor desempenho – afinal é o mesmo do SteamOS.
Por fim, recomendo marcar a opção Iniciar Automaticamente Sem Pedir Senha. O Kubuntu não exibe um teclado na tela de login do SDDM e isso pode ser um problema.
E após a instalação, convido a usar meu script de automação de configurações:
$ curl -sSL m.linuxuniverse.com.br | bash
Ele vai dar algumas opções com um pequeno menu de ajuda explicando o que cada opção faz. Apenas não rode a opção 1 se estiver no Kubuntu, pois ela é para o Ubuntu Server e podem haver erros.
Quando a instalação terminar, o Steam Deck será reiniciado. Quando ele voltar ao Desktop, vamos prosseguir!
4. Configurações
Para replicar o comportamento do SteamOS, é fundamental que você possa entrar no GameScope e fechar o Plasma. Assim, você economiza quase 1.5 Gb de RAM sem o Desktop ativo quando você for jogar.
Instale os pacotes do gamescope e do manghud
$ sudo apt install gamescope mangoapp mangohud -y
Agora baixe e aplique os scripts que vão pré-configurar o sddm, o seletor de sessão, o seletor de desktop e o atalho para o GameMode.
$ curl -sSL https://raw.githubusercontent.com/linuxuniverseofficial/steamdeck/refs/heads/main/CustomOS/Kubuntu%2026.04/steamos-session-select | sudo tee /usr/bin/steamos-session-select; sudo chmod +x /usr/bin/steamos-session-select
$ curl -sSL https://raw.githubusercontent.com/linuxuniverseofficial/steamdeck/refs/heads/main/CustomOS/Kubuntu%2026.04/steamos-desktop-select | sudo tee /usr/bin/steamos-desktop-select; sudo chmod +x /usr/bin/steamos-desktop-select
$ curl -sSL https://raw.githubusercontent.com/linuxuniverseofficial/steamdeck/refs/heads/main/CustomOS/Kubuntu%2026.04/steam-sddm-watcher.sh | sudo tee /usr/local/bin/steam-sddm-watcher.sh; sudo chmod +x /usr/local/bin/steam-sddm-watcher.sh
$ curl -sSL https://raw.githubusercontent.com/linuxuniverseofficial/steamdeck/refs/heads/main/CustomOS/Kubuntu%2026.04/GameMode.sh | tee /home/$USER/GameMode.sh; chmod +x /home/$USER/GameMode.sh
Crie um novo atalho de sessão para o SDDM:
$ sudo bash -c 'cat > /usr/share/wayland-sessions/steam-gamescope.desktop << EOF [Desktop Entry] Name=Steam Game Mode Comment=Start Steam in Steam Deck Hardware Session Exec=/usr/local/bin/steam-sddm-watcher.sh Type=Application DesktopNames=Gamescope EOF'
Libere uma pequena permissão no Kernel:
$ echo "kernel.unprivileged_userns_clone=1" | sudo tee /etc/sysctl.d/99-steam-sandbox.conf
Faça um novo atalho para o Portal:
$ mkdir -p ~/.config/xdg-desktop-portal; nano ~/.config/xdg-desktop-portal/gamescope-portals.conf [Preferred] default=kde;gtk; org.freedesktop.impl.portal.Settings=kde
Edite o arquivo:
$ sudo nano /etc/sddm.conf.d/20-kubuntu.conf
E modifique o conteúdo:
[Autologin] Relogin=true Session=plasma User=SEU-USUARIO-AQUI
ATENTO ao Seu Usuario!
Salve e saia com CTRL+O e CTRL+X
Libere esta regra de dispositivo:
$ echo 'KERNEL=="cpu_dma_latency", PROTECTION="0666"' | sudo tee /etc/udev/rules.d/99-steamdeck-perf.rules $ sudo udevadm control --reload-rules && sudo udevadm trigger
Altere o conteúdo do GRUB:
$ sudo nano /etc/default/grub
Deixe como:
GRUB_DEFAULT=0 GRUB_TIMEOUT_STYLE=hidden GRUB_TIMEOUT=1 GRUB_DISTRIBUTOR='Kubuntu' GRUB_CMDLINE_LINUX_DEFAULT='quiet splash mitigations=off' GRUB_CMDLINE_LINUX="" GRUB_RECORDFAIL_TIMEOUT=1
Isso permite que o GRUB só apareça por 1 segundo e remova as correções das vulnerabilidades da AMD, o que aumentará o desempenho.
Atualize seu GRUB:
$ sudo update-grub2
Adicione seu usuário aos seguintes grupos:
sudo usermod -a -G video,render,input,disk $USER
Crie um arquivo de configuração para o MangoHUD:
$ mkdir -p ~/.config/mangoapp
$ mkdir -p ~/.config/MangoHud
$ nano ~/.config/MangoHud/MangoHud.conf
Conteúdo:
control=mangoapp fsr_steam_sharpness=5 nis_steam_sharpness=5
Salve com CTRL+O e saia com CTRL+X
Permita o acesso ao hardware pelo gamescope e o mangohud:
$ sudo setcap 'CAP_SYS_NICE=eip' $(which gamescope) $ sudo setcap 'CAP_SYS_NICE=eip' $(which mangoapp)
Crie um pequeno atalho:
$ sudo ln -sf /usr/bin/mangoapp /usr/bin/srv/mangoapp 2>/dev/null || true
Edite seu arquivo visudo com
sudo VISUAL=nano visudo
Adicione as seguintes linhas ao final atento ao seu usuário e cuidado com espaçamentos:
ztge ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart sddm ztge ALL=(ALL) NOPASSWD: /usr/bin/steamos-session-select ztge ALL=(ALL) NOPASSWD: /usr/bin/steamos-desktop-select ztge ALL=(ALL) NOPASSWD: /etc/sddm.conf.d/kde_settings.conf ztge ALL=(ALL) NOPASSWD: /etc/sddm.conf.d/20-kubuntu.conf
Salve com CTRL+O e feche com CTRL+X, cuidado: Se ele NÃO permitir, é porque alguma linha ficou errada.
O visudo não pode ficar com erros senão o sistema congela e você perderá acesso ao sudo, exigindo uma recuperação externa.
Permita que o gamescope acesse o controle de brilho da tela:
$ sudo tee /etc/udev/rules.d/90-backlight.rules << 'EOF' SUBSYSTEM=="backlight", KERNEL=="amdgpu_bl1", ACTION=="add", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness" EOF
Por fim, mas não menos importante, aplique:
$ sudo udevadm control --reload-rules; sudo udevadm trigger --subsystem-match=backlight
Reinicie o SteamDeck.
Caso deseje, este mesmo tutorial com todos os detalhes estão no meu github!
5. Explicando o Funcionamento
Ao ligar o SteamDeck você será mandado para o Desktop por padrão. Esse comportamento infelizmente não foi possível alterar, porque o GameScope do SteamOS é modificado para controlar o D-Bus ao iniciar e aqui eu, por enquanto, não consegui replicar o comportamento. Se o GameMode subir diretamente, o console pode congelar.
Uma vez no desktop você já estará com todos os drivers e recursos necessários para usar o SteamDeck como um notebook completo ou um PC portátil. Incluindo acesso ao ‘sudo apt install’ para qualquer pacote extra e terá à disposição, se rodou meu script preparatório acima, a loja Discover com os pacotes Flatpak configurados com permissões de acesso na loja da comunidade FlatHub.
Ao tocar no atalho GameMode.sh você fechará o desktop e entrará no Steam UI game mode. Lá todos os botões funcionarão normalmente, desde o overlay de desempenho, controle do HDR, Wifi, brilho de tela, entre outros. Os únicos recursos que eu não uso e confirmo que não funcionam são Sombreamento de Meia Taxa, Limite de TDP e Frequencia da GPU:

Eu pessoalmente nunca gostei de mexer nessa opção, prefiro que a energia do console esteja padrão e pra mim está tudo certo.
O segredo de tudo está no lançador do arquivo steam-sddm-watcher.sh, nele o Steam é iniciado com as flags -gamepadui -steamdeck -steamos3 pouco após o mangohud inicializar.
Esses são os parâmetros padrão que fazem o Steam reconhecer o Steam Deck e encontrar os controles físicos do console, assim como os atalhos, como brilho de tela que é com o botão STEAM + Analogico Esquerdo pra cima ou pra baixo. Como já demos permissões de hardware anteriormente, todos os controles deslizantes vão funcionar a contento aqui.
Também fiz testes com o FSR e o HDR, todos funcionais também caso a tela externa suporte.
6. Blender
A configuração do Blender até a presente data ficou levemente complicada porque a AMD ainda não atualizou o ROCm para o Ubuntu 26.04, sendo que ele vai tentar usar os pacotes do 24.04 em seu lugar criando conflito e falhas. Para contornar, faça assim:
Baixe e instale o ROCm mais recente, que até esta data é o 7.2.4
$ wget https://repo.radeon.com/amdgpu-install/latest/ubuntu/noble/amdgpu-install_7.2.4.70204-1_all.deb $ sudo apt install ./amdgpu-install_7.2.4.70204-1_all.deb $ sudo apt update
Agora instale com:
$ sudo apt install rocminfo:amd64=1.0.0.70204-93~24.04 $ sudo amdgpu-install --usecase=rocm,hip --no-dkms -y
O primeiro comando sacia um conflito que há até a data desta publicação; O segundo comando faz o ROCm validar apenas para o usuário, sem injetar drivers via DKMS pois estes estão incompatíveis. A build atual é para o kernel 6.18 enquanto que o Kubuntu 26.04 está no kernel 7.0. Baixe a Libxml2 ausente:
$ wget https://launchpad.net/ubuntu/+archive/primary/+files/libxml2_2.12.7+dfsg+really2.9.14-0.4ubuntu0.4_amd64.deb
Extraia o .so do pacote:
$ sudo dpkg –fsys-tarfile libxml2_2.12.7+dfsg+really2.9.14-0.4ubuntu0.4_amd64.deb | tar -xO ./usr/lib/x86_64-linux-gnu/libxml2.so.2.9.14 | sudo tee /lib/x86_64-linux-gnu/libxml2.so.2.9.14 > /dev/null
Crie um link simbólico para o .so:
$ sudo ln -sf /lib/x86_64-linux-gnu/libxml2.so.2.9.14 /lib/x86_64-linux-gnu/libxml2.so.2
Revalide o cache:
$ sudo ldconfig
E agora sim, execute o Blender.
Nas configurações do aplicativo, ajuste na aba SYSTEM para usar HIP e marque só a primeira opção, AMD GPU. A APU abaixo fará uso da CPU também e congelar o sistema nas renderizações. Na sua cena, mude para Engine Cycles, render via GPU COMPUTE e renderize algo. Após alguns segundos atualizando os caches do ROCm, a renderização estará concluída usando apenas a GPU, deixando a CPU livre para outras tarefas paralelas.
7. Máquinas Virtuais
Aqui não tem muito segredo, você já possui permissões ao /dev/kvm caso tenha feito a configuração do meu script automático anteriormente citado e já tem o QEMU-KVM no sistema com o LibVirt e o VirtManager instalados.
São virtualizadores de Classe 1, ou seja, com acesso melhor direto ao Hardware do que o VirtualBox. – O mesmo esquema usado no Xen e no PROXMOX
Use-o como achar melhor!
8. Desempenho
E o desempenho? Bem, em meus testes, a diferença foi muito sutil. SteamOS direto no NVMe versus um cartão microSD classe 10, U3, V30 e A2, com o Unigine Heaven obtive:

SteamOS

Kubuntu 26.04 LTS
E quando coloquei o Resident Evil 4 REMAKE, numa TV com HDR + FSR, foi o seguinte:

Kubuntu 26.04 LTS

SteamOS
8.1 Perfil de Energia
Além disso, importante lembrar que no Plasma há a opção de controle de governador de CPU pelo Perfil de Energia. O SteamOS, até a data desta publicação, não tem a opção para alternar entre desempenho, equilibrado ou economia de energia diretamente no desktop.

Porém no Kubuntu temos essa opção!
No modo Economia de Energia, ele forçará o clock o mais baixo possível o que, consequentemente, piorará o desempenho de games mais pesados mas ainda pode executar a contento games leves como emuladores de SNES; ou quem só quer abrir uma planilha, ou assistir algo no Youtube do modo desktop.

Enquanto que mudando para Desempenho, ele forçará o clock alto mesmo em pequenas demandas de trabalho, proporcionando um desempenho turbo quase que constante, ainda que será o modo que, objetivamente, esgotará a bateria rapidamente.
8.2 E em emuladores?
Está empatado com o desempenho visto no, até a data desta publicação, SteamOS 3.8.14: tão bom quanto.
Testei essencialmente o PCSX2 que é mais malandro, com GTA LCS, GTA VCS, Midnight Club 3, God of War I, além de Resident Evil 4 e NFS Pro Street.
Aqui, não notei um ganho mensurável ou prejuízo, novamente, empate técnico.
8.3 Consumo de RAM?
Compensa habilitar o GameScope e iniciar separado como ensinado acima porque assim você economiza 1 gb de uso!
O Kubuntu + Steam consomem 3 Gb por padrão, enquanto que fechar o Plasma e iniciar o Steam pelo GameScope consomem 2 Gb.

Esses valores são os mesmos do SteamOS padrão original do console. – Print cedido gentilmente pelo Lucas SimS!
Não é substancial, mas para um portátil pode ser a diferença entre executar um game pesado com folga e ver um engasgo.
9. Conclusão
Virtualmente falando, uma diferença muito pequena e, na prática, eu não senti qualquer perda na jogabilidade ou mesmo na média de FPS considerando o mesmo preset gráfico. Podemos afirmar sem dúvida que um Kubuntu genérico, com o mínimo de ajuste de desempenho, bate de frente com as otimizações de um SteamOS.
Evidente que o SteamOS talvez tenha um pouco mais de durabilidade na bateria – preciso testar mais – por conta do governador customizado da VALVe, mas, na teoria, a autonomia não caiu tanto simplesmente porque o governador do Kubuntu 26.04 está bastante eficiente para dispositivos móveis.
Para meu uso primário que é jogar, empate técnico. E para permitir que eu ainda explore o hardware com renderização do Blender via GPU, instalação de containers Docker com permissões root privileged ou ainda rodar alguma máquina virtual utilizando o /dev/kvm nativo?
Essa brincadeira me trouxe mais liberdades e possibilidades nunca antes vistas ainda que, respeitosamente, foi a própria VALVe quem permitiu isso ao liberar para o kernel mainline os drivers e módulos do SteamOS, maximizando a compatibilidade para distros customizadas como esta.
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.