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
Comentarios de Hacker News
Entusiasmo por explorar a fondo cómo personalizar el software/SO exactamente como uno quiere
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
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
nvidia-persistenced)Ya existen distribuciones basadas en SteamOS
Opiniones sobre las actualizaciones A/B
Comparte su experiencia usando una consola portátil para gaming (Legion Go) para ganar más experiencia con Linux
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