1 puntos por GN⁺ 2024-01-01 | 1 comentarios | Compartir por WhatsApp

Cómo bifurcar SteamOS de forma personalizada

  • SteamOS 3 ("Holo") es una distribución de Linux basada en Arch creada para Steam Deck, el dispositivo portátil para juegos de PC de Valve Software.
  • SteamOS realiza actualizaciones atómicas descargando un nuevo sistema de archivos raíz de solo lectura en una partición inactiva.
  • El usuario puede ejecutar steamos-devmode para desbloquear el sistema de archivos raíz y limpiar la base de datos de pacman para obtener una distribución de Linux funcional con un gestor de paquetes normal.

Estructura del sistema de SteamOS

  • El sistema de SteamOS está compuesto por 8 particiones, y la partición del sistema EFI almacena el cargador de arranque de etapa 1 y los archivos de metadatos.
  • Dos conjuntos de particiones A/B incluyen el cargador de arranque de etapa 2 (GRUB), el sistema de archivos raíz y la partición /var.
  • Hay una única partición home que ocupa el resto del espacio en disco.

Cómo aplicar parches al kernel

  • Valve usa un kernel de Linux muy modificado en SteamOS.
  • El código fuente del kernel puede encontrarse en el mirror de pacman de Valve, y el código fuente del kernel de la imagen estable actual puede descargarse en línea.
  • El tarball del código fuente pesa 2.9 GiB, porque incluye todo el árbol Git de Linux.

Reempaquetado del sistema de archivos raíz

  • Es posible modificar el sistema de archivos raíz para "reempaquetarlo" según las necesidades del usuario.
  • La imagen del sistema de archivos raíz puede obtenerse comprando un Steam Deck o descargando la imagen de recuperación de SteamOS.
  • La imagen puede descargarse usando casync para bajar los fragmentos necesarios desde el repositorio .castr y escribirlos en la partición inactiva del sistema de archivos raíz.

Creación de un bundle de RAUC

  • Después de crear el repositorio casync y el índice de blobs, se puede crear un bundle de RAUC.
  • RAUC establece la confianza usando certificados X.509, y es necesario instalar un nuevo certificado en el sistema de archivos raíz.
  • El bundle de RAUC debe incluir los archivos rootfs.img.raucb y rootfs.img.caibx, que deben subirse a un servidor web.

Configuración del servidor de actualizaciones

  • El servidor de actualizaciones debe servir un archivo JSON, y este archivo debe coincidir con el manifest.json de la imagen.
  • Usando una configuración de Caddy, es posible redirigir las solicitudes que steamos-atomupd genera con QueryUrl y MetaUrl hacia live.json.

Opinión de GN⁺

  • Importancia de un SO personalizado: Este artículo muestra cómo los usuarios pueden personalizar el sistema operativo según sus necesidades. Esto es importante para que los desarrolladores de software ofrezcan soluciones a medida.
  • Valor como material de aprendizaje: A través de este proceso, los ingenieros de software principiantes pueden aprender cómo funciona una distribución de Linux y cómo personalizarla.
  • Contribución a la comunidad: Compartir este tipo de conocimiento contribuye a la comunidad de código abierto y puede ayudar a otros usuarios a iniciar proyectos similares.

1 comentarios

 
GN⁺ 2024-01-01
Comentarios de Hacker News
  • Entusiasmo por explorar a fondo cómo personalizar el software/SO exactamente como uno quiere

    • Qué bueno que Steam Deck no genera preocupaciones sobre la tivoización (la práctica de que el fabricante del hardware limite la ejecución a cierto software)
    • La parte más interesante del artículo fue la mención de que Steam Deck soporta nixpkgs (no viene instalado por defecto, pero se puede instalar en el dispositivo sin tener que hacer un fork de todo el SO)
  • Evaluación exhaustiva e interesante de la publicación

    • Personalmente, yo no haría algo así
    • La época en la que más trabajé con Linux fue durante los años de Raspberry Pi, y aun así eso apenas fue el 1%
    • Mis aplausos para el autor
  • Expresión de nostalgia por el favicon de lluvia de meteoros de Netscape

  • Quieren pedir una GPU para su servidor NAS con unRaid para implementar Steam Headless mediante una imagen de Docker

    • Piensan usar el cliente Moonlight desde una laptop con Windows
    • Como el NAS pasa la mayor parte del tiempo inactivo, creen que es mejor que comprar hardware nuevo de escritorio
    • Hace falta mantener la configuración de energía de la tarjeta Nvidia en estado inactivo (probablemente se pueda con una llamada a nvidia-persistenced)
  • Ya existen distribuciones basadas en SteamOS

    • ChimeraOS es adecuada para PC y uso con control, y funciona perfectamente incluyendo complementos de Steam Deck
  • Opiniones sobre las actualizaciones A/B

    • Usar una distribución live o instalar un sistema de recuperación de una versión antigua en una partición podría ser más simple
    • El autor comparte su experiencia reciente al pasarse a Arch Linux y comenta que confía más en Arch que en Valve
    • La calidad de los paquetes de Arch, las rápidas actualizaciones del repositorio principal y los útiles paquetes de AUR son las razones por las que dejó NixOS
  • Comparte su experiencia usando una consola portátil para gaming (Legion Go) para ganar más experiencia con Linux

    • Había evitado Linux porque parecía tener compatibilidad limitada y requerir ajustes constantes
    • Le da curiosidad el sistema de archivos inmutable y cómo el Linux tradicional otorga con facilidad permisos de root al software
    • Comparte su experiencia usando NixOS: permite probar fácilmente distintos componentes y eliminarlos por completo si no convencen
    • La comunidad de Jovian reconstruyó el tarball de SteamOS de Valve en commits etiquetados en GitHub, lo que permite explorar el código fuente como si fueras un empleado de Valve
    • A través de Jovian, puedes instalar tu propia copia de SteamOS sobre NixOS
  • Comparte experiencia con soporte de 120hz VRR y pruebas alfa de soporte HDR en hardware AMD de bazzite.gg

  • Le resultó interesante descubrir que SteamOS está basado en Arch Linux

  • Si te interesa ejecutar SteamOS en una PC con Linux, recomiendan HoloISO