RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Mausberry Shutdown Script Doesn't Save Metadata

    Scheduled Pinned Locked Moved ControlBlock, PowerBlock & Co.
    mausberry
    251 Posts 10 Posters 102.5k Views
    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.
    • lostlessL
      lostless @meleu
      last edited by

      @meleu yes.

      @meleu said in Mausberry Shutdown Script Doesn't Save Metadata:

      Just to be really sure: "works fine" means "saves all new games I added to Favorites and/or Last Played", right?

      meleuM 2 Replies Last reply Reply Quote 1
      • meleuM
        meleu @lostless
        last edited by

        @lostless please, give me a few minutes and I'll tweak the script v1.2 a little and post it to you try.

        • Useful topics
        • joystick-selection tool
        • rpie-art tool
        • achievements I made
        1 Reply Last reply Reply Quote 1
        • meleuM
          meleu @lostless
          last edited by meleu

          @lostless please, install inotify-tools:

          sudo apt-get install inotify-tools
          

          and then try the script below:

          #!/bin/bash
          # Before using this script you need to install inotify-tools:
          #
          #    sudo apt-get install inotify-tools
          #
          # I'm just trying to help with the script logic here.
          # I DON'T HAVE A MAUSEBERRY AND DIDN'T TEST THE GPIO STUFF HERE!
          #
          #########################################################
          #  U S E   I T   A T   Y O U R   O W N   R I S K ! ! !  #
          #########################################################
          #
          # meleu - July/2017
          # kudos for @cyperghost , who is very persistent in help you guys! :-)
          
          #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
          
          file="/sys/class/gpio/gpio$GPIOpin1/value"
          
          while inotifywait -qq -e modify "$file" ; do
              power="$(cat "$file")"
              [[ "$power" == 0 ]] && continue
          
              emu_command="$(sed -n 4p /dev/shm/runcommand.info)"
              [[ -n "$emu_command" ]] && pkill -f "${emu_command%% *}" && sleep 5
          
              espid=$(pgrep -f "/opt/retropie/supplementary/.*/emulationstation([^.]|$)")
              if [[ "$espid" ]]; then
                  touch /tmp/es-shutdown && chown pi:pi /tmp/es-shutdown
                  kill "$espid"
              fi
          
              sudo poweroff
          done
          
          • Useful topics
          • joystick-selection tool
          • rpie-art tool
          • achievements I made
          lostlessL 1 Reply Last reply Reply Quote 0
          • lostlessL
            lostless @meleu
            last edited by

            @meleu Im giving it a shot. I really don't want to reconfigure my pi, but oh what the heck. Ive only had to reconfigure 10 times or so. whats another for the most perfect script for mauseberry (or other switch) users.

            meleuM 1 Reply Last reply Reply Quote 0
            • meleuM
              meleu @lostless
              last edited by

              @lostless I edited the script, be sure to get the current one!

              • Useful topics
              • joystick-selection tool
              • rpie-art tool
              • achievements I made
              lostlessL 1 Reply Last reply Reply Quote 0
              • lostlessL
                lostless @meleu
                last edited by

                @meleu i saw that. whew.

                lostlessL 1 Reply Last reply Reply Quote 1
                • lostlessL
                  lostless @lostless
                  last edited by lostless

                  @meleu killed all switch functionality. As in it no longer functions as a shutdown switch.

                  meleuM 2 Replies Last reply Reply Quote 0
                  • meleuM
                    meleu @lostless
                    last edited by

                    @lostless OK. I'll try a little further...

                    • Useful topics
                    • joystick-selection tool
                    • rpie-art tool
                    • achievements I made
                    lostlessL 1 Reply Last reply Reply Quote 0
                    • lostlessL
                      lostless @meleu
                      last edited by lostless

                      @meleu i see you removed some stuff from the original script

                      while [ 1 = 1 ]; do
                      power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
                      if [ $power = 0 ]; then
                      sleep 1
                      else
                      

                      that was removed. any reason to that?

                      meleuM 1 Reply Last reply Reply Quote 0
                      • meleuM
                        meleu @lostless
                        last edited by meleu

                        @lostless said in Mausberry Shutdown Script Doesn't Save Metadata:

                        that was removed. any reason to that?

                        yep. This infinite loop is consuming CPU cycles unnecessarily.

                        • Useful topics
                        • joystick-selection tool
                        • rpie-art tool
                        • achievements I made
                        lostlessL 1 Reply Last reply Reply Quote 0
                        • lostlessL
                          lostless @meleu
                          last edited by

                          @meleu that was in the original script from mauseberry. never had any issues. interesting that their code just constantly checks the gpio.

                          meleuM 1 Reply Last reply Reply Quote 0
                          • meleuM
                            meleu @lostless
                            last edited by

                            @lostless do they have a github repo or something?

                            • Useful topics
                            • joystick-selection tool
                            • rpie-art tool
                            • achievements I made
                            lostlessL 1 Reply Last reply Reply Quote 0
                            • lostlessL
                              lostless @meleu
                              last edited by

                              @meleu they don't. just the download and install instructions on their website. But heres the script you download and install.

                              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
                              
                              1 Reply Last reply Reply Quote 0
                              • meleuM
                                meleu @lostless
                                last edited by

                                @lostless said in Mausberry Shutdown Script Doesn't Save Metadata:

                                @meleu killed all switch functionality. As in it no longer functions as a shutdown switch.

                                is it killing the emulator/ES?

                                • Useful topics
                                • joystick-selection tool
                                • rpie-art tool
                                • achievements I made
                                lostlessL 1 Reply Last reply Reply Quote 0
                                • lostlessL
                                  lostless @meleu
                                  last edited by

                                  @meleu its not doing anything.

                                  meleuM 1 Reply Last reply Reply Quote 0
                                  • meleuM
                                    meleu @lostless
                                    last edited by

                                    @lostless did you install inotify-tools?

                                    • Useful topics
                                    • joystick-selection tool
                                    • rpie-art tool
                                    • achievements I made
                                    lostlessL 1 Reply Last reply Reply Quote 0
                                    • lostlessL
                                      lostless @meleu
                                      last edited by

                                      @meleu yes

                                      meleuM 2 Replies Last reply Reply Quote 0
                                      • meleuM
                                        meleu @lostless
                                        last edited by

                                        @lostless OK, let's try with that expensive infinite loop just to check if the inotifywait part is bugging the script. Hold on a little...

                                        • Useful topics
                                        • joystick-selection tool
                                        • rpie-art tool
                                        • achievements I made
                                        lostlessL 1 Reply Last reply Reply Quote 0
                                        • lostlessL
                                          lostless @meleu
                                          last edited by

                                          @meleu I'm trying my own Frankenste in script (taking the parts that i see may work)

                                          1 Reply Last reply Reply Quote 1
                                          • meleuM
                                            meleu @lostless
                                            last edited by meleu

                                            @lostless please, try this one:

                                            #!/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
                                            
                                            file="/sys/class/gpio/gpio$GPIOpin1/value"
                                            
                                            while true; do
                                                power="$(cat "$file")"
                                                if [[ "$power" == 0 ]];
                                                    sleep 1
                                                else
                                                    emu_command="$(sed -n 4p /dev/shm/runcommand.info)"
                                                    [[ -n "$emu_command" ]] && pkill -f "${emu_command%% *}" && sleep 5
                                            
                                                    espid=$(pgrep -f "/opt/retropie/supplementary/.*/emulationstation([^.]|$)")
                                                    if [[ "$espid" ]]; then
                                                        touch /tmp/es-shutdown && chown pi:pi /tmp/es-shutdown
                                                        kill "$espid"
                                                    fi
                                            
                                                    sudo poweroff
                                                fi
                                            done
                                            
                                            • Useful topics
                                            • joystick-selection tool
                                            • rpie-art tool
                                            • achievements I made
                                            lostlessL 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.