Manjaro Linux PS4 [v2]

ps4-linteret-de-lancer-gnu-linux-et-manjaro-sur-ps4.jpg

Des contributeurs seraient appréciés, afin de traduire cette page dans d'autres langues, de même que toute contribution liée à Manjaro sur PS4 sera évidemment la bienvenue. :-)
Lors du chargement de payload et de Linux, veillez à vérifier que votre disque concerné est bien le seul a être branché. Il arrive parfois qu'un shell root apparaisse (emergency) au lieu de booter sur Manjaro. Parfois avec certaines clé USB, entre le moment ou le payload est chargé et le noyau chargé en mémoire et booté, la clé USB est déconnectée, et donc pas vue par le noyau. Rebooter la console, ou utiliser les commandes de boot après avoir débranché/rebranché la clé peut permettre ensuite de démarrer.

Manjaro PS4 est un port de la distribution PC prête à l'emploi pour la Playstation 4 (Fat/Slim/Pro).

Cette page est la documentation minimale spécifique au projet, accessible et éditable par tous et pour tous. (Le wiki officiel ayant trait à toute information généraliste et technique sur la distribution, tout comme le wiki ArchLinux)

Comme vous avez dû suivre récemment, Eeply a apporté une contribution au noyau Linux avec le driver du pont Display Port ⇒ HDMI Panasonic MN864729, cette avancée nous permet enfin de profiter de la sortie vidéo des PS4 Slim et Pro sous Linux.

Dans ces conditions, je me suis mis au travail, et malgré quelques déboires, j'ai pu en tirer de petite chose, c'est pourquoi je vous apporte une distribution prêt à l'emploi, basée sur ArchLinux, mais avec l'accessibilité d'une Ubuntu.

Pourquoi Manjaro ? Parce qu'est elle est à la fois simple à prendre en main, accessible, mais également très modulable, et avantage de taille, rolling release, ce qui signifie qu'elle est mise à jour en temps réel à mesure de la sortie de tous ses composants systèmes (pas de mise à jour à faire tous les X temps comme Ubuntu ou Fedora), mais aussi parce que, basée sur ArchLinux, elle apporte son lot d'outil dont le dépôt communautaire de scripts AUR.

Le système de dépôt Aur, communautaire, est très intéressant, il pourrait être le point d'entrée pour que n'importe qui apporte sa contribution facilement pour Linux sur PS4 côté logiciel, via ce dépôt, quiconque peut proposer un script, qui va empaqueter automatiquement n'importe quel fichier/logiciel à partir de sources ou binaires pré-compilées. Il est ainsi possible de proposer des applications, des jeux, des fichiers de configuration, ou même… Un noyau Linux sur mesure, des pilotes customisés, etc.. Et le dépôt grouille déjà d'émulateurs, il est ainsi très simple de compiler automatiquement, les dernières révisions issues de github de nombreux émulateurs (RPCS3 y compris.).

Le processeur x86_64 d'AMD est également un très gros avantage de compatibilité avec l'univers PC, avec Linux sous PS4.

Vous pourrez apporter vos contributions au dépôt communautaire ici ⇒ https://aur.archlinux.org


Voici ce qu'apporte la distribution préconfigurée, de multiples solutions d'accès distantes ont été intégrées et activées par défaut pour faciliter débogage et apports :

-Intégration de tous les apports/patchs de la team Psxita qu'ils ont repris depuis les patchs GPU de la team fail0verflow

-Noyau Linux 4.9 patché par Eeply pour le pont Panasonic MN864729 (dernière version en date avec unification des différents modèles de PS4)

-Boot automatique sur Manjaro x64 (basé sur l'initramfs de la vieille version fedora PS4)

-Dernières mises à jour incluses (23/04/2018) [Manjaro 17.1.8 Gnome x64]

-SSH activé par défaut, accès via un PC sur le même réseau local

-X2Go serveur (Mate uniquement !) activé par défaut, accès local/distant à une session de bureau via X2Go client sous Linux ou Windows.

-Suppression de l'environnement de bureau LXDE

-Suppression de KODI

-Suppression de VLC (au profit de SmPlayer)

-Suppression de Virtualbox (inutile tant que personne n'aura porté les kernel-headers depuis les sources du Bzimage délivré par Eeply)

-Suppression de Chromium (double emploi avec Firefox, extrêmement performant depuis la mise à jour Quantum)

-Teamviewer 13 préinstallé. (Accès distant à session de bureau)

-Environnements de bureau Gnome, Mate.

-Firefox (personnalisation d'extensions et thèmes noirs, intégration antipub Ublock origin, intégration “Startpage”), Thunderbird, Libreoffice, Gnote, Smplayer, Filezilla, XCFA, Handbrake.

-Des émulateurs : Fceux (NES) / Nestopia (NES) /Snes9X (Super Nes) / Yabause (Sega Saturn) /PCSXR (PsOne)/PCSX2 (PS2) /PCSSPP (PSP) /Redream Dreamcast) /Reicast (Dreamcast) / CEMU (WiiU)/ Dolphin (GameCube/Wii) / DesMume (Nintendo DS) / MGBA (Game boy/ Game Boy Advance), RetroArch (multicores de beaucoup de consoles de jeu)

-Steam

-Interpréteur Wine Staging Nine + PlayOnLinux, pour installer simplement des jeux et applications Windows sous Linux, sans émulation, nativement.

-Préconfiguration Azerty/Français intégrale.

-Intégration du logiciel Solaar pour le support des dongles Logitech unifying.

-Flatpak (intégration du système de paquetage universel, mais nécessité d'avoir des kernels-headers pour l'utiliser, en attente d'une contribution donc)

-Intégration de la gestion dynamique du swap (fichier d'échange), activée par défaut, toutefois pour préserver la mémoire flash de vos clés USB, vous pouvez le désactiver “sudo systemctl disable swapspace && sudo systemctl stop swapspace”

-Intégration de multiples extensions dans Gnome-Shell (dont l'activité du disque, le débit réseau, la gestion des cartes son, un tueur d'applications à la volée…)

-Intégration de l'explorateur de fichiers Nemo à la place de Nautilus

-Installation du lecteur audio “Audacious” (prise en charge de multiples effets + extra stereo + formats natifs de musiques de jeux 8/16 bits)


La distribution Manjaro en elle même n'a pas de soucis particuliers, tous les bugs rencontrés dépendent des 2 autres éléments, le payload permettant de charger le noyau Linux depuis OrbitOS-BSD (qu'il s'agisse de la version de la version de valentinbreiz ou vultra) , et ledit noyau Linux patché par Eeply qui lui va charger l'initramfs (une sorte de minuscule distribution très légère) qui via ses scripts, chargera ensuite une vraie distribution GNU (tous les éléments libres gravitants autour du noyau Linux, de l’environnement de bureau, les services, les API, logiciels, etc…)

En effet, les PayLoads de valentinbreiz et vultra sont assez instables lors du chargement initial, en moyenne, on retrouve plusieurs types de crashs/échecs avant de réussis à booter Linux et avoir quelque chose s'affichant à l'écran, très souvent on peut rencontrer un crash complet de la PS4 avec vérification du disque dur, etc… Ou même, se retrouver avec un écran noir/éteint. Et Dans de rares cas, j'ai même rencontré un Freeze de l'OS de la PS4 au moment de charger Linux, ou le noyau d'Eeply qui ne charge pas la distribution tel qu'il est censé le faire…

Après de multiples tests, a été remarqué que réinitialiser complêtement la PS4, puis ne passer que par le guide utilisateur pour exploiter la faille webkit et charger le payload Linux, semble être plus stable

Quelques bugs particuliers qui nécessiteront d'être corrigés :

-Accélération 3D/composite partielle (c'est encore loin d'être parfait mais beaucoup mieux qu'auparavant.)

-La prise en charge des résolutions est encore limité au 1080P, quand bien même la sortie HDMI 2.0 devrait aussi bien gérer de la 4K que des résolutions exotiques en 21/9 (3440×1440 et 2560×1440).

-Absence de pilote Wifi et Bluetooth

-Pas de son sur sortie HDMI (j'utilise une enceinte bluetooth/USB Beoplay A1 sur un port USB)

-Carte son compatible Linux sur port optique (ou ampli optique).

-Disque dur interne (port SATA) non reconnu

-Lecteur Blu-ray non reconnu

Tous ces bugs rencontrés, ne dépendront que des mises à jour apportées au PayLoad, et au noyau Linux (BzImage) intégré dans la première partition en FAT, que le PayLoad va venir charger, ce sont les deux seuls éléments dont il faudra se soucier réellement pour corriger les problèmes (excepté les possibles mises à jour du pilote graphique via les futures contribution de la team Psxita), et ça sera à voir du côté d'Eeply et valentinbreiz et vultra.

Les apports de chacun :

Au niveau des apports, sachez que la virtualisation est supportée par l'APU AMD, donc théoriquement il est possible de pouvoir lancer VirtualBox. Mais ce dernier a besoin des kernel-headers (les sources) du noyau Linux de Eeply pour pouvoir compiler et charger son module (pilote) et être utilisable. Il faudra donc qu'une âme charitable propose sur le dépôt communautaire AUR, un paquet intégrant proprement les sources dans un paquet “kernel-headers” tel que c'est fait pour les noyaux prévus pour PC, et pourquoi pas, une gestion des mises à jour du noyau au passage directement sur la partition contenant ce dernier (BzImage)

Sachez aussi que quel que soit l'accessoire USB que vous utiliserez, les pilotes que vous voudrez utiliser dépendront essentiellement de deux choses, leur intégration au noyau Linux fourni par Eeply, OU la disponibilité de kernel Headers (les sources du noyau proprement intégrées à la distribution) permettant à tout un chacun de rétro-porter n'importe quel pilote.

Enfin, sachez que le Noyau Linux étant libre et open source, il y a de bonnes chances qu'à termes, tous les apports d'Eeply et de la team Psxita ainsi que n'importe quel contributeur, soient intégré au noyau Linux lors du développement de version ultérieures, et une fois qu'un pilote est présent dans le noyau Linux… Il y reste !

Personne ne rencontrera donc les problèmes typiques de Linux sur PS3, avec un OtherOS bridant l'accès au GPU, une architecture peu courante et quasi à l'abandon et un support logiciel sur la durée pauvre. L'architecture PC de la PS4 joue en notre faveur, dans dix ans, il pourra toujours y avoir des mises à jour et un système Linux à jour, donc n'importe lequel de vos apports, sera fait pour durer !

Vous pouvez récupérer le code source de tout le nécessaire pour démarrer et utiliser Linux sur PS4, étudier, forker, contribuer à l'amélioration de ce dernier.

Pensez surtout bien à rapporter vos bugs afin de permettre aux développeurs de les corriger, indiquez votre situation, les symptômes, et la révision de votre PS4 !

Eeply (noyau & sources Linux): https://github.com/eeply/ps4-linux/

Valentinbreiz (Payload loader noyau Linux): https://github.com/valentinbreiz/PS4-Linux-Loader/

Ps3itaTeam (Port des drivers GPU (paquets utilisés dans Manjaro PS4 v2), wifi, Bluetooth, etc…): https://github.com/Ps3itaTeam/ps4linux-video-drivers

Fail0verflow Team (Patch des pilotes 3D open source ATI/AMDGPU) https://github.com/fail0verflow/ps4-radeon-patches

xf86-video-ati (Pilotes 3D libres pour GPU AMD) ⇒ https://cgit.freedesktop.org/xorg/driver/xf86-video-ati/

xf86-video-amdgpu (Pilotes 3D libres pour GPU AMD) ⇒ https://cgit.freedesktop.org/xorg/driver/xf86-video-amdgpu/

Vultra (Payload loader Linux) : https://github.com/Vultra/PS4-4.55-Linux-Loader/

Marcan (Vulkan Linux) : https://github.com/marcan?tab=overview&from=2018-03-01&to=2018-03-31,


Vous pourrez récupérer les différents fichiers nécessaires sur ces liens :

Partition No1 (Noyau & Initramfs) | FAT

Partition No2 (Système) | EXT4

Fichier image unique compressé

Suite à de multiples demande, je met tout de même à disposition les deux partition en un seul fichier, découpé en plusieurs archives compressées, comme la version 1.

Sommes md5 des fichier :

Manjaro_Linux_PS4_v2-single.7z.001 : 187b051827ce1d7dc85f936a493abd29

Manjaro_Linux_PS4_v2-single.7z.002 : 8b2e2d43d6bb3bf63ed3f9e5c6904fc2

Manjaro_Linux_PS4_v2-single.7z.003 : 759688296dd9a78117293ac72c28a239

Manjaro_Linux_PS4_v2-single.7z.004 : 183c9104d64cefed4280ddb30a091403

Manjaro_Linux_PS4_v2-single.7z.005 : aac6063ff4009786a90a12336e8a6e69

https://multiup.org/download/d0f4584a96112ae4caf784a06c3d78b4/Manjaro_Linux_PS4_v2-single.7z.001

https://multiup.org/download/2af4c55dc620e37571ce013a1be958df/Manjaro_Linux_PS4_v2-single.7z.002

https://multiup.org/download/f624b4b1208d5325021b693a85adf6fc/Manjaro_Linux_PS4_v2-single.7z.003

https://multiup.org/download/b5c9a1ce4718a0181b5ca979f282cc2a/Manjaro_Linux_PS4_v2-single.7z.004

https://multiup.org/download/1c9908c0aa55df482f9ce2ddc688e360/Manjaro_Linux_PS4_v2-single.7z.005

Miroir :

http://osremix.com/share/manjaro-ps4/v2/Manjaro_Linux_PS4_v2-single.7z.001

http://osremix.com/share/manjaro-ps4/v2/Manjaro_Linux_PS4_v2-single.7z.002

http://osremix.com/share/manjaro-ps4/v2/Manjaro_Linux_PS4_v2-single.7z.003

http://osremix.com/share/manjaro-ps4/v2/Manjaro_Linux_PS4_v2-single.7z.004

http://osremix.com/share/manjaro-ps4/v2/Manjaro_Linux_PS4_v2-single.7z.005


Il a été choisi cette fois de scinder la release en deux partitions dans des fichiers images séparés. La première contient la partition FAT contenant le dernier noyau d'EEply en date, ainsi qu'un initramfs permettant de charger un microsystème GNU, qui va directement charger le système GNU Manjaro.

Vous aurez besoin d'une distribution Linux quelconque sous Gnome pour restaurer ces fichiers proprement (même une machine virtuelle sous Virtualbox avec le support de l'USB activé suffira)

Ensuite, avec l'utilitaire de partitionnement Gparted ou Gnome-Disk, vous devrez créer une partition de 100Mo sur votre périphérique USB (je conseille d'utiliser un SSD, mais une clé USB ou un disque dur externe fonctionnent aussi. Songez à utiliser du matériel compatible USB 3.) Puis, vous devrez créer une deuxième partition d'au moins 12Go sur l'espace libre restant.

Ensuite, avec Gnome-Disk, restaurez l'image de la partition “Linux_kernel_initramfs_PS4.img” sur la première de 100Mo, puis sur la seconde plus grande, restaurez l'image disque “Manjaro_Ps4_System-V2.img”

Une fois ces restaurations effectuées, débranchez puis rebranchez votre périphérique USB, la première partition devrait être en FAT avec l'UUID “D730-79B9”, et la seconde en EXT4 avec l'UUID 402b50ea-4a22-43e2-8162-079b0cff2461

Si vous disposez d'espace disque supplémentaire, vous pourrez alors sans problème utiliser l'utilitaire de partitionnement Gparted pour agrandir/adapter la taille de la seconde partition selon vos désirs.

Utilisateur : ps4

Mot de passe : 1

Selon vos usages, pour des raisons évidentes de sécurité, pensez à changer votre mot de passe ! ;-)

L'accès SSH est activé par défaut, n'oubliez pas qu'en cas d'écran noir après chargement du payload, si la led du lecteur de disques reste blanche, c'est que Linux n'a pas booté du tout. Par contre en cas d'écran noir, avec la led du lecteur de disque qui passe du blanc au bleu, puis change régulièrement du bleu⇒violet⇒bleu, c'est que Linux a bien chargé, un accès SSH/x2go devrait alors être possible malgré tout (et vous permettre d'étudier ce qui ne va pas.


Un grand merci à la Team Fail0verflow, Eeply, la team Psxita, Valentinbreiz/Vultra, et tous les contributeurs GNU/Linux.