Comment forker SteamOS de façon personnalisée
- SteamOS 3 ("Holo") est une distribution Linux basée sur Arch, conçue pour le Steam Deck, l’appareil portable de jeu sur PC de Valve Software.
- SteamOS effectue des mises à jour atomiques en téléchargeant un nouveau système de fichiers racine en lecture seule sur une partition inactive.
- L’utilisateur peut exécuter
steamos-devmode pour déverrouiller le système de fichiers racine et nettoyer la base de données pacman afin d’obtenir une distribution Linux fonctionnelle avec un gestionnaire de paquets classique.
Architecture du système SteamOS
- Le système SteamOS est composé de 8 partitions, et la partition système EFI stocke le chargeur d’amorçage de niveau 1 ainsi que des fichiers de métadonnées.
- Deux ensembles de partitions A/B contiennent le chargeur d’amorçage de niveau 2 (GRUB), le système de fichiers racine et la partition /var.
- Une unique partition home occupe le reste de l’espace disque.
Comment appliquer des patchs au noyau
- Valve utilise dans SteamOS un noyau Linux fortement modifié.
- Les sources du noyau peuvent être trouvées sur le miroir pacman de Valve, et les sources du noyau de l’image stable actuelle sont téléchargeables en ligne.
- L’archive source pèse 2,9 GiB, car elle inclut l’intégralité de l’arbre Git Linux.
Repackaging du système de fichiers racine
- Il est possible de modifier le système de fichiers racine pour le « reconditionner » selon les besoins de l’utilisateur.
- L’image du système de fichiers racine peut être obtenue en achetant un Steam Deck ou en téléchargeant l’image de récupération de SteamOS.
- L’image peut être téléchargée en utilisant casync pour récupérer les fragments nécessaires depuis un dépôt
.castr, puis en les écrivant sur la partition inactive du système de fichiers racine.
Création d’un bundle RAUC
- Après avoir créé le dépôt casync et l’index de blobs, il est possible de générer un bundle RAUC.
- RAUC établit la confiance à l’aide de certificats X.509, et un nouveau certificat doit être installé dans le système de fichiers racine.
- Le bundle RAUC doit inclure les fichiers rootfs.img.raucb et rootfs.img.caibx, qui doivent être envoyés sur un serveur web.
Configuration du serveur de mise à jour
- Le serveur de mise à jour doit fournir un fichier JSON qui doit correspondre au
manifest.json de l’image.
- Une configuration Caddy permet de rediriger vers
live.json les requêtes que steamos-atomupd génère avec QueryUrl et MetaUrl.
L’avis de GN⁺
- Importance d’un OS personnalisé : cet article montre comment les utilisateurs peuvent personnaliser le système d’exploitation en fonction de leurs besoins. C’est important pour proposer des solutions sur mesure aux développeurs logiciels.
- Valeur comme support d’apprentissage : à travers ce processus, les ingénieurs logiciels débutants peuvent apprendre le fonctionnement d’une distribution Linux et les façons de la personnaliser.
- Contribution à la communauté : le partage de ce type de connaissances contribue à la communauté open source et peut aider d’autres utilisateurs à lancer des projets similaires.
1 commentaires
Avis sur Hacker News
Enthousiasme pour l’exploration approfondie de la personnalisation des logiciels/OS selon les préférences de l’utilisateur
nixpkgs(ce n’est pas installé par défaut, mais il est possible de l’installer sur l’appareil sans forker tout l’OS)Évaluation approfondie et intéressante du billet
Expression d’une certaine nostalgie pour le favicon de pluie de météores de Netscape
Commande d’un GPU pour un serveur NAS unRaid afin de mettre en place Steam Headless via une image Docker
nvidia-persistenced)Il existe déjà des distributions basées sur SteamOS
Avis sur les mises à niveau A/B
Partage d’expérience avec un handheld gaming (Legion Go) pour gagner en expérience avec Linux
Partage d’un test alpha de la prise en charge du 120 Hz VRR et du HDR sur matériel AMD avec bazzite.gg
Découverte intéressante du fait que SteamOS est basé sur Arch Linux
Si vous souhaitez exécuter SteamOS sur un PC Linux, HoloISO est recommandé