Recalbox 8.0: (ERROR) : [SDL2] Fatal error initializing SDL2
-
Thanks for looking into this, @davidb2111
recalbox-boot.conf is in /boot in my image, not in /recalbox – that's correct, right?
Here it is:
### /boot/recalbox-boot.conf ### This file holds configuration related to hardware/peripheral detection # The `sharedevice` variable indicates where to find the SHARE folder/partition. # It can have the following values: # INTERNAL => the partition immediately following the partition mounted as /boot, on the same disk (e.g. `/dev/mmcblk0p2`) # (this is the default) # RAM => a temporary in-memory file system (tmpfs) # (use at your own risks, specially on boards with low memory!) # ANYEXTERNAL => any storage device other than the one the system booted on # (use this when you have several USB keys/drives, but plug only one at a time) # DEV [FSUUID] => the storage device with the [FSUUID] unique identifier # (use this if you plug multiple storage devices together but want a specific one to hold SHARE) # NETWORK => a network-mounted filesystem # (see complementary `sharenetwork_*` directives below) ;sharedevice=INTERNAL # Network mount directives define how network filesystem should be mounted. # You can define as many as you like, they will be executed in order. # You can even mix basic and avanced commands. # # 1. Basic use (NFS or SMB): # # sharenetwork_<nfs|smb>=<SHARE|ROMS|SAVES|BIOS|MUSIC>@<remote host>:<remote directory>[:<mount options>] # # Examples: # sharenetwork_nfs=SHARE@192.168.0.1:/Documents/recalbox # <or> # sharenetwork_nfs=ROMS@192.168.0.1:/Documents/recalbox/roms # sharenetwork_nfs=SAVES@192.168.0.1:/Documents/recalbox/saves # <or> # sharenetwork_smb=SHARE@192.168.0.1:Documents/recalbox:guest # # 2. Advanced use (custom commands, usually `mount`): # # sharenetwork_cmd=<command to run> # # Examples: # sharenetwork_cmd=mount -o port=2049,nolock,proto=tcp 192.168.0.1:/Documents/recalbox /recalbox/share # <or> # sharenetwork_cmd=mount -o port=2049,nolock,proto=tcp 192.168.0.1:/Documents/recalbox/roms /recalbox/share/roms # sharenetwork_cmd=mount -o port=2049,nolock,proto=tcp 192.168.0.1:/Documents/recalbox/saves /recalbox/share/saves # <or> # sharenetwork_cmd=mount.cifs //192.168.0.1/recalbox /recalbox/share -o guest # ;sharenetwork_smb=SHARE@192.168.0.1:Documents/recalbox:guest # The `case` variable enables presets for the given case (if supported by Recalbox). # It will enable some out-of-the-box configuration for fixed peripherals like screens, pads, etc... # Supported values: # GPiCaseV1:1 => RetroFlag GpiCase (version 1) # Default: <unset> case=PiBoy:1 # The `sharewait` variable defines the maximum time to wait for the SHARE partition to be mounted. # This is usually used with USB drives (since they are infamously slow) or network mounts. # Recalbox will regularly check if the device/host is ready to be mounted, up to <sharewait> seconds. # Note: in `NETWORK` mode, Recalbox will wait up to `sharewait` seconds for *each* `sharenetwork_*` directive. # Default: 7 for `DEV [FSUUID]` and `ANYEXTERNAL`, 20 for `NETWORK` ;sharewait=30
case=PiBoy:1
... that could be the problem?
-
@fh1105 said in Recalbox 8.0: (ERROR) : [SDL2] Fatal error initializing SDL2:
Thanks for looking into this, @davidb2111
recalbox-boot.conf is in /boot in my image, not in /recalbox – that's correct, right?
Here it is:
### /boot/recalbox-boot.conf ### This file holds configuration related to hardware/peripheral detection # The `sharedevice` variable indicates where to find the SHARE folder/partition. # It can have the following values: # INTERNAL => the partition immediately following the partition mounted as /boot, on the same disk (e.g. `/dev/mmcblk0p2`) # (this is the default) # RAM => a temporary in-memory file system (tmpfs) # (use at your own risks, specially on boards with low memory!) # ANYEXTERNAL => any storage device other than the one the system booted on # (use this when you have several USB keys/drives, but plug only one at a time) # DEV [FSUUID] => the storage device with the [FSUUID] unique identifier # (use this if you plug multiple storage devices together but want a specific one to hold SHARE) # NETWORK => a network-mounted filesystem # (see complementary `sharenetwork_*` directives below) ;sharedevice=INTERNAL # Network mount directives define how network filesystem should be mounted. # You can define as many as you like, they will be executed in order. # You can even mix basic and avanced commands. # # 1. Basic use (NFS or SMB): # # sharenetwork_<nfs|smb>=<SHARE|ROMS|SAVES|BIOS|MUSIC>@<remote host>:<remote directory>[:<mount options>] # # Examples: # sharenetwork_nfs=SHARE@192.168.0.1:/Documents/recalbox # <or> # sharenetwork_nfs=ROMS@192.168.0.1:/Documents/recalbox/roms # sharenetwork_nfs=SAVES@192.168.0.1:/Documents/recalbox/saves # <or> # sharenetwork_smb=SHARE@192.168.0.1:Documents/recalbox:guest # # 2. Advanced use (custom commands, usually `mount`): # # sharenetwork_cmd=<command to run> # # Examples: # sharenetwork_cmd=mount -o port=2049,nolock,proto=tcp 192.168.0.1:/Documents/recalbox /recalbox/share # <or> # sharenetwork_cmd=mount -o port=2049,nolock,proto=tcp 192.168.0.1:/Documents/recalbox/roms /recalbox/share/roms # sharenetwork_cmd=mount -o port=2049,nolock,proto=tcp 192.168.0.1:/Documents/recalbox/saves /recalbox/share/saves # <or> # sharenetwork_cmd=mount.cifs //192.168.0.1/recalbox /recalbox/share -o guest # ;sharenetwork_smb=SHARE@192.168.0.1:Documents/recalbox:guest # The `case` variable enables presets for the given case (if supported by Recalbox). # It will enable some out-of-the-box configuration for fixed peripherals like screens, pads, etc... # Supported values: # GPiCaseV1:1 => RetroFlag GpiCase (version 1) # Default: <unset> case=PiBoy:1 # The `sharewait` variable defines the maximum time to wait for the SHARE partition to be mounted. # This is usually used with USB drives (since they are infamously slow) or network mounts. # Recalbox will regularly check if the device/host is ready to be mounted, up to <sharewait> seconds. # Note: in `NETWORK` mode, Recalbox will wait up to `sharewait` seconds for *each* `sharenetwork_*` directive. # Default: 7 for `DEV [FSUUID]` and `ANYEXTERNAL`, 20 for `NETWORK` ;sharewait=30
case=PiBoy:1
... that could be the problem?
Yes, that's the problem... There is a system recovery that starts after 3 unsuccessful system start. To trigger it you just have to power up the recalbox, wait 15 seconds, power it off (remove the plug) 3 times.
After that, it will enter recovery, delete PiBoy things and so on and it should boot. -
I changed that to
# case=PiBoy:1
but to no success, unfortunately.
/recalbox/var/log/messages
shows:
Dec 10 21:35:44 RECALBOX user.info kernel: [ 156.254230] XPi Gamecon CRC Error: 0000 15143 Dec 10 21:35:44 RECALBOX user.info kernel: [ 156.264208] XPi Gamecon CRC Error: 0000 15144 Dec 10 21:35:45 RECALBOX user.info kernel: [ 156.274228] XPi Gamecon CRC Error: 0000 15145 Dec 10 21:35:45 RECALBOX user.info kernel: [ 156.284203] XPi Gamecon CRC Error: 0000 15146 Dec 10 21:35:45 RECALBOX user.info kernel: [ 156.294195] XPi Gamecon CRC Error: 0000 15147 Dec 10 21:35:45 RECALBOX user.info kernel: [ 156.304211] XPi Gamecon CRC Error: 0000 15148 Dec 10 21:35:45 RECALBOX user.info kernel: [ 156.314212] XPi Gamecon CRC Error: 0000 15149 Dec 10 21:35:45 RECALBOX user.info kernel: [ 156.324202] XPi Gamecon CRC Error: 0000 15150 Dec 10 21:35:45 RECALBOX user.info kernel: [ 156.334194] XPi Gamecon CRC Error: 0000 15151
(The buttons of my arcade cabinet are connected to the RPI's GPIO pins:
)
Thanks for your help!
-
@davidb2111 Oh wow, I'll try that!
-
I think it didn't enter recovery, even though I did the power-off-power-on-15-second loop at least 4 times ... can I trigger it manually? Also, it doesn't seem to come back to the network (it's LAN connected, but I can't reach the 'recalbox' host from the network anymore).
The screen shows 'Experimental Pi' twice while booting, then remains black.
I do have a keyboard connected, which I could use to press something to interrupt the failing boot sequence?
Thanks! @davidb2111
-
@fh1105 said in Recalbox 8.0: (ERROR) : [SDL2] Fatal error initializing SDL2:
I think it didn't enter recovery, even though I did the power-off-power-on-15-second loop at least 4 times ... can I trigger it manually? Also, it doesn't seem to come back to the network (it's LAN connected, but I can't reach the 'recalbox' host from the network anymore).
The screen shows 'Experimental Pi' twice while booting, then remains black.
I do have a keyboard connected, which I could use to press something to interrupt the failing boot sequence?
Thanks! @davidb2111
Ok, so you have things connected to GPIO. That may be the reason.
Could you connect through ssh and execute:/usr/bin/piboy-tester
David.
-
@fh1105
And to force boot without detecting case, you may:- set
case=none:1
in/boot/recalbox-boot.conf
- execute
rm -rf /overlay/upper/*
and reboot
- set
-
@fh1105
And finally, I've modified the code that detects the piboy. Could you please test it on your setup ?Simply put piboy-tester in /tmp of your recalbox and run
/tmp/piboy-tester
and give me the output.Thanks
-
This post is deleted! -
@davidb2111 said in Recalbox 8.0: (ERROR) : [SDL2] Fatal error initializing SDL2:
/tmp/piboy-tester
Yes, this is it:
try 0, CRC error try 1, CRC error try 2, CRC error try 3, CRC error try 4, CRC error try 5, CRC error try 6, CRC error try 7, CRC error try 8, CRC error try 9, CRC error piboy not found
-
@davidb2111 said in Recalbox 8.0: (ERROR) : [SDL2] Fatal error initializing SDL2:
@fh1105
And to force boot without detecting case, you may:- set
case=none:1
in/boot/recalbox-boot.conf
- execute
rm -rf /overlay/upper/*
and reboot
I tried this, but still the screen remains black.
- set
-
Before the modified tester, the output was:
CRC error 198
-
Hi @fh1105
Great news, that helps me a lot. I will include a fixed piboy-tester that will not wrongly detect a PiBoy when something is connected to GPIO.
At the moment, you can cleanup overlay and set
case=none:1
to disable autodection.
The fix will be included in the next release a few days (weeks)David
-
Hum, what type of screen do you have ?
Could you please executecat /sys/class/drm/card*/modes
and put result here ? -
@davidb2111 said in Recalbox 8.0: (ERROR) : [SDL2] Fatal error initializing SDL2:
cat /sys/class/drm/card*/modes
It's a HDMI-connected HD screen – normal 'office type'.
cat /sys/class/drm/card*/modes
returns nothing at all.
-
But here's me exploring that directory:
# pwd /sys/class/drm # ls card0 card0-HDMI-A-1 renderD128 version # cd card0-HDMI-A-1 # ls device edid modes status uevent dpms enabled power subsystem # cd modes -bash: cd: modes: Not a directory # ls device edid modes status uevent dpms enabled power subsystem # cat modes # cd .. # ls card0 card0-HDMI-A-1 renderD128 version # cd card0 # ls card0-HDMI-A-1 device subsystem dev power uevent # (modes in card0-HDMI1-A-1 is empty)
-
By the way: amazing support, @davidb2111! Thank you very much!!
-
Hi @fh1105
Seems edid does not report modes. Could you force the mode within
/boot/recalbox-user-config.txt
.hdmi_group=1 hdmi_mode=X
where X should be:
- 16 for 1080p
- 4 for 720p
- 1 for VGA mode (640x480, as a fallback)
Once started, if still no display, try adding this setting:
hdmi_ignore_edid=0xa5000080
Hope this help.
-
@fh1105
Also, do you know the resolution of your TV? -
Hello!
Just a brief update, as I solved it by simply removing everything from my GPIO ports, and wiring my arcade buttons to a
Zero Delay Arcade USB Encoder
– which then connects to the RPi's USB ports.
All good now! Thank you, and keep it up!
Fabian -