Chibi-nah::blog

Des geekeries, de la MAO, de tout et de rien…

Archives

SteamOS

Logo SteamOS

Tiens, comme c'est dimanche, si je testais SteamOS ?

Edit : Le tutoriel détaillé pour installer SteamOS en 2015 est présent ici
https://blog.chibi-nah.fr/tuto-installation-steamos

SteamOS ?

Il s'agit d'une distribution dérivée de Debian, créée par Valve Software (Half-Life, Steam, Portal, L4D…), et destinée à fonctionner sur les machines appelées "SteamBox". À noter, n'importe qui peut monter sa propre "SteamBox".

Installation.

J'avais une partition de 9 Go inutilisée, et une distrib debian sid sous la main. Ne souhaitant pas suivre les instructions "officielles", car trop pénibles (nécessite un UEFI, un disque de 500 Go, une clé usb externe, effacera la totalité du disque dur, pas de dual boot, support des cartes nvidia uniquement…[1], faisons ça à la main, de manière artisanale. Donc, utilisation de debootstrap, chroot, compilation d'un kernel 3.12.6 (j'en ai profité pour mettre à jour mon kernel sous sid dans la foulée), et création des paquets .deb. Installation des paquets, configuration de grub sur la partition sda7, mise à jour de mon grub "principal", puis reboot.

Et là, c'est le drame.

Kernel panic ! Unable to mount root.

Bon, reboot sous sid, et regardons ce qui cloche.

Premier point, je compile mes noyaux sans initrd. Ce truc là sert à rien quand on compile ses propres noyaux, vu que les pilotes requis, genre, ext4, sont compilés en dur et non en tant que module (où est l'intérêt de les mettre en module ? faut monter une image intermédiaire qui contient le module pour monter la partition root pour charger les modules… bref).

Second point, cette andouille de GRUB, malgré l'option ROOT-UUID = false, a réussi à mettre un root=uuid=. Pour que l'UUID soit reconnu, il faut charger l'initrd, qui va alors chercher quelle partition correspond à l'UUID passé en paramètre, puis va corriger la partition root. Encore un truc tordu écrit par je ne sais qui, et dont l'utilité est discutable. Re bref.

Je remet à jour grub, via update-grub (sachant qu'au départ, ce qui m'a fait basculer de lilo à grub, c'est la nécessité de mettre à jour lilo à chaque modif et que grub, suffisait d'enregistrer le fichier. Désormais, on change un paramètre de grub, faut lancer une commande qui va générer un fichier de config totalement incompréhensible. Cf un ancien article).

Cette fois, je vérifie que le grub.cfg ne contient pas d'UUID.

C'est bon ? On reboot ?

Qui a dit : pas de multiboot ?

Un redémarrage plus tard, arrivée sur Debian Wheezy SteamOS, suivi de Login:.

Bien.

Tiens, définissons un mot de passe root, c'est toujours
utile.

Les utilisateurs et les dépots valve ont été configurés lors de l'installation, reste à finir les 2-3 trucs qui reste, genre pulse-audio, drivers…

Démarrage de lightdm, et … plaf ! Écran noir.

Vive openSSH

Connexion en urgence via ssh (une excellente idée de l'installer avant toute chose, au cas où), kill de lightdm, et constatation des dégats. Lightdm n'a pas arrêté de faire "start-error-respawn-error-respawn-error-respawn", en boucle. Suffisamment de quoi générer 10 Mo de log en 30 secondes.

Démarrage de X via startx, et arrivée sur le bureau Gnome 3.4, en mode "classique" (ou failsafe). Steam demandant glx, vérifions que déjà, je suis sur la radeon (ah, tiens ? j'ai laissé DIGD au lieu de DDIS dans rc.local, corrigeons ça). Arrêt de gnome et X, basculons sur la radeon (sudo echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch), relançons X, et… toujours pas de glx (glxinfo : pas de DRI, pas de DRM, rien).

Bon, ajoutons debian wheezy en apt-pinning, puis mettons à jour les dépots.

Tant que j'y suis, ajoutons les paquets de base, genre htop, vim, mc, et de quoi configurer alsa.

Bizarre, j'ai bien le driver radeon libre dans les dépots steam, mon kernel est le même que sur sid, et j'ai pas de problèmes pour faire tourner UT2004 dessus. Doit manquer un paquet ou deux. Installons alors mesa, et tout ce qui concerne DRI-DRM et radeon. Effectivement, il manquait quelques paquets.

La liste complète de tous les paquets installés. Certains ne sont pas disponible dans les dépots de valve ni de debian. Il s'agit des paquets liés au linux-*, spécifiques à ma machine. À noter, j'ai commencé à faire le ménage dans les paquets, mais il reste des trucs à virer, genre, apache.

Ooooh, le beau troll gnome

Bureau Gnome

Cette fois, gnome démarre en mode "normal", et me montre un beau bureau (/me tousse), en précisant bien que c'est la radeon qui tourne. glxinfo montre que DRI est bien actif, et également plein plein d'extensions GL*. Ça semble fonctionner. Démarrons alors steam en mode "desktop". Ça marche. Réactivons alors lightdm, un reboot et une mise à jour steam plus tard, voilà le mode "Big Picture". Entrons les informations de connexion, et explorons les menus.

Démarrage de SteamOS. Animation du démarrage de Steam. Steam, en mode Big Picture Paramètres. Et voilà, SteamOS avec une radeon. C'était pas si
compliqué. SteamOS avec le pilote radeon libre \o/

Quelques trucs vides ou encore en test, rien de grave. Quelques bugs bien pénibles, comme un crash de l'overlay steam (pas moyen d'en sortir, obligé de tuer steam via un tty), ou le redémarrage de steam quand on sort d'un jeu, et… pas de son. C'est le moment de configurer correctement alsa, donc je commencer par jarter pulse-audio. Tant que la base ne marche pas, ça sert à rien de bidouiller la surcouche. Donc, dans /etc/default/pulse-audio, désactivons son démarrage auto, puis arrêt du service, /etc/init.d/pulse-audio stop.

Après une heure d'acharnement et de lecture de doc (mais pourquoi ça marche avec root mais pas avec les utilisateurs), je m'aperçois que c'est simplement le groupe "pulse" qu'il faut utiliser en plus d'audio ¬_¬'. Hop, usermod -aG pulse steam.

Reboot, et cette fois, j'ai le son. Je crois que j'ai oublié de réactiver pa. Je verrai ça plus tard.

Plus qu'à tester

Faisons quelques tests, en évitant d'appeler l'overlay en pleine partie, et ça marche. Musique, vidéo, interface "relativement" fluide (avec le driver radeon libre), et le petit plus : SteamOS fonctionnel avec une radeon, alors que ce n'est pas (encore) supporté.

Vidéo montrant SteamOS, du boot à l'utilisation, en passant par un jeu et le navigateur web, pour finir par l'arrêt. Télécharger au format webm, 640x360, lisible par vlc


1 : http://store.steampowered.com/steamos/buildyourown