1 points par GN⁺ 2024-01-01 | 1 commentaires | Partager sur WhatsApp

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

 
GN⁺ 2024-01-01
Avis sur Hacker News
  • Enthousiasme pour l’exploration approfondie de la personnalisation des logiciels/OS selon les préférences de l’utilisateur

    • Heureusement, le Steam Deck ne soulève pas d’inquiétudes liées à la Tivoization (le fait pour un fabricant de matériel de restreindre l’exécution à certains logiciels)
    • Le point le plus intéressant de l’article est la mention que le Steam Deck prend en charge 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

    • Personnellement, je ne ferais pas ce type de travail
    • La période où j’ai le plus travaillé avec Linux remonte à l’ère du RaspberryPi, et cela ne représentait malgré tout qu’1 %
    • Bravo à l’auteur
  • 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

    • Prévoit d’utiliser un client Moonlight sur un laptop Windows
    • Comme le NAS reste inactif la plupart du temps, cela semble préférable à l’achat d’un nouveau matériel desktop
    • Il faut conserver les paramètres d’alimentation de la carte Nvidia en mode idle (probablement possible en appelant nvidia-persistenced)
  • Il existe déjà des distributions basées sur SteamOS

    • ChimeraOS convient bien à une utilisation sur PC et à la manette, et fonctionne parfaitement, y compris avec les addons Steam Deck
  • Avis sur les mises à niveau A/B

    • Il serait peut-être plus simple d’utiliser une distribution live ou d’installer un système de récupération d’une ancienne version sur une partition
    • L’auteur partage sa récente transition vers Arch Linux et dit faire davantage confiance à Arch qu’à Valve
    • La qualité des paquets d’Arch, les mises à jour rapides du dépôt principal et les paquets AUR utiles expliquent son passage depuis NixOS
  • Partage d’expérience avec un handheld gaming (Legion Go) pour gagner en expérience avec Linux

    • Il évitait Linux car cela semblait limité en compatibilité et nécessiter des ajustements constants
    • Curiosité à propos des systèmes de fichiers immuables et du fait que Linux traditionnel accorde facilement les droits root aux logiciels
    • Retour d’expérience sur NixOS : on peut tester facilement divers composants et les supprimer complètement si cela ne convient pas
    • La communauté Jovian reconstitue la tarball SteamOS de Valve sous forme de commits tagués sur GitHub, ce qui permet d’explorer les sources comme un employé de Valve
    • Via Jovian, il est possible d’installer sa propre copie de SteamOS sur NixOS
  • 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é