Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    [Résolu][Tuto]Circuit Mausberry et recalbox

    Recalbox Général
    mausberry
    18
    97
    50239
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • n1kod
      n1kod last edited by

      Merci pour ton retour. Je vais commander 🙂

      Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

      1 Reply Last reply Reply Quote 0
      • n1kod
        n1kod last edited by

        re 🙂 j'ai avancé sur mon projet. j'ai tout les éléments. J'ai testé le mausberry circuit sur une raspbian/raspbmc. Il fonctionne parfaitement. demarrage / arret / reset . C'est parfait pour contrôler l'alimentation de son pi 🙂 cependant je viens d'essayer de mettre en route le script sur la recalbox et ca ne fonctionne pas. J'ai utilisé le script pour raspbian. voila les erreurs que j'ai : 1er : il n'y a pas sudo d'installé => solution j'ai édité le script avec nano pour enlever les sudo. => je ne sais psa si cela pourrait influencer le fonctionnement du script apres ? 2éme erreur et la je bloque : ""sed: /etc/rc.local: No such file or directory"" apparemment ce répertoire n'existe pas. y a t-il un equivalent sur la recalbox ? je pense qu'une fois placé dans le rc.local, le script se lance a chaque démarrage ? Merci d'avance pour ton aide 🙂 ps je suis encore en 3.2.7 .. pas refait ma sd..

        Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

        1 Reply Last reply Reply Quote 0
        • NeeeeB
          NeeeeB last edited by

          Serait-ce ce que tu cherches ? https://github.com/digitalLumberjack/recalbox-os/wiki/Ajouter-votre-propre-script-au-demarrage-(FR)

          Vieux geek ^^
          GameList Editor : https://github.com/NeeeeB/GameList_Editor

          1 Reply Last reply Reply Quote 0
          • n1kod
            n1kod last edited by

            Possible que ce soit bien ca merci en plus j'avais deja vu ca dans le wiki.. je vais essayer d'adapter 🙂

            Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

            1 Reply Last reply Reply Quote 0
            • reivaax
              reivaax last edited by

              Merci pour tes recherches. Tiens nous au courant et si tu arrives à bien faire fonctionner ce switch. J'en ai acheté un moi aussi pour un projet perso et ton retour d’expérience et pourquoi pas, un petit tuto 😛 sera le bienvenue :).

              1 Reply Last reply Reply Quote 0
              • n1kod
                n1kod last edited by

                oui pas de souci. je posterai mes modifications 🙂 par contre je sais pas si avant ce week j'aurais le temps de revoir ça 😕 pour l'instant rien n'est intégré et je dois tout débrancher/rebrancher à chaque test 🙂 En attenant si quelqu'un à un autre avis. notamment sur le fait de supprimer les sudo du script ?

                Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

                1 Reply Last reply Reply Quote 0
                • reivaax
                  reivaax last edited by

                  Ba sur plusieurs tutos, ils recommandent justement d'executer les commandes sans sudo sous recalbox. Donc je pense que c'est normal sur ce point... (et pour ma part, je ne suis pas pressé, j'ai déjà d'autres projets en cours qui ne nécessites pas de switch donc rien ne presse ^^).

                  1 Reply Last reply Reply Quote 0
                  • acris
                    acris last edited by

                    Bonjour Recalbox a déjà un accès root donc le sudo est inutile dans le script , il suffit juste de mettre les droits d'execution chmod 755 sed: /etc/rc.local: No such file or directory Le dossier qui remplace ceci est /etc/init.d

                    1 Reply Last reply Reply Quote 0
                    • n1kod
                      n1kod last edited by

                      edit je me suis trop emballé 🙂

                      Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

                      1 Reply Last reply Reply Quote 0
                      • n1kod
                        n1kod last edited by

                        rebonjour j'ai fait les modifs nécessaires cependant mon script fonctionne en faisant : /etc/init.d/S99sw start mais maintenant j'ai flingué le Systeme j'ai l'impression au reboot 🙂 et impossible de redémarrer 😕 je flash mon image .. voici ce que le script contient :

                        #!/bin/bash
                        
                        #this is the GPIO pin connected to the lead on switch labeled OUT
                        GPIOpin1=23
                        
                        #this is the GPIO pin connected to the lead on switch labeled IN
                        GPIOpin2=24
                        
                        echo "$GPIOpin1" > /sys/class/gpio/export
                        echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
                        echo "$GPIOpin2" > /sys/class/gpio/export
                        echo "out" > /sys/class/gpio/gpio$GPIOpin2/direction
                        echo "1" > /sys/class/gpio/gpio$GPIOpin2/value
                        while [ 1 = 1 ]; do
                        power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
                        if [ $power = 0 ]; then
                        sleep 1
                        else
                        poweroff
                        fi
                        done
                        

                        Donc le problème est que le script est prit en compte apparemment car les gpio sont busy si je refais un start du script mais ca ne fonctionne pas comme quand je fais un start pour la première fois. Quand je démarre avec start en ssh, le script doit être en mode daemon ou "actif"? un truc du genre sinon les changements d'états des gpio ne sont pas capté par le script. le setup d'origine :

                        echo '#!/bin/bash
                        
                        #this is the GPIO pin connected to the lead on switch labeled OUT
                        GPIOpin1=23
                        
                        #this is the GPIO pin connected to the lead on switch labeled IN
                        GPIOpin2=24
                        
                        echo "$GPIOpin1" > /sys/class/gpio/export
                        echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
                        echo "$GPIOpin2" > /sys/class/gpio/export
                        echo "out" > /sys/class/gpio/gpio$GPIOpin2/direction
                        echo "1" > /sys/class/gpio/gpio$GPIOpin2/value
                        while [ 1 = 1 ]; do
                        power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
                        if [ $power = 0 ]; then
                        sleep 1
                        else
                        sudo poweroff
                        fi
                        done' > /etc/switch.sh
                        sudo chmod 777 /etc/switch.sh
                        sudo sed -i '$ i /etc/switch.sh &' /etc/rc.local
                        

                        le setup que j'ai modifié :

                        echo '#!/bin/bash
                        
                        #this is the GPIO pin connected to the lead on switch labeled OUT
                        GPIOpin1=23
                        
                        #this is the GPIO pin connected to the lead on switch labeled IN
                        GPIOpin2=24
                        
                        echo "$GPIOpin1" > /sys/class/gpio/export
                        echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
                        echo "$GPIOpin2" > /sys/class/gpio/export
                        echo "out" > /sys/class/gpio/gpio$GPIOpin2/direction
                        echo "1" > /sys/class/gpio/gpio$GPIOpin2/value
                        while [ 1 = 1 ]; do
                        power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
                        if [ $power = 0 ]; then
                        sleep 1
                        else
                        poweroff
                        fi
                        done' > /etc/init.d/s99sw
                        chmod 777 /etc/init.d/s99sw
                        sed -i '$ i /etc/init.d/s99sw &' /etc/init.d/
                        

                        J'ai une erreur sur la dernière commande sed. mais le script est tout de meme copié. que fait la commande sed, je n'arrive pas bien à comprendre?

                        Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

                        1 Reply Last reply Reply Quote 0
                        • n1kod
                          n1kod last edited by

                          up personne pour m'aider svp ? 🙂 plus qu'a finaliser ce point sur ma recalbox 🙂

                          Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

                          1 Reply Last reply Reply Quote 0
                          • n1kod
                            n1kod last edited by

                            🙂 quelqu'un pour m'aider à faire en sorte que le script s’exécute en tache de fond svp ?

                            Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

                            1 Reply Last reply Reply Quote 0
                            • acris
                              acris last edited by

                              Bonjour si je me base un peu sur les deux scripts existants pour connecter ma manette avec un service qui lanche le bash j'aurai fait ainsi C'est de la pure théorie, sauvegarde ton image avant. Je n'ai pas compris si switch.sh était juste un fichier d'installation ou d’exécution script switch.sh

                              echo '#!/bin/bash
                              
                              #this is the GPIO pin connected to the lead on switch labeled OUT
                              GPIOpin1=23
                              
                              #this is the GPIO pin connected to the lead on switch labeled IN
                              GPIOpin2=24
                              
                              echo "$GPIOpin1" > /sys/class/gpio/export
                              echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
                              echo "$GPIOpin2" > /sys/class/gpio/export
                              echo "out" > /sys/class/gpio/gpio$GPIOpin2/direction
                              echo "1" > /sys/class/gpio/gpio$GPIOpin2/value
                              while [ 1 = 1 ]; do
                              power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
                              if [ $power = 0 ]; then
                              sleep 1
                              else
                              sudo poweroff
                              fi
                              done' > /recalbox/scripts/switch.sh
                              chmod 777 /recalbox/scripts/switch.sh
                              

                              Puis basé sur le Btservice de ma manette que j'ai adapté , A nommer S92sw

                              #!/bin/bash
                              ### BEGIN INIT INFO
                              # Provides: switch.sh
                              # Required-Start: $network $local_fs $remote_fs
                              # Required-Stop: $network $local_fs $remote_fs
                              # Default-Start: 2 3 4 5
                              # Default-Stop: 0 1 6
                              # Short-Description: switch init script.
                              # Description: Starts and stops SwitchDaemon service.
                              ### END INIT INFO
                              
                              #VAR
                              RUN="/recalbox/scripts/switch.sh"
                              BTD_PID=$(ps -eo pid,command | grep "/bin/bash $RUN" | grep -v grep | awk '{print $1}')
                              
                              serviceStatus() {
                                 if [ ! -z "$BTD_PID" ]; then
                                    echo -e '33[0mservice switch.sh ['$BTD_PID'] [33[33;32m OK 33[0m]'
                                 else
                                    echo -e '33[0mservice switch.sh [33[33;31m KO 33[0m]'
                                 fi
                              }
                              
                              # Carry out specific functions when asked to by the system
                              case "$1" in
                                 start)
                                    echo "Starting script $RUN ..."
                                    if [ -z "$BTD_PID" ]; then
                                       nice -n 19 $RUN&
                              
                                       if [ $? -eq 0 ]; then
                                          echo -e "33[0mscript $RUN [33[33;32m STARTED 33[0m]"
                                       fi
                                    else
                                       echo "script $RUN already started ['$BTD_PID']!"
                                    fi
                                    #serviceStatus
                                 ;;
                                 stop)
                                    echo "Stopping script $RUN ..."
                                    if [ ! -z "$BTD_PID" ]; then
                                       kill $BTD_PID
                              
                                       if [ $? -eq 0 ]; then
                                          echo -e "33[0mscript $RUN [33[33;31m STOPPED 33[0m]"
                                       fi
                                    fi
                                    #serviceStatus
                                 ;;
                                 status)
                                    serviceStatus
                                 ;;
                                 *)
                                    echo "Usage: /etc/init.d/SwitchService {start | stop | status}"
                                    exit 1
                                 ;;
                              esac
                              
                              exit 0
                              

                              Faire un chmod 777 /etc/init.d/S92sw Ensuite tester :

                              /etc/init.d/S92sw start
                              /etc/init.d/S92sw stop
                              /etc/init.d/S92sw status
                              

                              et ensuite redémarre le rpi2 pour voir si ça lance tout seul. attention il faut attendre quelques secondes pour que le service démarre.

                              1 Reply Last reply Reply Quote 0
                              • n1kod
                                n1kod last edited by

                                Merci beaucoup !! j'avais vu des trucs du genre en cherchant comment passer un script en mode deamon mais je trouvais ca ouf juste pour ca ! Je vais tester ce week end merci beaucoup !

                                Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

                                1 Reply Last reply Reply Quote 0
                                • n1kod
                                  n1kod last edited by

                                  je viens de tester le script supplémentaire et ca fonctionne apparemment bien 🙂 je confirme ce week end et je fais un petit tuto si d'autres achetent ce circuit de control power/reset 🙂 merci beaucoup pour ton aide / votre aide

                                  Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

                                  1 Reply Last reply Reply Quote 0
                                  • reivaax
                                    reivaax last edited by

                                    Ça serait en effet très sympa de ta part @n1kod. Bonne soirée 🙂

                                    1 Reply Last reply Reply Quote 0
                                    • n1kod
                                      n1kod last edited by

                                      j'en avais déjà préparé un jusqu'au moment ou je me suis rendu compte que ca ne fonctionnait pas au reboot.. y a plus qu'a adapter

                                      Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

                                      1 Reply Last reply Reply Quote 0
                                      • antipode-x-alex
                                        antipode-x-alex last edited by

                                        je ferais bien l'essais sur mon script que je n'ai pas réussi à faire fonctionner. http://blog.recalbox.com/forums/topic/bouton-on-off-reboot/

                                        1 Reply Last reply Reply Quote 0
                                        • acris
                                          acris last edited by

                                          Bonjour n1kod super contente que mon adaptation a pu t'aider J'aj hâte de ton retour de test et tuto final pour aider la communauté 😄 Antipode X j'ai modifié une ou deux choses dans ton script et ajouter aussi un fichier "service" si tu en as besoin. A tester 😄 Have fun !

                                          1 Reply Last reply Reply Quote 0
                                          • n1kod
                                            n1kod last edited by

                                            voici mon petit tuto : Un grand merci a tous et plus particulièrement à "Acris" pour le script à placer dans /etc/init.d. Je vous présente toutes les étapes nécessaires pour faire fonctionner son mausberry circuit avec recalbox. prérequis : 1) un rpib/b+/2 2) un mausberry circuit commandé sur : http://mausberry-circuits.myshopify.com/collections/frontpage/products/shutdown-circuit-use-your-own-switch 3) un interrupteur pour le power et le reset soudé à votre mausberry circuit (ici j'utilise mes boutons d'une Nes récupérée). Etape 1 : Connectez-vous en root sur recalbox en ssh via putty sur windows ou via une console/terminal sur linux/max (ssh root@ip_local_recal_box) Etaoe 2 : Télécharger le script pour raspbian/raspbmc/dérivé wget http://files.mausberrycircuits.com/setup.sh Vous êtes en root pas besoin de sudo et de toute facon le paquet "sudo" n'est pas installé sur recalbox. Etape 3 : éditer le script que nous venons de récupérer nano setup.sh faire une copie de sauvegarde : cp setup.sh setup.sh.old 1) Supprimer les sudo et la dernière ligne du script 2) modifier la destination du script et son nom (je veux créer le script dans /etc) le script doit être comme ci-dessous maintenant :

                                            echo '#!/bin/bash
                                            
                                            #this is the GPIO pin connected to the lead on switch labeled OUT
                                            GPIOpin1=23
                                            
                                            #this is the GPIO pin connected to the lead on switch labeled IN
                                            GPIOpin2=24
                                            
                                            echo "$GPIOpin1" > /sys/class/gpio/export
                                            echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
                                            echo "$GPIOpin2" > /sys/class/gpio/export
                                            echo "out" > /sys/class/gpio/gpio$GPIOpin2/direction
                                            echo "1" > /sys/class/gpio/gpio$GPIOpin2/value
                                            while [ 1 = 1 ]; do
                                            power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
                                            if [ $power = 0 ]; then
                                            sleep 1
                                            else
                                            poweroff
                                            fi
                                            done' > /etc/mausberry.sh
                                            chmod 777 /etc/mausberry.sh
                                            

                                            Enregistrer le script (ctrl+x+y avec nano) A noter que vous pouvez modifier les numéros des gpio si besoin (Si ils sont utilisés pour une manette par exemple).. Etape 4 : exécuter setup.sh bash setup.sh si il n'y a pas d'erreur, un fichier mausberry.sh est créé dans /etc Etape 5 : Créer le script qui va lancer mausberry.sh au démarrage de votre recalbox nano /etc/init.d/S99maus Copier le code suivant :

                                            #!/bin/bash
                                            ### BEGIN INIT INFO
                                            # Provides: mausberry.sh
                                            # Required-Start: $network $local_fs $remote_fs
                                            # Required-Stop: $network $local_fs $remote_fs
                                            # Default-Start: 2 3 4 5
                                            # Default-Stop: 0 1 6
                                            # Short-Description: switch mausberry init script.
                                            # Description: Starts and stops SwitchDaemon service.
                                            ### END INIT INFO
                                            
                                            #VAR
                                            RUN="/etc/mausberry.sh"
                                            BTD_PID=$(ps -eo pid,command | grep "/bin/bash $RUN" | grep -v grep | awk '{print $1}')
                                            
                                            serviceStatus() {
                                               if [ ! -z "$BTD_PID" ]; then
                                                  echo -e '33[0mservice mausberry.sh ['$BTD_PID'] [33[33;32m OK 33[0m]'
                                               else
                                                  echo -e '33[0mservice mausberry.sh [33[33;31m KO 33[0m]'
                                               fi
                                            }
                                            
                                            # Carry out specific functions when asked to by the system
                                            case "$1" in
                                               start)
                                                  echo "Starting script $RUN ..."
                                                  if [ -z "$BTD_PID" ]; then
                                                     nice -n 19 $RUN&
                                            
                                                     if [ $? -eq 0 ]; then
                                                        echo -e "33[0mscript $RUN [33[33;32m STARTED 33[0m]"
                                                     fi
                                                  else
                                                     echo "script $RUN already started ['$BTD_PID']!"
                                                  fi
                                                  #serviceStatus
                                               ;;
                                               stop)
                                                  echo "Stopping script $RUN ..."
                                                  if [ ! -z "$BTD_PID" ]; then
                                                     kill $BTD_PID
                                            
                                                     if [ $? -eq 0 ]; then
                                                        echo -e "33[0mscript $RUN [33[33;31m STOPPED 33[0m]"
                                                     fi
                                                  fi
                                                  #serviceStatus
                                               ;;
                                               status)
                                                  serviceStatus
                                               ;;
                                               *)
                                                  echo "Usage: /etc/init.d/SwitchService {start | stop | status}"
                                                  exit 1
                                               ;;
                                            esac
                                            
                                            exit 0
                                            

                                            Enregistrer le fichier avec ctrl+x+y faire un chmod sur le fichier généré pour eviter tout problème de droit : chmod 777 /etc/init.d/S99maus Etape 6 : rebootez recalbox ou lancer le script 1) reboot 2) /etc/init.d/S99maus start Après avoir terminé l'une de ces deux dernières étapes au chois. Votre mausberry circuit doit être fonctionnel. le fait de repasser le powerswitch en position haute devrait arrêter votre recalbox électriquement et proprement. si vous avez des remarques à apporter? je ne suis pas un expert. Je sais qu'il y a plus simple notamment pour générer le mausberry.sh

                                            Rpi2 + microsd 16go Manettes : Buffalo snes usb Boitier : NES + mausberry circuit Alimentation : belkin 2A

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Want to support us ?

                                            71
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com