Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Recalbox 8.0: (ERROR) : [SDL2] Fatal error initializing SDL2

    Recalbox General
    recalbox 8.0 [sdl2] fatal initializing sdl2
    4
    26
    3784
    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.
    • davidb2111
      davidb2111 Staff @fh1105 last edited by

      Hello @fh1105

      Could you put the file recalbox-boot.conf from RECALBOX partition please (specifically, the case= attribute of that file)

      David.

      fh1105 1 Reply Last reply Reply Quote 0
      • Wizzard
        Wizzard @fh1105 last edited by

        @fh1105 I guess you are using composite out. Please, check this solution, it worked for me
        https://gitlab.com/recalbox/recalbox/-/issues/2059#note_752813367

        fh1105 1 Reply Last reply Reply Quote 0
        • fh1105
          fh1105 @Wizzard last edited by

          @wizzard said in Recalbox 8.0: (ERROR) : [SDL2] Fatal error initializing SDL2:

          https://gitlab.com/recalbox/recalbox/-/issues/2059#note_752813367

          Thanks for the advice! I am, however, using HDMI. I tried the two config file alterations provided in that tutorial, but that would cause the RPi to be not even connecting to the network after rebooting (and a black screen, oddly). I redownloaded the image from the Recalbox website, but the original problem persists. Strange!

          1 Reply Last reply Reply Quote 0
          • fh1105
            fh1105 @davidb2111 last edited by

            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?

            davidb2111 fh1105 2 Replies Last reply Reply Quote 0
            • davidb2111
              davidb2111 Staff @fh1105 last edited by

              @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.

              fh1105 2 Replies Last reply Reply Quote 0
              • fh1105
                fh1105 @fh1105 last edited by

                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:

                https://raw.githubusercontent.com/DigitalLumberjack/mk_arcade_joystick_rpi/master/wiki/images/mk_joystick_arcade_GPIOsb+.png

                )

                Thanks for your help!

                1 Reply Last reply Reply Quote 0
                • fh1105
                  fh1105 @davidb2111 last edited by

                  @davidb2111 Oh wow, I'll try that!

                  1 Reply Last reply Reply Quote 0
                  • fh1105
                    fh1105 @davidb2111 last edited by

                    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

                    davidb2111 3 Replies Last reply Reply Quote 0
                    • davidb2111
                      davidb2111 Staff @fh1105 last edited by

                      @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 1 Reply Last reply Reply Quote 0
                      • davidb2111
                        davidb2111 Staff @fh1105 last edited by

                        @fh1105
                        And to force boot without detecting case, you may:

                        1. set case=none:1 in /boot/recalbox-boot.conf
                        2. execute rm -rf /overlay/upper/*

                        and reboot

                        fh1105 1 Reply Last reply Reply Quote 0
                        • davidb2111
                          davidb2111 Staff @fh1105 last edited by

                          @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

                          fh1105 1 Reply Last reply Reply Quote 0
                          • fh1105
                            fh1105 @davidb2111 last edited by

                            This post is deleted!
                            1 Reply Last reply Reply Quote 0
                            • fh1105
                              fh1105 @davidb2111 last edited by

                              @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
                              
                              1 Reply Last reply Reply Quote 0
                              • fh1105
                                fh1105 @davidb2111 last edited by

                                @davidb2111 said in Recalbox 8.0: (ERROR) : [SDL2] Fatal error initializing SDL2:

                                @fh1105
                                And to force boot without detecting case, you may:

                                1. set case=none:1 in /boot/recalbox-boot.conf
                                2. execute rm -rf /overlay/upper/*

                                and reboot

                                I tried this, but still the screen remains black.

                                fh1105 davidb2111 2 Replies Last reply Reply Quote 0
                                • fh1105
                                  fh1105 @fh1105 last edited by

                                  Before the modified tester, the output was:

                                  CRC error
                                  198
                                  
                                  davidb2111 1 Reply Last reply Reply Quote 0
                                  • davidb2111
                                    davidb2111 Staff @fh1105 last edited by

                                    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

                                    1 Reply Last reply Reply Quote 0
                                    • davidb2111
                                      davidb2111 Staff @fh1105 last edited by

                                      @fh1105

                                      Hum, what type of screen do you have ?
                                      Could you please execute cat /sys/class/drm/card*/modes and put result here ?

                                      fh1105 2 Replies Last reply Reply Quote 0
                                      • fh1105
                                        fh1105 @davidb2111 last edited by

                                        @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.

                                        ba74fe43-45e1-4356-9900-eef841019ed4-image.png

                                        fh1105 1 Reply Last reply Reply Quote 0
                                        • fh1105
                                          fh1105 @fh1105 last edited by

                                          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)
                                          
                                          davidb2111 1 Reply Last reply Reply Quote 0
                                          • fh1105
                                            fh1105 @davidb2111 last edited by

                                            By the way: amazing support, @davidb2111! Thank you very much!!

                                            davidb2111 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Want to support us ?

                                            74
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com