Recalbox Forum

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

    Bouton ON / OFF / Reboot

    Manettes/GPIO/Encodeurs
    reboot
    5
    12
    3705
    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.
    • acris
      acris last edited by

      Bonjour /etc/rc.localn'existe pas sous recalbox. essaie en plaçant ton script au démarrage du pc dans /etc/init.d/ Lire : https://github.com/digitalLumberjack/recalbox-os/wiki/Ajouter-votre-propre-script-au-demarrage-(FR)

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

        Merci l'ami, j'essaie sa ce soir.

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

          Moi j'ai juste connecté un bouton (le même que sur les bornes d'arcade) sur 2 pins du gpio et je peux allumer sans problème et rebooter mon pi2. Pour l’éteindre je le fais par le menu, c'est bien plus simple et aucun besoin de trifouiller dans des lignes de codes.

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

            Bon pas reussis mais j'abandonne pas... Error :

            ATXRaspi shutdown script started: asserted pins (7=input,LOW; 8=output,HIGH). Waiting for GPIO7 to become HIGH...
            sleep: invalid number '0.02'
            /etc/init.d/shutdowncheck.sh: line 35: 1427321809%N-1427321809%N: division by 0 (error token is "N-1427321809%N")
            
            1 Reply Last reply Reply Quote 0
            • acris
              acris last edited by

              Bonjour J'ai modifié la fin de ton script et j'ai ajouté un script pour que ça tourne en "service" je ne sais pas si ça te sera utile. J'ai supprimé aussi la commande sudo car tu es déjà en root dans recalbox J'ai supprimé la derniere ligne du sed ne sachant pas vraiement à quoi elle sert. essaie ceci : shutdowncheck.sh

              echo '#!/bin/bash
              
              #This is GPIO 7 (pin 26 on the pinout diagram).
              #This is an input from ATXRaspi to the Pi.
              #When button is held for ~3 seconds, this pin will become HIGH signalling to this script to poweroff the Pi.
              SHUTDOWN=7
              REBOOTPULSEMINIMUM=200      #reboot pulse signal should be at least this long
              REBOOTPULSEMAXIMUM=600      #reboot pulse signal should be at most this long
              echo "$SHUTDOWN" > /sys/class/gpio/export
              echo "in" > /sys/class/gpio/gpio$SHUTDOWN/direction
              
              #Added reboot feature (with ATXRaspi R2.6 (or ATXRaspi 2.5 with blue dot on chip)
              #Hold ATXRaspi button for at least 500ms but no more than 2000ms and a reboot HIGH pulse of 500ms length will be issued
              
              #This is GPIO 8 (pin 24 on the pinout diagram).
              #This is an output from Pi to ATXRaspi and signals that the Pi has booted.
              #This pin is asserted HIGH as soon as this script runs (by writing "1" to /sys/class/gpio/gpio8/value)
              BOOT=8
              echo "$BOOT" > /sys/class/gpio/export
              echo "out" > /sys/class/gpio/gpio$BOOT/direction
              echo "1" > /sys/class/gpio/gpio$BOOT/value
              
              echo "ATXRaspi shutdown script started: asserted pins ($SHUTDOWN=input,LOW; $BOOT=output,HIGH). Waiting for GPIO$SHUTDOWN to become HIGH..."
              
              #This loop continuously checks if the shutdown button was pressed on ATXRaspi (GPIO7 to become HIGH), and issues a shutdown when that happens.
              #It sleeps as long as that has not happened.
              while [ 1 ]; do
                shutdownSignal=$(cat /sys/class/gpio/gpio$SHUTDOWN/value)
                if [ $shutdownSignal = 0 ]; then
                  /bin/sleep 0.2
                else  
                  pulseStart=$(date +%s%N | cut -b1-13) # mark the time when Shutoff signal went HIGH (milliseconds since epoch)
                  while [ $shutdownSignal = 1 ]; do
                    /bin/sleep 0.02
                    if [ $(($(date +%s%N | cut -b1-13)-$pulseStart)) -gt $REBOOTPULSEMAXIMUM ]; then
                      echo "ATXRaspi triggered a shutdown signal, halting Rpi ... "
                      poweroff
                      exit
                    fi
                    shutdownSignal=$(cat /sys/class/gpio/gpio$SHUTDOWN/value)
                  done
                  #pulse went LOW, check if it was long enough, and trigger reboot
                  if [ $(($(date +%s%N | cut -b1-13)-$pulseStart)) -gt $REBOOTPULSEMINIMUM ]; then 
                    echo "ATXRaspi triggered a reboot signal, recycling Rpi ... "
                    reboot
                    exit
                  fi
                fi
              done' > /recalbox/scripts/shutdowncheck.sh
              chmod 775 /recalbox/scripts/shutdowncheck.sh
              

              Création du service à nommer S92shutdownService et à placer dans /etc/init.d/

              #!/bin/bash
              ### BEGIN INIT INFO
              # Provides: shutdowncheck.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 shutdowndeamon service.
              ### END INIT INFO
              
              #VAR
              RUN="/recalbox/scripts/shutdowncheck.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 shutdowncheck.sh ['$BTD_PID'] [33[33;32m OK 33[0m]'
                 else
                    echo -e '33[0mservice shutdowncheck.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/S92shutdownService {start | stop | status}"
                    exit 1
                 ;;
              esac
              
              exit 0
              

              chmod 777 /etc/init.d/S92shutdownService Ensuite tester :

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

              Tiens nous au courant 😉

              1 Reply Last reply Reply Quote 0
              • mth-richer
                mth-richer last edited by

                Bonjour, Du coup cette méthode fonctionne correctement ? Merci.

                Rpi rev B Dualshock 3 SixAxis

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

                  Désolé j'ai pas eu le temps de tester, j'ai refait entièrement ma salle à manger et cuisine. N'était plutôt hard que soft lol. Je mis remet cet semaine je pense.

                  1 Reply Last reply Reply Quote 0
                  • mth-richer
                    mth-richer last edited by

                    Bonjour, D'accord bah tiens nous au courant dès que tu as fait ça. de mon côté si j'ai le temps je vais essayé aussi.   Merci.

                    Rpi rev B Dualshock 3 SixAxis

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

                      Salut Acris encore desole du temp de reponse, gros travaux chez moi... Donc je viens de faire laisser cela marche tres bien juste une corrections dans ton script .

                      Tu as mis : done' > /recalbox/script/shutdowncheck.sh chmod 755 /recalbox/script/shutdowncheck.sh Et il fallait : done' > /recalbox/scripts/shutdowncheck.sh chmod 755 /recalbox/scripts/shutdowncheck.sh

                      De plus le shutdown ne se fait pas à 3 seconde mais à 7 et le reboot à 8 ! Bizarre je regarderais plus tard.

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

                        Bonjour dans le script il est noté en haut : et si j ai bien compris le reboot se fait entre 3 et 10 secondes non ?

                        #When button is held for ~3 seconds, this pin will become HIGH signalling to this script to poweroff the Pi.
                        SHUTDOWN=7
                        REBOOTPULSEMINIMUM=200      #reboot pulse signal should be at least this long
                        REBOOTPULSEMAXIMUM=600      #reboot pulse signal should be at most this long
                        echo "$SHUTDOWN" > /sys/class/gpio/export
                        echo "in" > /sys/class/gpio/gpio$SHUTDOWN/direction
                        

                        Pour les autres, j ai uploadé les scripts Via putty in SSH : login (root) / password (recalboxroot)

                        wget https://app.box.com/s/79104q7bwlzdvgjt1fjlsf9h7ktmsp3g
                        bash setup.sh
                        wget https://app.box.com/s/uz3sp9ya0ls2e6w825w26slpspeqno0m
                        cp ~/S92shutdownService  /etc/init.d/
                        chmod 775 /etc/init.d/S92shutdownService
                        reboot
                        
                        1 Reply Last reply Reply Quote 0
                        • betobcampos
                          betobcampos last edited by

                          <pre id="tw-target-text" class="tw-data-text vk_txt tw-ta tw-text-small" dir="ltr" style="unicode-bidi: isolate; font-family: inherit; border: none; padding: 0px 0.14em 0px 0px; position: relative; margin-top: 0px; margin-bottom: 0px; resize: none; overflow: hidden; width: 237.5px; white-space: pre-wrap; word-wrap: break-word; color: #212121; height: 288px;" data-placeholder="Tradução" data-fulltext=""><span lang="en">Hello personal , okay ? Unfortunately i do not speak French . Me parece que managed you create script To turn the rasp . Could provide OS Files paragraph download? I could not understand abcos**tamente Nothing Francisca . Thank you and sorry for the inconvenience . Beto .</span>

                          Publicitário, mineiro e Webdesigner. Web e design grafico Gloria Perez e da Dra. Ana Beatriz Barbosa Silva. Pesquisador do tema Deepweb e Cruzeirense!

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

                          Want to support us ?

                          69
                          Online

                          99.6k
                          Users

                          28.1k
                          Topics

                          187.1k
                          Posts

                          Copyright © 2021 recalbox.com