Fabriquer sa propre console portable : La partie software

Avant d’attaquer ce didacticiel, vous devez avoir lu / regarder le premier article sur les pièces à utiliser pour la conception de cette console portable. L’étape d’aujourd’hui consistera à installer le plus proprement possible la partie logicielle afin de pouvoir d’ors et déjà jouer à notre console avant de passer à l’étape suivante.

Les différentes problématiques ?

Je vous le dis en avance, il va falloir mettre un peu les mains dans le cambouis pour ce tutorial mais je vais essayer de vous guider le mieux possible. Il va falloir procéder en plusieurs étapes dont les principales sont les suivantes :

  • Installation du système d’exploitation
  • Configuration du Raspberry Pi
  • Installation des drivers de l’écran de l’ordinateur
  • Installation de Retropie / EmulationStation (qui gère les émulateurs ainsi que l’interface)

Les différentes problématiques ?

Si comme moi, vous avez finalement choisi un RPI A plus ou même un RPI Zéro, vous allez devoir vous équiper en conséquence pour utiliser correctement votre mini PC pendant qu’on le configure. Nous allons utiliser un écran externe ou une connexion SSH (via putty par exemple) pour le moment avant de passer sur l’écran portatif. Pour ma part j’ai utilisé ceci :

Installation du système d’exploitation

Nous allons installer la version complète de Raspbian qui est l’OS de référence pour notre RPI. Il vous suffit de télécharger l’ISO pour de la copier déployer sur la carte micro SD de votre RPI via le logiciel Win32ImageDisk, comme cela a été le cas pour le projet de borne.

Configuration du système

Insérez la carte SD sur votre RPI et démarrez le en branchant alimentation microUSB. Vous devriez arriver sur l’interface de Rasbpian après ce premier démarrage. Lancez le terminal.

Nous allons démarrer la gestion de la configuration du PI :

sudo raspi-config

Sélectionnez les commandes du config dans cette ordre :

  1. Resize SD (pour prendre tout le volume de la carte)
  2. Location changement (ensuite nous allons passer la langue et le clavier en français)
  3. Clavier FR
  4. Reboot (Nous pouvons relancer la machine pour appliquer les modifications)

Prenons le temps de mettre à jour le système (à faire dans le terminal) :

sudo apt-get updatesudo apt-get ugradesudo reboot

La machine va redémarrer une fois de plus mais notre base de travail est en place, c’est une première victoire.

Installation de l’écran

Le RPI possède plusieurs sortie vidéo. Nous connaissons tous la sortie HDMI sur lequel nous travaillons actuellement mais il y a aussi la connectique SPI qui va servir à alimenter et afficher notre petit écran. Si vous n’avez pas encore brancher votre écran Tontec, c’est maintenant où jamais ;)

Faites évidemment tout ceci avec votre machine éteinte et l’alimentation débranchée. Laissez votre câble HDMI branché, car comme vous le verrez, l’écran Tontec lui, n’affichera rien. En effet, il va falloir installer les drivers de l’écran pour qu’il puisse fonctionner.

cd /boot/overlayssudo rm mz61581-overlay.dtbsudo wget http://www.itontec.com/mz61581-overlay.dtbsudo reboot

On va dire à Raspbian de booter directement sur notre écran :

sudo nano /boot/config.txt

Décommentez la ligne suivante (en supprimant le ‘#’) pour activer la sortie SPI :

#Dtparam = SPI=ON 

Ajouter la ligne suivante juste après la précédente ligne :

DTOverlay=MZ61581

Ajoutez et ou décommentez les lignes suivantes à la fin du fichier :

sudo nano /boot/config.txt
# definit  le mode de sortie d'écran sur DMT
hdmi_group=2

# Adapte avec le bon mode (définition + rafraîchissement)
hdmi_cvt=480 320 60 1 0 0 0 
hdmi_mode=87

# Definit les caractéristique de l'écran
# rotate (90 ou 270 si vous avez un problème)
# speed = 80000000 pour notre écran
# Nombre d'image par seconde
dtoverlay=MZ61581,rotate=270,speed=80000000,fps=60

Faites Ctrl+X (fermer)

Il vous demande si vous voulez sauvegarder, évidemment appuyer sur « y » puis « entrer » pour valider.

Maintenant que tout est en place, nous allons indiquer à l’OS de « sortir » sur le petit écran. Pour cela il va falloir modifier le fichier de config de l’UI :

sudo nano /usr/share/x11/xorg.conf.d/99-fbturbo.conf

Changer alors la ligne fbdev « /dev/fb0 » en « /dev/fb1 »

0 étant la première sortie vidéo à savoir l’HDMI, 1 étant la seconde source à savoir la sortie SPI, donc notre petit écran.

Éditons maintenant le fichier cmdline.txt :

sudo nano /boot/cmdline.txt

A la fin de la ligne (oui, sur la même ligne), ajoutez le texte « fbcon=map:10 »

Faire un break

Oui, je sais c’est assez indigeste comme tuto, d’où la nécessité de faire un petit break. Quoi de mieux que de me rejoindre sur Discord pour discuter un peu ;)

Installation de retropie

On va maintenant s’occuper de lancer l’installation de retropie (la surcouche qui gère tous les émulateurs).

sudo apt-get install -y git dialoggit clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
cd RetroPie-Setup
chmod +x retropie_setup.sh
sudo ./retropie_setup.sh

La dernière commande lance le script .sh, vous verrez une interface vous permettant d’exécuter certaines commandes :

  • Relancer le SH
  • Choisir le point 3 : Autostart EmulationStation
  • Choisir l’install de Samba Share (avoir le partage des dossiers avec windows)

Finish him

Félicitation, si vous avez bien suivi le processus ci-dessus, vous devriez prendre une aspirine et voir EmulationStation au démarrage de votre RPI. Si c’est le cas félicitation, si ce n’est pas le cas plusieurs solutions s’offre à vous avant de vous inquiéter :

  • Reprendre du départ la procédure, il n’y a finalement rien à perde ;)
  • Laissez un commentaire en dessous de cet article, je m’efforcerai d’y répondre si je le peux
  • Venir faire un tour sur le chat Discord pour en parler

C’était la partie la plus délicate de cette suite de tutos. La prochaine étape arrivera tout bientôt.
N’hésitez pas à me laisser un commentaire si vous avez des remarques.

35 réflexions sur « Fabriquer sa propre console portable : La partie software »

  1. Anachris

    C'est vraiment un super projet!
    J'ai hate hate hate de voir la suite car je pense en réaliser une également!!!!!!!!!!!!!!

    1. Paduction

      @Anachris : Je suis pas loin d'avoir fini le projet. Les articles vont suivre assez rapidement ;)

  2. Tanjju

    Bonjour

    j'ai découvert le projet à travers youtube.
    hâte de voir la fin et ça donne bien envie de se lancer dans l'aventure.
    merci pour le partage de ce projet

    1. Paduction

      @Vaa : Merci ;)

      @Tanjju : N'hésite pas, il faut se lancer dans l'aventure ;)

  3. Tanjju

    ouaip je vais déjà commencer par le plus simple: monter un raspberry avec recalbox ou retropi
    ensuite je vais attendre la fin de ton projet :)

  4. foxadn

    Bonjour Paduction,
    Merci pour tes explications :-)
    Vivement la suite, d'ailleurs ce sera au format Youtube ?

    1. Paduction

      @foxadn : ce sera en vidéo et sous forme d'article écrit. La partie electronique peut difficilement être expliquée correctement en vidéo. Mais j'essaye de faire le plus possible en vidéo, je sais que ce format plaiî plus aux lecteurs.

  5. critters

    Comment exprimer la gratitude que j'ai envers Paduction… impossible… je vais devoir me contenter d'un merci…

    Un grand merci à @Paduction pour son aide apportée sur le chat de Discord (dans la rubrique Briocolage https://discordapp.com/channels/172081809301962752/263601605558009857)

    Grace à lui j'ai pu installer l'écran de marque Kuman (Ecran tactile, 3,5" trouvable sur un site dont le nom représente un fleuve)
    Je me permets de poster ici un résumé de ce qui a été fait hier.

    pour cette installation, on va considérer que vous en êtes à l'étape "Installation de l'écran" du tutoriel de Paduction

    copiez le fichier driver fourni (LCD-show-160701.tar.gz) sur la carte SD (perso, j'avais copié le répertoire driver après avoir décompressé le fichier LCD-show-160701.tar.gz depuis windows… ca m'a évité la commande tar)

    rendez vous sur l'interface console
    cd /boot
    sudo tar zxvf LCD-show-160701.tar.gz
    cd LCD-show/
    sudo ./LCD35-show

    pour info, le fichier LCD35-show contient les commandes suivantes
    sudo mkdir /etc/X11/xorg.conf.d
    sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/
    sudo cp ./usr/tft35a-overlay.dtb /boot/overlays/tft35a.dtbo
    sudo cp -rf ./usr/99-calibration.conf-35 /etc/X11/xorg.conf.d/99-calibration.conf
    sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/
    sudo cp ./usr/cmdline.txt /boot/
    sudo cp ./usr/inittab /etc/
    sudo cp ./boot/config-35.txt /boot/config.txt
    sudo reboot

    de la reprendre le tutoriel à "sudo nano /usr/share/x11/xorg.conf.d/99-fbturbo.conf"

    si vous n'avez pas de traces de x11 (ou X11)
    sudo apt-get install xorg openbox

    au moment de l'"Installation de retropie"

    parfois certaines librairies vous manquent :
    sudo apt-get install -y libsdl2-dev libboost-system-dev libboost-filesystem-dev libboost-date-time-dev libboost-locale-dev libfreeimage-dev libfreetype6-dev libeigen3-dev libcurl4-openssl-dev libasound2-dev libgl1-mesa-dev build-essential cmake git

    (attention à la faute de frappe)

    sudo apt-get update && sudo apt-get upgrade
    sudo apt-get install -y git dialog
    git clone –depth=1 https://github.com/RetroPie/RetroPie-Setup.git
    cd RetroPie-Setup
    chmod +x retropie_setup.sh
    chmod +x retropie_packages.sh (pas sur de l'utilitéd e la chose, mais je l'ai fait quand même)
    sudo ./retropie_setup.sh

    pour l'envoyer que sur le petit écran

    git clone –depth=1 https://github.com/AndrewFromMelbourne/raspi2fb.git
    sudo apt-get install cmake
    sudo apt-get install libbsd-dev

    mkdir build
    cd build
    cmake ..
    make

    sudo make install
    sudo cp ../raspi2fb@.service /etc/systemd/system/
    sudo systemctl daemon-reload
    sudo systemctl enable raspi2fb@1.service
    sudo systemctl start raspi2fb@1

    Reboot ;)
    Joie

    après dans les options j'ai installé les packages qui m'intéressaient pour les consoles et j'ai copié les roms depuis windows dans
    RASPBERRYPI
    oms

    1. Paduction

      Merci pour ton message, je suis sur que ça va en aider plus d'un. Je compléterai l'article dès que possible.

  6. gml

    Hello,

    je suis curieux, votre écran fonctionne en OpenGL (EmulationStation l'utilise) sans utiliser raspi2fb ?

    1. Paduction

      Non pas d'OpenGL , c'est le problème quand on passe par le GPIO. Il faut utiliser un programme de copie de flux vidéo (comme raspi2fb par exemple) ou passer pas la sortie HDMI. Plus la résolution est grande, plus il est difficile d'avoir un résultat fluide.
      Certains système de copie sont plus performant que d'autres également, il faut le bon ;)

  7. Ben

    Salut Paduction !
    Un petit message pour signaler que la ligne :
    ~$ sudo apt-get update && sudo apt-get upgrade
    équivaut à :
    ~$ sudo apt-get update
    plus
    ~$ sudo apt-get ugrade
    donc si l'on suit ton tuto à la lettre on effectue deux fois de suite l'installation des mises à jour. Inutile donc.

    Sinon encore bravo pour ce projet et merci de le partager avec nous !

    1. Paduction

      @ben : En effet, bien vu pour cette coquille, c'est pas bien méchant mais c'est inutile, j'ai corrigé
      Merci pour ton commentaire ;)

  8. gml

    Ah ça me rassure (malheureusement), je pensais être passé à côté d'un truc.
    raspi2fb est le meilleur (éviter fbcp), je l'avais encore un peu amélioré avec l'aide de l'auteur, et j'avais tenté d'implémenter le vsync (car le tearing est super violent sur certains jeux). Sans réel succès.

    Dans l'attente, j'utilise un écran composite, car je ne supporte pas le tearing du à raspi2fb.

  9. Flavien

    Que signifie "Décommentez la ligne suivante (en supprimant le '#') pour activer la sortie SPI :"

    1. Paduction

      Bonjour Flavien (toujours bien de dire bonjour ;))
      Décommettez signifie supprimer le # en début de ligne ex :
      # mon commentaire devient :
      mon commentaire
      Ce qui fait que le "code" est interprété

      Pour le Kuman, tout est dans le commentaire de @Critters un peu plus haut.
      Bon courage à toi ;)

  10. Biloutage

    Bonjour Paduction, ce projet est extraordinaire et je m'en inspire pour construire mon propre Raspberry portable avec Recalbox.

    Quand posteras-tu les prochains chapitres ? J'ai hâte de voir comment tu as intégré le son et la batterie.

    Pour l'écran, est-ce un problème qu'il prenne tout le GPIO ? Comment feras-tu pour brancher le reste au Pi ?

    Bon courage pour la suite, on attend le résultat avec impatience ;)

    1. Paduction

      @Biloutage : Merci pour ton commentaire, j'essaye de faire au plus vite mais ma vie personnelle est quelque peu chargée en ce moment :) Promis je me dépêche ;)

  11. critters

    Bonjour,
    concernant Recalbox,
    J'ai testé de différentes manières, mais systématiquement, je perdais la duplication sur le petit écran (la partie HDMI était bien opérationnelle, mais ce n'était pas le but.
    J'ai donc opté (pour le moment) à 2 cartes SD : une avec Recalbox sur le grand écran (parce que j'aime bien Recalbox) et une carte avec Retropie pour jouer en portable.

    Pour info (qui n'ont rien à voir avec Recalbox), au niveau de la batterie, j'ai acheté un chargeur de téléphone externe, mais c'est très (trop ?) gros… ca passe car ca ne gene pas les mains… MAIS ca fait gros à l'arrière.
    je pense que je recommencerais le processus, mais avec un écran qui se branche via la nappe et non plus via le GPIO (à cause de la hauteur)

    1. juju

      bonjour j’y suis presque avec un écran 3.5 no name mais j’ai besoin de vos lumières lol j’ai raspbian qui démarre bien sur le 3.5 et rétropie se lance toujours sur Hdmi les 2 sont sur la même sd rétropie sous raspbian qu’en pensez vous je pense que ça doit se jouer au niveau config.txt je pense le driver 3.5 est bien installé.Merci d’avance.

  12. Paduction

    @Critters : Tu passes par les mêmes étapes que moi :)
    C'est pour réduire le volume que c'est un peu plus compliqué mais avec le Powerboost de Adafruit et une batterie Lithium de drone, ça devrait le faire ! Tiens nous au courant.

  13. DonGamer

    Bonjour je tiens d'abord à remercier paduction et le commentaire de Critters qui m'a permit de faire fonction retropie sur un écran de lcd de chez kuman.
    Pour complété le commentaire de Critters on peut ammélioer la vitesse de rafraîchissement de l'écran 3,5' de kuman en insérant dans le configs.txt
    Dtoverlay=tft35a:speed=27000000,fps=60.

    De plus j'aurais une question: Comment vous avez réussit à mettre des jeux pal en français sous retropie ( dans votre exemple final fantasy vii) cela m'aiderait vivement.

    1. Paduction

      @DonGamer : Hello et content que tu es pu t'en sortir ;)
      Pour ce qui est de Retropie, il te suffit de mettre les bios de la Playstation et de posséder la/les roms en FR et de les mettre dans le bon repertoire sur ta carte Micro SD ;)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *