EmulationStation Kiosk-USB Specific Crash - Can it be Replicated?
-
I'm having a very odd, and specific crash when loading roms off of my USB drive and only when I boot up the system for the first time and only in kiosk mode. Ran full system update last night before crash and have attempted with last night's EmulationStation's binary and source builds. Ok here goes:
Crash:
- Set to Kiosk Mode > Insert USB Rom Thumbdrive > Restart Pi > EmulationStation Crashes before Loading Systems ("Loading System Config")
- Leave on Kiosk Mode > Remove USB Rom Thumbdrive > Restart Pi > EmulationStation Works Normally
- Insert USB Rom Thumbdrive > Restart EmulationStation Only > EmulationStation Works Normally and Loads All Roms
- Restart Pi > Leave in Kiosk Mode > EmulationStation again Crashes
- SSH in and Change to Full Mode > Leave USB Rom Thumbdrive in > EmulationStation Works Normally Loads all Roms
So the root of the problem seems to be having the USB inserted with Kiosk mode and only on initial boot of the pi. It crashes in the "Loading System Config" phase of EmulationStation. The es_log, I can post if anyone thinks it's necessary, but outside of a few lines I'll paste at the bottom, it's just a regurgitation of variations of the following lines.
Attempted Fixes:
- Changing to Carbon Theme
- Removing Light Overclock
- Resetting Rom Pathway Permissions
Thoughts:
I have read from the forums in the past that some subfolders can cause issues. I have dc and segacd subfolders so maybe that's causing the issue (I haven't been home to test it), but I thought if it could be replicated, maybe this should be mentioned since it was seemingly fixed previously.
es_log.cfg Dumps:
lvl2: ARB_texture_non_power_of_two: MISSING
lvl1: Warning from theme "/etc/emulationstation/themes/switch/theme.xml" (from included file "/etc/emulationstation/themes/switch/config.xml") (from included file "/etc/emulationstation/themes/switch/settings/letters.xml") could not find file "./../assets/buttons/Xbox_Buttons_system.svg" (which resolved to "/etc/emulationstation/themes/switch/settings/../assets/buttons/Xbox_Buttons_system.svg")
lvl2: Couldn't find game referenced at '/home/pi/RetroPie/roms/megadrive/Master of Monsters (U) [!].zip' for system config '/home/pi/.emulationstation/collections/custom-Alex's Favorites.cfg'
Everything else looks normal and I see a lot of these on a normal startup anyway. Just need to clean up a lot of my custom collections.
Thanks, y'all.
-
Okay so appears I should have been looking ates_log.txt.bak
. Here's a dump:Edit: I see this is a clean exit now... oops.
lvl2: req sound [detailed.launch] lvl2: (missing) lvl2: Attempting to launch game... lvl0: VolumeControl::init() - Failed to find mixer elements! `lvl2: /opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ nes /home/pi/RetroPie/roms/nes/Mega\ Man\ 4\ \(USA\).zip` lvl2: Creating surface... lvl2: Created window successfully. lvl2: Added known joystick Wireless Controller (instance ID: 0, device index: 0) lvl0: VolumeControl::init() - Failed to find mixer elements! lvl2: Added known joystick Wireless Controller (instance ID: 0, device index: 0) lvl2: Added/Updated 1 entities in '/home/pi/RetroPie/roms/nes/gamelist.xml' lvl2: EmulationStation cleanly shutting down.
-
Looks like a case of 'USB not ready before ES starts' thus not finding any systems on the disk. Being in Kiosk Mode, the
retropie
system is also not available, so this might lead to a crash. Restarting ES works because the USB is available and the systems are correctly read.The messages from the log don't seem related to your problem and neither the fact that you have sub-folders.
What you can do is to exit Kiosk mode and see what happens on the 1st run. If you get only the RetroPie system, then my guess is correct. Can you post youres_settings.cfg
file from~/.emulationstation
? -
@mitu said in EmulationStation Kiosk-USB Specific Crash - Can it be Replicated?:
Looks like a case of 'USB not ready before ES starts' thus not finding any systems on the disk. Being in Kiosk Mode, the
retropie
system is also not available, so this might lead to a crash. Restarting ES works because the USB is available and the systems are correctly read.The messages from the log don't seem related to your problem and neither the fact that you have sub-folders.
What you can do is to exit Kiosk mode and see what happens on the 1st run. If you get only the RetroPie system, then my guess is correct. Can you post youres_settings.cfg
file from~/.emulationstation
?Thanks for responding, @mitu.
-
@hooperre There doesn't seem anything special with your settings. I was checking if you're using the
Local Art
option, since that's something new in Emulationstation 2.8, this year's release.
I'll see if I can reproduce this or get a simpler test case.
As a workaround, try adding a delay before Emulationstation starts, add a line withsleep 3
in theautostart.sh
file in/opt/retropie/configs/all/autostart.sh
, just before the line that startsemulationstation
. -
@mitu Mannnn I hate to report this but
sleep 3
sleep 5
andsleep 50
all failed.I’ll paste the es_log.txt here: https://pastebin.com/6hJgYatE
es_log.txt.bak: https://pastebin.com/wq6Vc7jh (seems the same) -
@hooperre Did you forget to post the log ?
-
@mitu Posted. Seems like the log is just abruptly interrupted.
-
Yes, the logs are the same, it seems the crash happens when loading the collections starting with
[space]
. You say that it only happens on 1st load ? Did you have another ES version before this crash started happening ?EDIT: is there any crash error message on the terminal ?
-
@mitu To be honest, I only use Kiosk when copying my SD for my cousin and brother so I'm not sure pre vs. post update.
The crash message is the "Emulationstation has crashed" blue screen. Suggests I reset rom permissions / check gpu split. I can post a picture later if you're not sure what I'm referring to from memory.
Is there another character I can use to bring the collections to the top besides a space? I can test that when I'm back from work.
-
@hooperre said in EmulationStation Kiosk-USB Specific Crash - Can it be Replicated?:
The crash message is the "Emulationstation has crashed" blue screen. Suggests I reset rom permissions / check gpu split. I can post a picture later if you're not sure what I'm referring to from memory.
Aha, I know that message. It happens when ES crashes, but the actual crash might behind that message (in the terminal screen). Is there such message ?
EDIT:
Is there another character I can use to bring the collections to the top besides a space? I can test that when I'm back from work.
Try using
_
or!
. -
@mitu How would I get underneath the message? I've tried Ctrl+C but it seems that the keyboard doesn't work. I know there is an exit or back option, but there's no way for me to select it because it seems like all the inputs don't work at that point. Can I SSH in and somehow see it there?
exit
? -
@hooperre Maybe
Esc
orEnter
? -
@mitu I’m fairly certain I’ve tried both as I have a keyboard with it currently. No other way to see that error?
-
@mitu Confirmed. Basically freezes the system. No inputs work.
-
@hooperre Try to login to the system via SSG and run
killall dialog
when the message is on-screen. I forgot about this option. -
@mitu I basically just see the error screen above a regular terminal as if you exited EmulationStation after using the
killall dialog
command, but I don't see the actual error message anywhere.Only have collections starting with letters.
es_log.txt
here: https://pastebin.com/hszxWE2V. -
OK, time to bring up the big guns. If you have SSH access to the Pi, you can try to get a backtrace from the crash:
- Install
gdb
with
apt -y install gdb
- Replace the
autostart.sh
command to start ES with
gdb -batch -ex "run" -ex "bt" -ex "quit" /opt/retropie/supplementary/emulationstation/emulationstation 2>&1 > /tmp/es.log
So, instead of the normal
autostart.sh
which contains justemulationstation #auto
you should have
# emulationstation #auto gdb -batch -ex "run" -ex "bt" -ex "quit" /opt/retropie/supplementary/emulationstation/emulationstation 2>&1 > /tmp/es.log
You can find the
autostart.sh
file in/opt/retropie/configs/all/autostart.sh
, do a backup of it just in case.Reboot, get the crash message, but don't stop the Pi right away, just SSH in and get the
/tmp/es.log
file which should contain the crash place in Emulationstation. - Install
-
My
autostart.sh
appears as follows:emulationstation #auto gdb -batch -ex "run" -ex "bt" -ex "quit" /opt/retropie/supplementary/emulationstation/emulationstation 2>&1 > /tmp/es.log
I did have to change file permissions to777
in the created directories above to view them. Am I missing asudo
command anywhere? (sudo gdb
doesn't seem to make it work.)sudo nano /tmp/es.log
shows nothing.Am dumb was missing the comment part of
# emulationstation #auto
on line 1.es.log
: https://pastebin.com/BpXY8K3A -
@hooperre Well, that's the error right there :|. Let's see how we can solve that.
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.