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

Multi Switch Shutdown Script!

Scheduled Pinned Locked Moved Ideas and Development
shutdown scriptshutdown switchcyperghost
272 Posts 40 Posters 109.4k 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.
  • V
    vivesladron @cyperghost
    last edited by 18 Feb 2019, 19:50

    @cyperghost

    That’s perfect
    Thanks!

    What if I want only poweroff by pressing just once from the power menu?

    I didn’t check @drakaen391 suggestion yet

    C 1 Reply Last reply 18 Feb 2019, 19:53 Reply Quote 0
    • C
      cyperghost @vivesladron
      last edited by 18 Feb 2019, 19:53

      @vivesladron

      What if I want only poweroff by pressing just once from the power menu?

      Not possible - therfore someone has to change the code of EmulationStation.
      You've got the same behaviour with KODI. One file to start but you have to enter the "system" and to start the single "ROM" file ;)

      V 1 Reply Last reply 19 Feb 2019, 17:33 Reply Quote 1
      • V
        vivesladron @cyperghost
        last edited by 19 Feb 2019, 17:33

        @cyperghost
        I'm running the ROMs from a USB drive and I'm having problems with the scripts

        /home/pi/RetroPie/scripts/PowerOff.sh: line 2 /home/pi/RetroPie/scripts/multi_switch.sh: Permission denied

        I tried with chmod +x but no difference
        Do you know how to fix it?

        Thanks

        C 1 Reply Last reply 19 Feb 2019, 18:24 Reply Quote 0
        • C
          cyperghost @vivesladron
          last edited by 19 Feb 2019, 18:24

          @vivesladron Shure... just add bash command inside the scripts

          so it will look like
          bash /home/pi/RetroPie/scripts/multi_switch.sh --es-restart &

          V 1 Reply Last reply 21 Feb 2019, 17:12 Reply Quote 0
          • V
            vivesladron @cyperghost
            last edited by 21 Feb 2019, 17:12

            @cyperghost

            So easy!
            Thank you!
            :)

            1 Reply Last reply Reply Quote 0
            • R
              Rion
              last edited by 20 Mar 2019, 09:04

              @cyperghost Hi! Is your script compatible with mini-mods NesPi Fan Controller?

              Github link to the script

              FBNeo rom filtering
              Mame2003 Arcade Bezels
              Fba Arcade Bezels
              Fba NeoGeo Bezels

              1 Reply Last reply Reply Quote 0
              • E
                Efriim
                last edited by 20 Mar 2019, 12:16

                I really appreciate this script and have used it since before I registered to the forums here.

                Since I have had the same retropie build for a while and I uninstalled two or three other shutdown scripts before installing this one.

                I like that I can exit the dreamcast emulator without having to use the controller. I was wondering about when I press the reset button to do this. I get this error:

                rc.local[__]: /opt/RetroFlag/multi_switch.sh: line 63: kill: (___) - No such process
                

                Is this normal behavior, and can I fix it?

                I was also wondering about the fan_shutdown additional script.
                When I turn my pi off, say using the Emulationstation menu to shutdown; the fan always stays on until I hit the switch on my case; Was the fan_shutdown script meant to turnoff the fan in that usage? If so what do I need to do to get it to work properly?
                Thanks, @cyperghost

                C 1 Reply Last reply 20 Mar 2019, 19:12 Reply Quote 2
                • C
                  cyperghost @Efriim
                  last edited by cyperghost 20 Mar 2019, 19:12

                  @Efriim This could happen if the kill command fails because the PID was closed already and the kill commands leads to a already closed process.
                  You can add a > /dev/null 2>&1 to python script in rc.local to get rid of it.

                  The fan script is needed for some old NESPi cases. Some users report the fan is still blowing without it. So your description sounds like that it can help in this case. I've a SNES case and I do not need it.

                  E 1 Reply Last reply 20 Mar 2019, 23:09 Reply Quote 0
                  • E
                    Efriim @cyperghost
                    last edited by Efriim 20 Mar 2019, 23:09

                    @cyperghost
                    I think I didn't describe the fan concisely. I was suggesting that the fan should be shutdown with the system e.g. sudo poweroff, and without having to get up and hit the powerswitch. What you say makes sense, that the fan wouldn't shutdown even when hitting the power switch on some cases.
                    I have Retroflag MegaPi Case.

                    C 1 Reply Last reply 21 Mar 2019, 19:19 Reply Quote 0
                    • C
                      cyperghost @Efriim
                      last edited by cyperghost 21 Mar 2019, 19:19

                      @Efriim You may add the shutdown script according to the github description

                      1. Install fan_shutdown script: cd /lib/systemd/system-shutdown/ && sudo wget https://raw.githubusercontent.com/crcerror/ES-generic-shutdown/master/shutdown_fan && sudo chmod +x shutdown_fan
                      2. Install raspi-gpio with sudo apt install raspi-gpio
                      3. The shutdown_fan is setted to GPIO4 as standard
                      4. Therefore you might edit with sudo nano /lib/systemd/system-shutdown/shutdown_fan

                      The script will be executed miliseconds before shutdown and will cut off power and stops the fan from everlasting blowing.

                      E 1 Reply Last reply 25 Mar 2019, 00:31 Reply Quote 0
                      • E
                        Efriim
                        last edited by Efriim 22 Mar 2019, 15:37

                        I'm trying the different GPIO for the shutdown_fan as it isn't doing anything. I'll update if I am successful. The fan is not connected to the gpio however it is connected to the board that connects to the GPIO. I tried GPIO set 1,2,3,4,5,7,8,10 none did as I wanted it to do. Hitting the powerswitch turns off the fan as per normal.

                        1 Reply Last reply Reply Quote 0
                        • E
                          Efriim @cyperghost
                          last edited by Efriim 25 Mar 2019, 00:31

                          @cyperghost Hi, along with the script and its shutdown function working for dreamcast. A new feature of the reicast emulator is to save the rtc setting to emu.cfg when invoking the exit by pressing the exit hotkey. Using the script reset button to exit the emulator does, so successfully however it doesn't save the rtc settings. Meaning I have the set time/date screen until I make a clean exit with the controller and this lasts for a month or so. Do you think we will be able to add this type of exit to the script for reicast?

                          I meant here that the reset button to exit reicast works and I am happy and proud to use this script. If there was a way to passthrough a command to reicast to initialize the poweroff where it saves the rtc, I would too like to know this.

                          M C 2 Replies Last reply 25 Mar 2019, 04:41 Reply Quote 0
                          • M
                            mitu Global Moderator @Efriim
                            last edited by 25 Mar 2019, 04:41

                            @Efriim said in Multi Switch Shutdown Script!:

                            A new feature of the reicast emulator is to save the rtc setting to emu.cfg when invoking the exit by pressing the exit hotkey

                            Are you sure ? The RTC is saved in the NVRAM file (BIOS/dc/dc_nvmem.bin), not in the emu.cfg file.

                            E 1 Reply Last reply 25 Mar 2019, 05:02 Reply Quote 0
                            • E
                              Efriim @mitu
                              last edited by Efriim 25 Mar 2019, 05:02

                              @mitu
                              The setting looks like this from emu.cfg
                              Dreamcast.RTC = 1543281985

                              The nvram needs to be within a number of seconds of this setting, that is why it asks for the time/date even if it has already been saved in the nvram.

                              1 Reply Last reply Reply Quote 0
                              • C
                                cyperghost @Efriim
                                last edited by 25 Mar 2019, 06:03

                                @Efriim This could happen if the kill command fails. After 2 seconds annother kill command with -9 parameter is send to process and this will terminate the emulator. The only way I see is to use the NET commands retroarch offers. There you can send key commands to proper exit the core. Let me think about it ..,

                                1 Reply Last reply Reply Quote 0
                                • E
                                  Efriim
                                  last edited by 25 Mar 2019, 06:45

                                  Though it is only with the standalone reicast, indeed. There must be a passthrough to the sdl to initialize the emulator to its shutdown state.

                                  C 1 Reply Last reply 25 Mar 2019, 10:42 Reply Quote 0
                                  • C
                                    cyperghost @Efriim
                                    last edited by 25 Mar 2019, 10:42

                                    @Efriim oh yes and even it's not a libRetro core UDP will also fail. You may find a way to send signal level 15 to this core then it will save the day time

                                    1 Reply Last reply Reply Quote 0
                                    • E
                                      Efriim
                                      last edited by Efriim 31 Mar 2019, 10:06

                                      @cyperghost said in Multi Switch Shutdown Script!:

                                      > /dev/null 2>&1

                                      This broke some things, mostly only the rc.local stopped working. I shouldn't have added it to rc.local, but It worked with rc.local as long as I'm not fumbling around on other things so much.

                                      C 1 Reply Last reply 31 Mar 2019, 10:13 Reply Quote 0
                                      • C
                                        cyperghost @Efriim
                                        last edited by cyperghost 31 Mar 2019, 10:13

                                        @Efriim Sorry ... I should think more about next time.
                                        The output of stdout to /dev/null can't work. Because this output is needed for the python scripts to get response from the script. Maybe just send stderr to /dev/null is better? I did not test so far but I think that makes more sense. Yes, set it for the python script because this causes the error.

                                        2>/dev/null

                                        Yes /etc/rc.local is used for the retroflag script for automatic startup. But you can also use autostart.sh from emulationstation. That's the way I prefer...
                                        You can edit with nano /opt/retropie/configs/all/autostart.sh

                                        Broken means your installation does not boot anymore? Oh dear, you may edit the file from a second mashine?
                                        About the commands... please don't forget to add an & at last sign. This will send the process to background otherwise the boot progress stops here.

                                        E 2 Replies Last reply 31 Mar 2019, 10:27 Reply Quote 0
                                        • E
                                          Efriim @cyperghost
                                          last edited by 31 Mar 2019, 10:27

                                          @cyperghost
                                          Thanks. I got the rc.local to work again, I left one of these ">" when I deleted /dev/null.

                                          When I made reicast from source with /dev/null added to the rc.local I didn't notice any build errors, though when I ran reicast.sh it did give me an error about /dev/null and wouldn't work. I recompiled it and it is not working still. So I guess I was dumb and it had not to do with that.

                                          I don't know what is up with reicast, the controller used to work without ever setting it up, and then it stopped and the joyconfig didn't work and now the emulator wont even start.

                                          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.

                                            This community forum collects and processes your personal information.
                                            consent.not_received