[Tutoriel] Charger ses rom depuis un partage réseau (samba)



  • Bonjour à tous, Je découvre juste Recalbox et pour le moment j'aime beaucoup. Merci et bravo aux devs ! Je commence par une explication / description du problème, ensuite je ferai un guide clair, étapes par étapes. Je suis conscient que RecalBox se veut une machine portable, mais j'aime bien avoir mes rom sur le réseau, et je ne transporterai ma RecalBox pour le moment. Du coup, il me "faut" des partages fonctionnels. J'ai eu qques soucis pour accéder à ces partages réseaux. Tout d'abord, j'aurais bien aimé du NFS, mais visiblement, ce n'est pas intégré. Du coup, j'ai fait avec le SMB comme expliqué dans le Wiki. Il faut donc modifier son fichier /etc/fstab comme suit :

    //192.168.1.12/NAS/media/emulation/Roms  /recalbox/share/roms cifs user=XXX,password=YYY,uid=0,gid=0,rw 0 0

    Le problème est que le fstab ne monte pas le partage au boot, en effet je pense que le fstab est lu et "appliqué" avant que le réseau ne soit disponible. Du coup, ça ne fonctionne pas. Pour ce faire, j'ai créé le script (fichier exécutable) suivant : /etc/init.d/S61shares. Avec son numéro 61, il s’exécute vers la fin (bien après le réseau numéro 40). Ce script contient les infos suivantes :

    #!/bin/bash case "$1" in start) /bin/mount -a & /etc/init.d/S31emulationstation restart & ;; stop) ;; restart|reload) ;; *) esac exit $?

    Comme vous pouvez le voir, ce script ne s'exécute qu'au lancement (pas de restart, pas de stop). Côté fonctionnalité, il fait deux choses :

    • Il force le système à relire le fichier /etc/fstab et ré-appliquer les partages. C'est à dire qu'il va monter pour de vrai le partage samba (car le réseau sera opérationnel).
    • Il relance le service emulationstation qui va scanner automatiquement le répertoire des rom et ensuite se lancer normalement s'il trouve des roms, ou afficher une erreur s'il n'en trouve pas.

    Au final, c'est moche, mais ça fonctionne parfaitement. Lorsque votre Recalbox va booter, vous allez obtenir une erreur vous indiquant qu'aucune rom ne peut être trouvée. Il faut donc attendre qques instants, et cet écran va disparaître tout seul, puis relancer le service emulationstation et ensuite, si tout se passe bien, vous aurez accès à toutes vos roms via le réseau. Testé et fonctionnel sur la version : v3.3.0-beta-9. Remarques J'aimerais bien ne pas avoir cette erreur toute moche durant le boot. Je continue de faire des tests en jouant avec les script d'init. Je mettrais à jour ce post si je trouve une solution plus propre. Tutoriel version rapide

    1. Ajouter une ligne dans le fichier /etc/fstab correspondant à votre partage samba, cf. ici --> https://github.com/digitalLumberjack/recalbox-os/wiki/Mount-a-remote-samba-share-on-system-directory-(EN)
    2. Ajouter un script de démarrage dans /etc/init.d/S61shares contenant les infos indiquées dans ce pastes --> http://pastebin.com/k6upWHps
    3. Rendre le script exécutable chmod +x /etc/init.d/S61shares
    4. Relancer la RecalBox et attendre (assez longtemps) qu'une erreur apparaisse à l'écran indiquant qu'aucune rom ne peut être trouvée. NE RIEN FAIRE. Attendre que cet écran disparaisse et que emaulationstation soit relancé automatiquement.

    En espérant que cela en puisse vous aider.


  • Moderator
    Team

    Bonjour merci pour ton tutoriel , explication :D une solution un peu identique avait été donné dans ce sujet : http://blog.recalbox.com/forums/topic/tuto-utilisez-une-clef-usb-pour-stocker-les-roms/page/6/#post-6743 il me semble que vous parlez de la même chose sauf qu il y a eu juste une modification sur un fichier existant S31emulationstation.


  • Moderator
    Team

    Coucou nesousx :) Merci pour ton retour d’expérience et ton petit tuto :) ! C'est toujours sympa quand on trouve une solution de la partager avec les autres, surtout quand il s'agit d'un projet open source. :). Malheureusement ce n'est pas le cas de tout le monde et beaucoup font leurs affaires dans leur coin et ne vienne que pour demander de l'aide. Pire, certains vont jusqu'à poser une question, puis entre temps trouver une solution, enfin comble de l'ironie, répondre à leur propre question en mode : "c'est bon j'ai trouvé". Et.... Rien d'autre... Un peu en mode, "tenez bande de chien, personne ne m'a répondu alors allez vous brosser pour que je vous dise comment j'ai fait". Le comble de l'ironie pour un projet open source et une demande de support. ^^. Bref maintenant que j'ai un peu vidé mon sac, je reviens sur ton propos. Alors je ne suis pas un user techos de l'équipe donc je ne vais pas pouvoir t'aider à perfectionner ton script. Mais nul doute que d'autres pourront t'aider à perfectionner le principe et pourquoi, proposer au final un bon tuto détaillé dans le wiki ! :D. https://github.com/digitalLumberjack/recalbox-os/wiki/Mini-How-To-(FR) Pour rappel, tout le monde à le droit d'édition création sur le wiki github ! C'est un devoir que de ne pas s'en priver ! :). Pour les histoires de montage de la partition share sur son réseau ou sur un nas par exemple, il est vrai que ce n'est pas vraiment dans le haut de la todo de notre développeur. Maintenant il y a plusieurs personnes qui comme toi ont monté leur propre modifications afin de rendre ce type d'installation fonctionnelle mais il faudra encore attendre pour que le choix de la partition share soit définissable depuis le menu d'emulationstation. Pourquoi ? Car ça va dépendre de chaque installation et que c'est souvant un nid à embrouille ces affaires... Déjà que monter la partition share sur un support usb, si tu fou ça sur un disque dur qui met un peu de temps à se monter sa plante alors sur un réseau... ça va être drôle... ^^ Maintenant je t'invite à fouiller dans le forum via le moteur de recherche. Il me semble que certains ont joué sur le temps alloué au montage de la partition share. Par défaut le temps est assez court bien entendu vu que recalbox est sensé charger ça depuis la micro sd. Mais sur une clef usb ça peut déjà prendre un peu plus de temps mais sa passe bien dans 95% des cas, sur un disque dur ça devient vraiment plus hard et sur un réseaux tu peux oublier. Il y a une fonction donc à modifier le temps de montage de la partition. Peux être que ce sera suffisant pour éviter d'avoir a relancer la procédure de montage à la fin. Il me semble même que tu dois pouvoir changer l'ordre de boot mais encore une fois, je me réfère à des echanges que j'ai vu sur le forum. Pour ma part, j'ai juste choisi de monter la partition share sur une clef usb et sa marche du feu de dieu. les sandisk 128go fit que tu trouve à 35 balles sur la bay tourne très bien et tu as déjà de quoi faire avec 128go en rétrogamming si ton but n'est pas d'avoir le fullset psx. Et en bonus, tu gardes le coté mobile du pi. Donc pour ma part, aucun intérêt personnel à stocker sa sur mon qnap. :s



  • Merci pour les retours. J'avais fait une modif similaire à celle donnée dans la réponse d'Acris, mais ça ne plaisait pas trop... en lançant en dernier "emulationstation" je ne suis pas sûr qu'il n'y ait pas de dépendances pour d'autres services. Apparemment, ça fonctionne chez Kevean (et chez moi lors d'un test rapide), mais ça demande plus d'analyse de ma part pour être sûr que tout tourne. Enfin pour l'aspect portable du Pi, je me tâte effectivement à acheter carrément une SD 128Go et avoir un truc tout intégré / portable. Mais je continue à bidouiller les montages réseau par plaisir.


  • Themer

    Si t'es vraiment un complétiste même une SD 128Go ne suffira pas ^^ Je voulais faire ça aussi mais vu les retours peu encourageants sur les SD 128Go ici et leur prix j'ai opté pour une SD 64Go et une clé 64Go pour l'instant et je remplacerai peut être cette dernière par une 128Go à l'avenir Et puis mine de rien pour les grosses roms genre PSX la copie direct sur la clé est quand même bien plus pratique que le partage samba ou WinSCP



  • Ok, merci pour l'info. A l'heure actuelle, je n'ai "que" 113G de roms, mais je ne me suis pas encore lancé dans les PSX... A terme, quand j'aurais trouvé un bon système (pour le moment, je  teste RecalBox), je compte faire un boîtier sur mesure dans lequel je fixerai un HDD 2,5" (ce qui laisse 2To de stockage pour les roms + media + screenshots, etc).


  • Moderator
    Team


  • Team

    Pour info nesoux, tu peux desactiver ES dans le S31 en commentant la ligne de lancement. Ça ne causera pas de soucis. J'ai aussi ajouté dans recalbox.conf une option te permettant d'afficher un écran de chargement, pendant l'attente du réseau. system.splash.enable=1


  • Team

    sur la beta 10 j'ai ajouté l'option system.es.atstartup=0 qui permet de ne pas lancer es depuis le script S31, et ca restera au fil des updates :) Comme ca tu peux lancer ES avec ton autre script



  • Bonsoir, Est ce que avec la version 4.0 de recalbox cette manip et elle toujours opérationnelle ? Cdt


  • Moderator
    Team



  • Bonsoir , Et merci @Acris pour la réponse ^^ , j'avais finalement trouver une solution quelques heures avant mais il etait tard dans la nuit pour en faire pars sur le post. je me focaliser surtout sur le meme gitub mais Fr, que je me suis permis au passage de completer ( Merci a @reivaax  ) https://github.com/recalbox/recalbox-os/wiki/Charger-ses-rom-depuis-un-partage-réseau-Samba-(par-exemple-un-NAS)-(FR) Donc cela fonctionne parfaitement bien merci encore.



  • hello   merci pour le tuto ^^ il est nikel par contre je me souvient qu'il y a la possibilité d'exclure des Fichier / répertoire de la mise a jour ce qui éviterais d'avoir a remodifier a chaque fois le fichier de démarrage de émulation station   si je retrouve le fichier j'editerais mon post


  • Moderator
    Team

    @didlith le système d'update a été modifié dans al 4.0.0, on ne passe plus par r-sync. Duc oup impossible d'exclure des fichiers de la mise à jour. Les root.tar.xz et boot.tar.xz de la nouvelle image sont téléchargés, puis décompressés et installés au reboot.



  • effectivement j'ai vu ca en passant la maj Unstable faut donc penser a faire la modif a chaque maj :s


  • Moderator
    Team

    pour le fstab oui, après si tu met un met un script /recalbox/share/system/custom.sh ce dernier est exécuté auto via le S99custom et le script custom.sh ne se retrouve pas effacé, /share n'est pas mis à jour.


Log in to reply
 

Want to support us ?

Join us on :

175
Online

28821
Users

14643
Topics

110694
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.