Odroid XU4 SDL Problem Emulationstation
-
Even when running with
--debug
? There should be more information printed when debug is enabled.There might have been another line or two. I'm not in front of the system right now. Yes, with --debug. My point was that no errors were displayed.
I added some detection here, but it may not be enough (?) or you're using an earlier commit.
Probably hadn't pulled the latest commit then. This was 2 days ago.
I created an image file from the SD card, then tried to install Lakka just to test that out. That one doesn't boot at all, but hey, I tried. I haven't taken the time to restore the RetroPie Disk image just yet.
-
@aaronouthier
Re-wrote the disk-image. Originally, when I cat'd the file mentioned, it showed the exact same contents listed in post 19 in this thread.I then checked for package updates. After updating them, I again ran 'emulationstation --debug'. There was no output, but it still crashed. The es_log.txt is now empty.
I'm now recompiling everything. Also, your new commit to retropie_setup.sh still shows arm7l, with no mention of Odroid XU or XU4, unless I run your workaround.
-
So I did some more digging. Realized that /usr/bin/emulationstation is a shell script. Found the actual executable, and ran it:
Feb 26 19:43:02 lvl2: EmulationStation - v2.11.2rp, built Feb 20 2025 - 11:49:42 Feb 26 19:43:02 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamenames.xml"... Feb 26 19:43:03 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamebioses.xml"... Feb 26 19:43:03 lvl2: Parsing XML file "/opt/retropie/supplementary/emulationstation/resources/mamedevices.xml"... Feb 26 19:43:03 lvl2: Creating window... Segmentation fault (core dumped)
Where are core dumps stored? I'm willing to send it to you for investigation.
-
@aaronouthier said in Odroid XU4 SDL Problem Emulationstation:
Where are core dumps stored? I'm willing to send it to you for investigation.
Check the folder where you ran the command (
$HOME
?) for acore
file or verify incat /proc/sys/kernel/core_pattern
what should be the core file name. -
@mitu
It's amazing what a Google search can turn up, isn't it?
It was in /var/crashes/I have removed dep and core packages, and am compiling again.. Strangely, that was finding some missing packages while building deps.
I am just noticing the following when compiling emulationstation:
= = = = = = = = = = = = = = = = = = = = = Building 'emulationstation' : EmulationStation - Frontend used by RetroPie for launching emulators = = = = = = = = = = = = = = = = = = = = = Removing additional swap CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. CMake Deprecation Warning at CMakeLists.txt:20 (cmake_policy): The OLD behavior for policy CMP0072 will be removed from a future version of CMake. The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD.
Probably of no consequence, but thought I'd mention it. Compilation is proceeding despite this.
I'll be back shortly.
-
-
@aaronouthier That's more than a crash dump - can you upload just the core file ? You can also analyze it by loading it into
gdb
and runningbacktrace
to see where it crashes. -
@mitu That was the only file I found. There are no files in current directory, only 2 folders. EmulationStation was run from the folder in question (my home folder).
The full path and filename was originally:
/var/crash/_opt_retropie_supplementary_emulationstation_emulationstation.1000.crashI shortened it.
I believe you are looking for the base64 encoded part at the bottom of the file? I will see what I can find out.
-
@mitu said in Odroid XU4 SDL Problem Emulationstation:
verify in cat /proc/sys/kernel/core_pattern what should be the core file name
That command outputs
|/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E
gdb run with --core arg pointing to correct core dump file:
Reading symbols from /opt/retropie/supplementary/emulationstation/emulationstation... (No debugging symbols found in /opt/retropie/supplementary/emulationstation/emulationstation) warning: core file may not match specified executable file. [New LWP 1114] [New LWP 1115] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". Core was generated by `/opt/retropie/supplementary/emulationstation/emulationstation'. Program terminated with signal SIGSEGV, Segmentation fault. #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47 47 ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No such file or directory. [Current thread is 1 (Thread 0xb6cea020 (LWP 1114))] (gdb) backtrace #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47 #1 0xb544d292 in __pthread_kill_implementation (threadid=3066994720, signo=11, no_tid=<optimized out>) at pthread_kill.c:43 #2 0xb541c840 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26 #3 0xb6e21be4 in ?? () from /lib/arm-linux-gnueabihf/libSDL2-2.0.so.0 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
-
Is there a way to communicate privately?
I am inclined to let you in via ssh access if you think it would help and you have the time. Might be a bit more efficient than "playing telephone" - telling me what to type and then posting the output. -
@aaronouthier That's not going to happen, I'm not providing 'private' support. I also don't own an Odroid SBC so if the issue is something that's specific to it I won't be able to test any solutions.
-
@aaronouthier said in Odroid XU4 SDL Problem Emulationstation:
gdb run with --core arg pointing to correct core dump file:
Hm, unfortunately the there's no further indication of why it SDL2 crashes - what part of the ES code was calling SDL and what call was made.
My advice right now would be to use the 'native' SDL version of the OS and try compiling EmulationStation with it. Modify
/opt/retropie/configs/all/retropie.cfg
and make sure it has a line withown_sdl2 = "0"
.Re-install the
libsdl2-dev
andlibsdl2-2.0-0
packages with their version from the Ubuntu repositories and then re-compile EmulationStation. Make sure your user is in theinput
,video
andrender
groups and try to start EmulationStation. If that doesn't work, then use a minimal desktop environment to run the front-end. -
@mitu said in Odroid XU4 SDL Problem Emulationstation:
Re-install the libsdl2-dev and libsdl2-2.0-0 packages with their version from the Ubuntu repositories and then re-compile EmulationStation. Make sure your user is in the input, video and render groups and try to start EmulationStation. If that doesn't work, then use a minimal desktop environment to run the front-end.
User is only in the input and video groups. No render listed with the groups command.
Just added that group and restarted the system. ES still crashes. I will troubleshoot again in the morning. G'night.
-
Would compiling ES with debugging symbols embedded help? If so, how would I make sure those are enabled?
I am free now, so going to try your most recent suggestion.
-
There is no retropie.cfg file in that location. I opened RetroArch.cfg, but couldn't find the string in question.
I have removed all Retropie packages, and am recompiling now to see if I missed something.
-
@aaronouthier said in Odroid XU4 SDL Problem Emulationstation:
There is no retropie.cfg file in that location.
You can create the file and add
own_sdl2=0
in it, so RetroPie-Setup will use the distro's SDL packages instead of trying to build its own. -
@mitu Well, I shelved the project for a good 15 days. Back at it again today. Tried your latest idea/suggestion, and...
It worked!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Now facing a ES Welcome screen!!!
Halleluiah!!!
Thanks for all of your help and support in this! Couldn't have done it without you.
(I kind of wish I had tried it 2 weeks ago ;)
-
@mitu
At first, I was excited! Until I tried to actually play a game...RetroArch started core dumping upon launch. I never did get it to work.
I found and extracted the core dump, and ran a backtrace:
Reading symbols from /opt/retropie/emulators/retroarch/bin/retroarch... (No debugging symbols found in /opt/retropie/emulators/retroarch/bin/retroarch) [New LWP 1771] [New LWP 1769] [New LWP 1770] [New LWP 1773] [New LWP 1775] [New LWP 1778] [New LWP 1776] [New LWP 1774] [New LWP 1781] [New LWP 1779] [New LWP 1777] [New LWP 1783] [New LWP 1780] [New LWP 1782] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". Core was generated by `/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0xac148b90 in ?? () --Type <RET> for more, q to quit, c to continue without paging-- [Current thread is 1 (Thread 0xacabb9c0 (LWP 1771))] (gdb) backtrace #0 0xac148b90 in () #1 0xb3e4d77a in XNoOp () at /lib/arm-linux-gnueabihf/libX11.so.6 #2 0xb5de4f20 in () at /lib/arm-linux-gnueabihf/libGLESv2.so
Output of Runlog:
Parameters: Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-vecx/vecx_libretro.so --config /opt/retropie/configs/vectrex/retroarch.cfg "/home/retro/RetroPie/roms/vectrex/HyperChase - Auto Race (World).zip" --appendconfig /dev/shm/retroarch.cfg /opt/retropie/supplementary/runcommand/runcommand.sh: line 1329: 871 Segmentation fault (core dumped) /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-vecx/vecx_libretro.so --config /opt/retropie/configs/vectrex/retroarch.cfg "/home/retro/RetroPie/roms/vectrex/HyperChase - Auto Race (World).zip" --appendconfig /dev/shm/retroarch.cfg
-
@aaronouthier Are you running from a desktop (X11) session ? The backtrace is not very useful, since the crash seems to happen outside of RetroArch, in the X11 libraries. I'm afraid that without a similar device (which I don't have) I can't be of any more help.
-
@mitu Not running from a desktop session. I don't even know if/how I can. There doesn't appear to be a Window Manager installed. I don't know if enough pieces are available to run a full X11 environment.
I did check the libraries listed, and both are symlinks, as follows:
lrwxrwxrwx 1 root root 15 Oct 2 2023 /lib/arm-linux-gnueabihf/libX11.so.6 -> libX11.so.6.4.0
/lib/arm-linux-gnueabihf/libGLESv2.so -> /usr/lib/arm-linux-gnueabihf/mali-egl/libmali.so
The 2nd of those seems a bit bizarre? That shared Library points to a library with a different name. Is that expected/normal?
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.