Bouton poussoir pour changer la résolution de la recalbox
-
Bonjour à tous !
J'utilise ma recalbox dans 2 configs bien distinctes :- sur la télé de mes potes (le 720p par défaut c'est bien)
- sur une mini-borne dédiée avec écran 10 pouces, et là il faut du 800x600 (et ce n'est pas détecté)
Du coup j'arrête pas de devoir me connecter en SSH avec putty, pour changer le mode video dans recalbox.conf ET dans /boot/config.txt pour les interfaces, ce qui est plus coton (remonter la partition en RW et tout).
Il faut une connexion web et ce n'est pas très spontanné comme manip, quoi.Alors je me suis dit :
"Eh ce serait cool un bouton-poussoir sur un GPIO qui ferait le switch entre mes 2 modes préférés !"Et j'y suis presque (je pense), l'idée ce serait de jongler entre 2 fichiers recalbox.conf et recalbox.bak (par ex), l'un en 720p l'autre en 800x600... et un script bash pour les intervertir (les renommer quoi).
Problème : sur des fichiers normaux ça marche (sous Debian en tout cas), mais il semble que je ne puisse pas renommer recalbox.conf...
Protégé en écriture ?J'ai essayé
mount -o remount, rw /boot
mais non... et
killall emulationstation
mais toujours pas...Qu'est-ce que je dois faire pour que mon script puisse prendre la main sur le fichier recalbox.conf ?
Et idem pour /boot/config.txt ?Pour info, mon script bash :
mount -o remount, rw /boot
mv /recalbox/share/system/recalbox.bak recalbox.next
mv /recalbox/share/system/recalbox.conf recalbox.bak
mv /recalbox/share/system/recalbox.next recalbox.conf
mv /boot/config.bak /boot/config.next
mv /boot/config.txt /boot/config.bak
mv /boot/config.next /boot/config.txt
rebootJe n'ai pas encore essayé de le déclencher via le GPIO, il faudrait déjà qu'il marche via la console... là j'ai ça :
mv: can't rename '/boot/config.next': No such file or directory
(et ça reboot, )Par contre j'ai testé le principe sous Raspbian, j'arrive à lancer un bash qui échange 2 fichiers texte et reboot quand je connecte le GPIO3 avec le GROUND... j'étais tout content
Je me suis inspiré largement de cet articleboot -> bash .sh via init.d -> script python -> écoute GPIO -> bash .sh qui fait le boulot et reboot
(Pfiu)
Bref, je trouvais l'idée astucieuse, intervertir 2 fichiers de config et le tour est joué... mais j'ai dû louper quelque chose.
-
recalbox.conf
n'est pas dans /boot
il faut donc:
mount -o remount, rw /
edit: il faut les deux hein,
/
et/boot
sont deux arbos differentes -
@GomiBoy
Contrairement à la recalbox.conf, je vois noir pour la config.txt qui me semble part intégré de l'os qu'est Recalbox.
Moi je vois une solution beaucoup plus simple. Tu prends deux cartes SD que tu configure d'après les besoins relatifs. Comme ça juste besoin de changer de carte. Tu pourra pour recalbox.conf aussi mettre ton \share "maison" sur une mémoire USB extérieure, recalbox.conf se trouvera alors à cet endroit. -
@gomiboy avant d'inventer une usine à gaz (qu'on ne fera sûrement pas) tu peux détailler cet ecran 800x600 ? Modèle, type de branchement, ce que tu as du changer dans recalbox ... Parce que je sens que la solution devrait déjà etre toute trouvée dans la prochaine release
-
Ah ben ma carte SD vient de rendre l'âme !
Une Samsung 32 Go.
Ca ne boot plus et je vois des partitions vides avec DiskInternals Linux Reader.
Je suis deg, j'avais une partie de Zelda The Minish Cap bien avancée et je n'ai pas de backup de la sauvegardeDu coup je vais passer en Clé USB 32 Go + carteSD, ce qui ouvre effectivement la possibilité de me créer 2 cartes distinctes... avant je ne l'envisageais pas car l'idée c'est de continuer les parties en cours.
Bon j'ai quand-même très envie de tester avec
mount -o remount, rw /
Ce serait fun un bouton pour changer de résolution !L'écran c'est celui-ci, il est plutôt chouette mais recalbox ne détecte pas sa résolution, et avoir un affichage déformé (du 16/9 sur un écran 4/3) ça ne me convient pas du tout.
Je l'ai intégré dans une mini-borne faite maison.
(Il faut que je mette la photo à jour, j'ai intégré des petites enceintes sous l'écran depuis, et c'est mieux !)
Il est branché en HDMI.Pour passer en mode "écran 10 pouces" je fais :
-
édition de recalbox.conf
global.videomode=DMT 9 HDMI
-
édition de config.txt
mount -o remount, rw /boot
puis
hdmi_group=2
hdmi_mode=9
DMT9 c'est donc 800x600, et j'ai un affichage pixel perfect sur les interfaces et les jeux.
Bon, du coup il faut que je choppe une nouvelle carte micro SD pour continuer à tester, à suivre !
-
-
@gomiboy on peut resoudre ca autrement je pense. Tin ecran est branche en hdmi ou pas ? Donne-moi le resultat de
tvservice -n
stp -
Hop, de retour après réinstall de la dernière version sur la même carte, qui n'était pas morte, juste les données corrompues.
@substring Mon écran est en hdmi, et ta ligne de commande me donne :
device_name=MST-MStar_Demo
...
C'est pas très explicite, si ?
Effectivement, ce serait encore mieux si je pouvais faire en sorte que la résolution de l'écran soit tout simplement bien détecté. -
@substring et tant que j'y suis :
tvservice -m CEA Group CEA has 13 modes: mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive (prefer) mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive mode 5: 1920x1080 @ 60Hz 16:9, clock:74MHz interlaced mode 7: 720x480 @ 60Hz 16:9, clock:27MHz x2 interlaced mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive (native) mode 19: 1280x720 @ 50Hz 16:9, clock:74MHz progressive mode 20: 1920x1080 @ 50Hz 16:9, clock:74MHz interlaced mode 22: 720x576 @ 50Hz 16:9, clock:27MHz x2 interlaced mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive # tvservice -m DMT Group DMT has 5 modes: mode 4: 640x480 @ 60Hz 4:3, clock:25MHz progressive mode 9: 800x600 @ 60Hz 4:3, clock:40MHz progressive mode 16: 1024x768 @ 60Hz 4:3, clock:65MHz progressive mode 35: 1280x1024 @ 60Hz 5:4, clock:108MHz progressive mode 85: 1280x720 @ 60Hz 16:9, clock:74MHz progressive
Mais pour avoir fait pas mal de tests, les infos ne sont pas bonnes, en CEA 4 c'est déformé et on voit bien que ça ne matche pas les pixels de l'écran.
En DMT 9 c'est parfait. -
@gomiboy bon je suis en vacs, ca va etre compliqué d'expliquer à partir du tel. Il faut lire la doc de raspberry sur la config video qui decrit comment indiquer une résolution particuliere pour un écran. La syntaxe est du genre
[EDID=blavkavla]
où boablabla est le nom de ton moniteur renvoyé. Cf https://www.raspberrypi.org/documentation/configuration/config-txt/conditional.md. juste eb dessous tu spécifies les hdmi_group et mode. Puis tu mets un[all]
pour arrêter la dection spécifique. J'ai déjà décrit comment faire dans le fofo mais pour un autre type d'ecran -
@substring okaaaaaay !
/boot/config.txt c'est donc le "bios" du raspberry !
Génial, je n'aurais jamais pensé à creuser dans cette direction là, mais je comprends bien l'idée de réécrire la config par défaut associée à mon moniteur.
Je vais creuser, merci beaucoup (et bonnes vacances !). -
@substring Merci !
Ca s'affiche impec sur mon écran 10", et aussi sur un écran full HD à une toute autre résolution, sans rien modifier entre les 2. Tip-top.J'ai juste ajouté au début de /boot/config.txt
# écran 10p 800x600 DMT9 # l'EDID est obtenu par tvservice -n [EDID=MST-MStar_Demo] hdmi_group=2 hdmi_mode=9 [all]
(après avoir fait
mount -o remount, rw /boot
pour les droits d'écriture)Ca m'aura pris moins de 10 minutes, c'est sûr que c'est mieux qu'un bouton qui lance un script qui modifie des fichiers textes sensibles à la volée...
J'ai aussi changé un truc dans recalbox.config mais je ne sais pas si c'était nécessaire :
global.videomode=default
Je me suis dit que comme ça la résolution des jeux s'alignerait sur celle des interfaces ?
Ca a l'air de marcher.
Avant je modifiais les 2 fichiers de config.Bref, problème réglé ! Un grand merci !