Software Shutdown using Atxraspi
-
At first try the solution posted by @meleu --> Posted here
If this does not work take the lines above
Okay.... in your python script:
Edit the lineos.system("sudo poweroff")
toos.system("sudo /etc/es_shutdown.sh")
copy this to
/etc/es_shutdown.sh
thensudo chmod +x /etc/es_shutdown.sh
#!/bin/bash # End Emulationstation if condition of running binary is true (v1.59) # v1.0 07/21/17 by cyperghost - Inital run # v1.1 07/22/17 - Added chown command to set right user permission for creating es-shutdown // cyperghost # v1.2 07/23/17 - Some small improvments, easier to maintain, removed echo, removed else branch // cyperghost # v1.5 07/27/17 - Great step to exit ES even if emulators is running by runcommand.sh are started // meleu # v1.55 07/29/17 - all kudos go to @meleu for his alltime genious RegEx hack! // meleu # v1.56 07/30/17 - All emulators will be detected. // meleu # v1.58 08/02/17 - generel method: Use PPID to detect child PIDs now (ScummVM fix) // cyperghost # v1.59 08/03/17 - nothing new, just polishing the code // meleu # I just checked with SSH command - it saved my metadata! Maybe you need to extend sleeptimer! # greetings @pjft for his famous favorits and @meleu for his RegEx sniplets and his constant help! emucall="$(sed -n 4p /dev/shm/runcommand.info | tr -d '\\"' | tr '^$[]*.()|+?{}' '.')" if [[ -n "$emucall" ]]; then emupid="$(pgrep -f "$emucall")" pkill -P "$emupid" kill "$emupid" sleep 4 fi espid="$(pgrep -f "/opt/retropie/supplementary/.*/emulationstation([^.]|$)")" if [[ -n "$espid" ]]; then touch /tmp/es-shutdown && chown pi:pi /tmp/es-shutdown kill "$espid" exit fi # End Emulationstation if condition of running binary is true poweroff
-
@cyperghost Hi. I have just given this a go. Now when i press the shutdown button the status flashes and nothing happens then after a bit of time it is like the power has been cut.
-
@crazydude2
What did you try?Is your metadata saved in your usecase? What do you mean with "status flashes"?
-
@cyperghost I tried the 1st one which did not work and then the 2nd one causes it to just cut the power. The atxraspi has a status led which flashes when in shutdown. At a guess it times out and just cuts the power if its not received the success signal. Perhaps that shutdown script takes too long? Nothing seems to happen in retropi before the power just cuts. The rest signal still works so i assume its still going through the python script
-
@crazydude2 So you press the button 4 seconds right?
And then a shutdown is performed, right?Can you restart ES and type in SSH
sudo /etc/es_shutdown.sh
?
ES should shutoff and metadata is saved. -
@cyperghost When i run from ssh i get this error message and then it shuts down
pi@retropie:~ $ sudo /etc/es_shutdown.sh
sed: can't read /dev/shm/runcommand.info: No such file or directoryIt seems to shutdown correct if no metadata has changed from the switch. For example freshly turned on and then off. If i load a game exit back to check it is in last played when i use the power switch it just cuts the power rather than shutdown
-
@crazydude2 I have to take a look ... as I have not the atx here it's hard to suggest.
If you can switch to the install bash script it would be much easier
sudo wget https://raw.githubusercontent.com/LowPowerLab/ATX-Raspi/master/shutdownchecksetup.sh sudo bash shutdownchecksetup.sh sudo rm shutdownchecksetup.sh sudo reboot
I guess the bash shutdown script can be changed to this ...
with
sudo nano /etc/shutdowncheck.sh
https://ghostbin.com/paste/bo2vu -
@cyperghost Thanks for the help. This seems to work. I just need to remember to hold the button long enough as restart just shutdowns and leaves the atxraspi on which isn't ideal. Tomorrow i need to look into the software shutdown but i am not as worried about this as i probably wont use very often
-
@crazydude2
I made a small rework to the script to make reboot and shutdown for this script available hereFor software shutdown with the transistor you have to edit
sudo nano /opt/retropie/supplementary/emulationstation/emulationstation.sh
delete all content and add new one posted down in this posting.be aware... if you update RetroPie you may loose this script! as it is part of the RetroPie package!
Can you post your outfindings please?
#!/bin/sh esdir="$(dirname $0)" while true; do rm -f /tmp/es-restart /tmp/es-sysrestart /tmp/es-shutdown "$esdir/emulationstation" "$@" ret=$? [ -f /tmp/es-restart ] && continue if [ -f /tmp/es-sysrestart ]; then rm -f /tmp/es-sysrestart sudo /usr/bin/local/softshutdown.sh 1 sudo reboot break fi if [ -f /tmp/es-shutdown ]; then rm -f /tmp/es-shutdown sudo /usr/bin/local/softshutdown.sh 4 sudo poweroff break fi break done
-
@cyperghost Hi I think it is now working well. Thanks for all your help. What do you mean by posting outfindings? Just so people know
nano /opt/retropie/supplementary/emulationstation/emulationstation.sh
had to be changed tosudo nano /opt/retropie/supplementary/emulationstation/emulationstation.sh
to allow editingand the script also had to be altered to
#!/bin/sh esdir="$(dirname $0)" while true; do rm -f /tmp/es-restart /tmp/es-sysrestart /tmp/es-shutdown "$esdir/emulationstation" "$@" ret=$? [ -f /tmp/es-restart ] && continue if [ -f /tmp/es-sysrestart ]; then rm -f /tmp/es-sysrestart sudo /usr/local/bin/softshutdown.sh 1 sudo reboot break fi if [ -f /tmp/es-shutdown ]; then rm -f /tmp/es-shutdown sudo /usr/local/bin/softshutdown.sh 4 sudo poweroff break fi break done
-
@crazydude2 Outfindings? ... tell me if it works ;)
make 3 backticks liker here ```
in beginning and ending of codeblock
One backtick ` in beginning and ending of line or word makes it red
__ makes bold
~~makes striceout
_ makes italicI'm wondering that you need root-access for editing this file!
can you post me output of
ls -l /opt/retropie/supplementary/emulationstation
please -
@cyperghost
pi@retropie:~ $ ls -l /opt/retropie/supplementary/emulationstation
total 4756
-rw-r--r-- 1 root root 451 Jul 11 15:38 CREDITS.md
-rwxr-xr-x 1 root root 4804496 Jul 11 15:38 emulationstation
-rwxr-xr-x 1 root root 526 Sep 19 20:56 emulationstation.sh
-rwxr-xr-x 1 root root 527 Sep 19 20:56 emulationstation.sh.save
-rw-r--r-- 1 root root 5667 Jul 11 15:38 GAMELISTS.md
-rw-r--r-- 1 root root 10181 Jul 11 15:38 README.md
drwxr-xr-x 3 root root 4096 Jul 21 23:18 scripts
-rw-r--r-- 1 root root 27979 Jul 11 15:38 THEMES.md -
@crazydude2 Okay correct... yes we need sudo for editing - forget that! thx
Now you can test shutdown via ES MainMenu... it should work like you press the button.
Have fun -
@cyperghost Yes i can confirm it now works as it should. I have tried all combinations i can think of all with success. Thanks for all the help.
-
@crazydude2 Okay, keep in mind that if you update RetroPie it may happen you will loose settings to
/opt/retropie/supplementary/emulationstation/emulationstation.sh
as the two lines I added will be erased. So you have to add them manually....This will only affect the software-shutdown. Does the LED also blink if you choose software shutdown? I'm just interested to know ;) It should so as it triggers the same GPIO as the button press ;)
-
@cyperghost Yes the led does still flash on software shutdown
-
@crazydude2 Wow awesome! So have fun...
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.