DIY

Fabriquer sa propre console portable : La partie software

Jeudi 08 décembre 2016 à 10:30 Paduction 31 commentaire

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 update 
sudo apt-get ugrade
sudo 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/overlays
sudo rm mz61581-overlay.dtb
sudo wget http://www.itontec.com/mz61581-overlay.dtb
sudo 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

# hdmi_cvt=
hdmi_cvt=480 320 60 1 0 0 0 

# Adapte avec le bon mode (résolution + rafraîchissement)
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 dialog
git 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. 

Ne rater pas les autres articles

  1. Fabriquer sa propre console portable : Matériel et vidéo de présentation
  2. Fabriquer sa propre console portable : Le point sur l'avancement
  3. Fabriquer sa propre console portable : La partie software
  4. Fabriquer sa propre console portable : Présentation du prototype
  5. Fabriquer sa propre console portable : Le design
  6. Fabriquer sa propre console portable : Montage et soudures
  7. Fabriquer sa propre console portable : Améliorations (à venir)
Tags : console, raspberry, rpi, portable, console, fabrication, 3ds, psvita, print 3d

Commentaires

C'est vraiment un super projet!

J'ai hate hate hate de voir la suite car je pense en réaliser une également!!!!!!!!!!!!!!

Anachris (Anonyme)
Jeudi 08 décembre 2016 à 08:42
PREUMS
répondre

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

Paduction
Jeudi 08 décembre 2016 à 12:49
répondre

Trop hâte de voir le résultat, c'est vraiment un super projet

Captain_Geek (Anonyme)
Jeudi 08 décembre 2016 à 18:59
répondre

Ca devient cossu là !

Vaa
Lundi 12 décembre 2016 à 20:05
répondre

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

Tanjju (Anonyme)
Vendredi 16 décembre 2016 à 09:04
répondre

@Vaa : Merci ;)

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

Paduction
Lundi 19 décembre 2016 à 13:26
répondre

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 :)

Tanjju (Anonyme)
Lundi 19 décembre 2016 à 21:39
répondre

C'est un très bon début ;)

Paduction
Lundi 19 décembre 2016 à 22:07
répondre

Bonjour Paduction,

Merci pour tes explications :-)

Vivement la suite, d'ailleurs ce sera au format Youtube ?

foxadn (Anonyme)
Vendredi 30 décembre 2016 à 17:26
répondre

@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.

Paduction
Samedi 31 décembre 2016 à 00:53
répondre

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

Critters
Mardi 31 janvier 2017 à 07:50
répondre

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

Paduction
Dimanche 05 février 2017 à 21:17
répondre

Bonjour

Willygeek (Anonyme)
Mardi 07 février 2017 à 16:24
répondre

@willygeek : et ben coucou...

Paduction
Mardi 07 février 2017 à 17:13
répondre

Hello,

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

gml (Anonyme)
Vendredi 24 février 2017 à 17:06
répondre

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 ;)

Paduction
Dimanche 26 février 2017 à 08:46
répondre

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 !

Ben (Anonyme)
Dimanche 26 février 2017 à 12:17
répondre

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.

gml (Anonyme)
Lundi 27 février 2017 à 09:56
répondre

@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 ;)

Paduction
Lundi 27 février 2017 à 13:17
répondre

Les stocks partent super vite donc je n'ai pas traîné ;)

Je l'ai pris chez pi hut, la référence pour les stocks de Raspberry Pi Zero ;)

https://thepihut.com/products/raspberry-pi-zero-w

Paduction
Mardi 28 février 2017 à 15:53
répondre

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

Flavien (Anonyme)
Mardi 07 mars 2017 à 21:55
répondre

Quand complètera-tu l'arcticle pour le kuman?!

Flavien (Anonyme)
Mercredi 08 mars 2017 à 22:22
répondre

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 ;)

Paduction
Jeudi 09 mars 2017 à 13:38
répondre

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 ;)

Biloutage (Anonyme)
Lundi 13 mars 2017 à 10:26
répondre

@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 ;)

Paduction
Lundi 13 mars 2017 à 21:20
répondre

Comment installer recalbox à la place de retopie?

Flavien (Anonyme)
Mercredi 15 mars 2017 à 16:51
répondre

@Flavien : Bonjour (il faut dire un minimum bonjour ici, c'est la dernière fois que je le dis...), tu peux installer recalbox mais il faut que tu partes de leur OS, c'est à dire installer directement leur ISO sur la carte SD, je t'invite à lire leur documentation officielle disponible ici même : https://github.com/recalbox/recalbox-os/wiki/Installation-%28FR%29

Paduction
Vendredi 17 mars 2017 à 11:12
répondre

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)

Critters
Vendredi 17 mars 2017 à 12:04
répondre

Bonjour;

Désolé j'oublie à chaque fois

Flavien (Anonyme)
Vendredi 17 mars 2017 à 18:42
répondre

@Flavien : Pas de soucis ;), soit le bienvenue.

Paduction
Vendredi 17 mars 2017 à 20:59
répondre

@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.

Paduction
Vendredi 17 mars 2017 à 21:02
répondre
Ajouter un commentaire
Devenez membre ! Inscription Déjà inscrit ? Connexion
S'il vous venait à l'idée d'écrire votre commentaire en majuscule ou en langage SMS, ce dernier nous piquerait les yeux d'une part et pourrait d'autre part entraîner sa suppression...
Vous voilà prévenu ! ;)
Pseudo (obligatoire) :
Email :
Commentaire :