Re: Stocker ses roms sur son nas synology
Bonjour,
Tout d'abord merci à toute l'équipe derrière recalbox de tout le travail fournit, qui nous permet de profiter facilement de nos jeux préférés !
Je reviens sur un topic un peu ancien qui répondait parfaitement à mon besoin et dont je me suis fortement inspiré (merci à @gzubsc !) pour obtenir exactement ce que je cherchais.
L'idée est que globalement je souhaite stocker mes ROMs sur la carte SD du raspberry (j'ai un raspberry pi 3) de façon à pouvoir juste embarquer la bête (et tous les fils) pour garder de la mobilité et avoir une recalbox dispo partout, voir même si je me rends à un endroit équipé en pi (3) d'avoir juste à prendre la carte SD avec moi.
Le seul souci est que l'espace sur la carte est limité (je fais du multiboot donc ça part très vite) et que certaines machines ont des ROMs très gourmandes en place (oui playstation, je pense à toi).
Mon objectif était donc de pouvoir garder les ROMs "principales" sur la carte, et de déporter certaines architectures (pour l'exemple juste psx, mais on peut multiplier tant que ça reste raisonnable. Après il y a un moment où il vaut mieux tout mettre en réseau sinon) sur mon NAS (un synology pour mon cas) qui n'a pas de problème de place.
Ayant trouvé une bonne âme qui avait fait exactement ça il y a quelques temps (@gzubsc que j'ai cité plus haut), j'ai repris l'idée en la remettant au goût du jour pour recalbox 4.0.0.
Voilà donc la méthode que j'ai utilisée.
(n'oubliez pas de remonter "/" en read-write au préalable pour faire les modifications avec "mount -o remount,rw /". Bien sûr il vaut mieux avoir une copie de secours de tout ce que vous touchez !)
Le plan est d'ajouter dans les scripts de démarrage le mount du répertoire distant qui contient les ROMs. On va monter le répertoire à la place du répertoire local, ce qui va le masquer. Seul le (ou les) répertoire(s) choisi sera(seront) sur le réseau, tout le reste est local. On va effectuer le mount uniquement si la machine distante est vue au démarrage pour que tout se passe proprement si vous êtes hors du réseau local. Mais pour ça il va falloir décaler le lancement d'emulation station pour qu'il démarre après le réseau.
(Au préalable il faut bien sûr que le partage soit disponible sur le NAS. Vous pouvez ensuite tester le mount à la main pour vérifier que tout fonctionne).
Donc étape 1, on va créer dans /etc/init.d un fichier S43mount (pour qu'il soit après le S40network qui démarre le réseau). Le mien ça donne ça :
#!/bin/bash
case "$1" in
start)
ping 192.168.1.110 -c 1 -w 1
RC=$?
[ $RC -eq 0 ] && mount -t nfs 192.168.1.110:/volume1/jeux/psx /recalbox/share/roms/psx -o noatime,noauto,nolock,soft
sleep 2
;;
stop)
umount /recalbox/share/roms/psx
;;
restart|reload)
"$0" stop
"$0" start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
192.168.1.110 est l'adresse mon NAS, à remplacer par la bonne donc (ainsi que le path qui suit). Vous pouvez ajouter d'autres mounts sur le même modèle bien sûr. De même, je fais du NFS mais on peut remplacer par du CIFS (je suis preneur d'une recommandation sur le sujet d'ailleurs).
Il faut rendre le fichier exécutable (chmod 755). Ensuite il faut renommer S31emulation en S45emulationstation pour qu'il se lance après notre mount.
Voilà, ça marche. Comme on commence par vérifier que la machine est bien là, on ne perd pas de temps à essayer de mounter dans le vide (surtout utile s'il y a plusieurs mount).
Là déjà normalement, tout roule. On pourrait en rester là, mais petit souci pour moi qui suit en WiFi : on attend le démarrage du réseau sur ethernet alors que rien n'est branché. Du coup le boot passe d'environ 24s à 43s. C'est moche.
Donc étape 2 (ou 3 ?), on va décaler le lancement de l'ethernet (pour ne pas le perdre totalement si besoin).
Dans S40network on va commenter la ligne qui lance l'ethernet (c'est écrit dedans). Ensuite on va créer un script S48ethernet qui reprend cette ligne :
#!/bin/bash
case "$1" in
start)
/recalbox/scripts/recalbox-config.sh ethernet start
;;
esac
exit $?
A rendre exécutable également. Avec cette bidouille, on repasse à un temps de boot de 33s. Hop, 10s de gagnées ! (Bon j'avoue, je n'ai pas testé le réseau filaire, donc je ne peux pas garantir qu'il démarre correctement).
Avec ces modifs, je peux stocker mes ROMs psx sur mon NAS qui a plein de place, tout en gardant tout le reste sur la carte pour les cas où je ne suis pas chez moi. Il est même possible de mettre quelques jeux psx en local ("sous" le mount) pour avoir une sélection dispo tout le temps (c'est pas hyper pratique mais ça marche).
Voilà, c'était un peu long mais j'espère que ça pourra être utile !