Como fazer um fork personalizado do SteamOS
- O SteamOS 3 ("Holo") é uma distribuição Linux baseada em Arch criada para o Steam Deck, o dispositivo portátil de jogos para PC da Valve Software.
- O SteamOS realiza atualizações atômicas baixando um novo sistema de arquivos raiz somente leitura para uma partição inativa.
- O usuário pode executar
steamos-devmode para desbloquear o sistema de arquivos raiz e limpar o banco de dados do pacman, obtendo uma distribuição Linux funcional com um gerenciador de pacotes comum.
Estrutura do sistema SteamOS
- O sistema SteamOS é composto por 8 partições, e a partição de sistema EFI armazena o bootloader de estágio 1 e os arquivos de metadados.
- Dois conjuntos de partições A/B incluem o bootloader de estágio 2 (GRUB), o sistema de arquivos raiz e a partição /var.
- Há uma única partição home que ocupa o restante do espaço em disco.
Como aplicar patches no kernel
- A Valve usa um kernel Linux fortemente modificado no SteamOS.
- O código-fonte do kernel pode ser encontrado no mirror pacman da Valve, e o código-fonte do kernel da imagem estável atual pode ser baixado online.
- O tarball do código-fonte tem 2.9 GiB, porque inclui toda a árvore Git do Linux.
Reempacotamento do sistema de arquivos raiz
- É possível modificar o sistema de arquivos raiz para "reempacotá-lo" de acordo com as necessidades do usuário.
- A imagem do sistema de arquivos raiz pode ser obtida comprando um Steam Deck ou baixando a imagem de recuperação do SteamOS.
- A imagem pode ser baixada usando o casync para obter os fragmentos necessários do repositório .castr e gravá-los na partição inativa do sistema de arquivos raiz.
Criação de bundle RAUC
- Depois de criar o repositório casync e o índice de blobs, é possível criar um bundle RAUC.
- O RAUC estabelece confiança usando certificados X.509, e é preciso instalar um novo certificado no sistema de arquivos raiz.
- O bundle RAUC deve incluir os arquivos rootfs.img.raucb e rootfs.img.caibx, que precisam ser enviados para um servidor web.
Configuração do servidor de atualização
- O servidor de atualização deve fornecer um arquivo JSON, que precisa corresponder ao manifest.json da imagem.
- Usando a configuração do Caddy, é possível redirecionar para live.json as requisições que o steamos-atomupd faz para QueryUrl e MetaUrl.
Opinião do GN⁺
- Importância de um sistema operacional personalizado: este texto mostra como o usuário pode personalizar o sistema operacional de acordo com suas necessidades. Isso é importante para oferecer soluções sob medida a desenvolvedores de software.
- Valor como material de aprendizado: por meio desse processo, engenheiros de software iniciantes podem aprender como distribuições Linux funcionam e como podem ser personalizadas.
- Contribuição para a comunidade: compartilhar esse tipo de conhecimento contribui para a comunidade de código aberto e pode ajudar outros usuários a iniciarem projetos semelhantes.
1 comentários
Comentários do Hacker News
Entusiasmo por uma exploração profunda de personalizar software/SO do jeito que o usuário quiser
nixpkgs(não vem instalado por padrão, mas pode ser instalado no dispositivo sem precisar fazer um fork do sistema operacional inteiro)Avaliação minuciosa e interessante da postagem
Expressão de nostalgia pelo favicon de chuva de meteoros do Netscape
Pedido de uma GPU para um servidor NAS com unRaid, com a intenção de implementar Steam Headless por meio de uma imagem Docker
nvidia-persistenced)Já existem distribuições baseadas em SteamOS
Opinião sobre upgrades A/B
Relato do uso de um handheld para games (Legion Go) para ganhar mais experiência com Linux
Relato de testes alfa do suporte a 120hz VRR e HDR no hardware AMD do bazzite.gg
Descoberta interessante de que o SteamOS é baseado em Arch Linux
Recomendação do HoloISO para quem tem interesse em rodar SteamOS em um PC Linux