RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Retropie 4.x on Odroid C2

    Scheduled Pinned Locked Moved Ideas and Development
    odroidbuild
    92 Posts 15 Posters 49.1k Views
    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.
    • P
      phoenix73
      last edited by

      Hi all

      I'm trying to build Retropie on Odroid C2, following Odroid C1 guidelines (https://github.com/retropie/retropie-setup/wiki/Odroid).

      I started from Odroid C2 Ubuntu 16.04 minimal

      I updated scriptmodules/system.sh

      ....

              ODROIDC)
                  __platform="odroid-c1"
                  ;;
              ODROID-C2)
                  __platform="odroid-c2"
                  ;;
      

      ....

      function platform_odroid-c1() {
      __default_cflags="-O3 -mcpu=cortex-a5 -mfpu=neon-vfpv4 -mfloat-abi=hard -funsafe-math-optimizations"
      __default_asflags=""
      __default_makeflags="-j2"
      __platform_flags="arm armv7 neon mali"
      __qemu_cpu=cortex-a9
      __has_binaries=0
      }
      function platform_odroid-c2() {
      __default_cflags="-O3 -march=armv8-a+crc -mtune=cortex-a53 -funsafe-math-optimizations"
      __default_asflags=""
      __default_makeflags="-j2"

      __platform_flags="arm armv8 neon mali"

      __platform_flags="armv8 neon mali"
      __qemu_cpu=cortex-a9
      __has_binaries=0
      

      }

      Build goes a bit far but by the end it complains about missing armh deb packages, which is normal as arm64 packages have been built :

      tmp/build/sdl2/libsdl2-2.0-0_2.0.4+4mali_arm64.deb tmp/build/sdl2/libsdl2-dbg_2.0.4+4mali_arm64.deb tmp/build/sdl2/libsdl2-dev_2.0.4+4mali_arm64.deb

      Help/feedbacks welcomed

      1 Reply Last reply Reply Quote 0
      • gizmo98G
        gizmo98 Global Moderator
        last edited by

        Remove mali because if you add this flag RetroPie-Setup tries to build a sdl2 mali armhf package instead of a arm64 package.

        1 Reply Last reply Reply Quote 0
        • P
          phoenix73
          last edited by phoenix73

          Thanks.

          Just updated my fork (https://github.com/hgomez/RetroPie-Setup/blob/master/scriptmodules/system.sh) and restarted build :)

          I'll do a PR if I succeed to have a working setup on Odroid C2

          1 Reply Last reply Reply Quote 0
          • P
            phoenix73
            last edited by

            new build complain about missing libsdl1.2-dev and libraspberrypi-dev ;/

            1 Reply Last reply Reply Quote 0
            • D
              detron
              last edited by

              thank you for your efforts to get RetroPie running on the Odroid C2 .

              I love Retropie, and I own a C2, and think the power it adds will be a great gaming system.

              P 2 Replies Last reply Reply Quote 0
              • P
                phoenix73 @detron
                last edited by

                @detron well I'm just trying to figure how to build it on C2, unsure if it will be easy or not.
                I posted also on Odroid Forum (http://forum.odroid.com/viewtopic.php?f=136&t=23889) to see if someone already tried to build it

                D 1 Reply Last reply Reply Quote 0
                • D
                  detron @phoenix73
                  last edited by

                  @phoenix73

                  I still appreciate knowing SOMEONE is trying. I do not have the right knowledge to try it myself.

                  1 Reply Last reply Reply Quote 0
                  • gizmo98G
                    gizmo98 Global Moderator
                    last edited by gizmo98

                    I expect odroid C2 runs a full X11 environment. I would start from scratch and run RetroPie-Setup with sudo __platform=generic-x11 ./retropie_setup.sh and look what happens. Or add x11 to your __platform_flags.

                    1 Reply Last reply Reply Quote 0
                    • P
                      phoenix73
                      last edited by

                      I'll have a look to this approach too :)

                      1 Reply Last reply Reply Quote 0
                      • P
                        phoenix73 @detron
                        last edited by

                        @detron libretro testing ppa (http://ppa.launchpad.net/libretro/testing/ubuntu/pool/) contains many packages for arm64, so it could be something to investigate too. I'll try to rebuild emulationstation deb on Odroid C2 too

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          detron @phoenix73
                          last edited by

                          @phoenix73

                          thank you. I am very comfortable with linux, but I do not have a good understanding of what truly goes into retroarch and emulationstation setup.

                          good luck, and if you get anywhere, please let me know.

                          thank you again

                          1 Reply Last reply Reply Quote 0
                          • roleoR
                            roleo
                            last edited by

                            Hi.
                            I'm trying to compile retropie using the system.sh proposed in the 1st post.
                            I started with emulationstation and I successfully compiled it.
                            Below my system:

                            • Odroid C2 rev 0.2
                            • Ubuntu standard image: ubuntu64-16.04lts-mate-odroid-c2-20161017

                            I followed the recommended procedure for ODROID C1 except for the last command:

                            sudo apt-get install -y git
                            git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
                            cd RetroPie-Setup
                            sudo __platform=odroid-c2 ./retropie_setup.sh
                            

                            I changed also the CMakeLists.txt with the correct libMali.so path.

                            #check if we're running on olinuxino
                            MESSAGE("Looking for libMali.so")
                            if(EXISTS "/usr/lib/aarch64-linux-gnu/libMali.so")
                                MESSAGE("libMali.so found")
                                set(GLSystem "OpenGL ES")
                            else()
                                MESSAGE("libMali.so not found")
                            endif()
                            

                            I stopped lightdm and when I run emulationstation I can see the correct graphic screen.

                            1 Reply Last reply Reply Quote 0
                            • roleoR
                              roleo
                              last edited by roleo

                              Hi.
                              Second step.
                              I successfully compile retroarch and lr-mame2003.
                              For retroarch I used the following build_retroarch() in retroarch.sh:

                              function build_retroarch() {
                                  local params=(--enable-sdl2)
                                  ! isPlatform "x11" && params+=(--disable-x11 --enable-opengles --disable-ffmpeg --disable-sdl --enable-sdl2 --disable-oss --disable-pulse --disable-al --disable-jack)
                                  isPlatform "rpi" && params+=(--enable-dispmanx)
                                  isPlatform "mali" && params+=(--enable-mali_fbdev)
                                  isPlatform "arm" && params+=(--enable-floathard)
                              #    isPlatform "neon" && params+=(--enable-neon)
                                  isPlatform "armv8" && params+=(--disable-wayland --disable-vg --disable-miniupnpc)
                                  ./configure --prefix="$md_inst" "${params[@]}"
                                  sed -i 's/HAVE_OSS_LIB = 1/HAVE_OSS_LIB = 0/g' config.mk
                                  sed -i 's/HAVE_VIDEOCORE = 1/HAVE_VIDEOCORE = 0/g' config.mk
                                  sed -i 's/OPENGLES_LIBS = -lGLESv2 -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm/OPENGLES_LIBS = -lGLESv2 -lEGL/g' config.mk
                                  make clean
                                  make
                                  md_ret_require="$md_build/retroarch"
                              }
                              

                              And I patched
                              libretro-common/include/glsym/glsym_es2.h
                              adding:

                              #include <stdint.h>
                              

                              in the first line.

                              For lr-mame2003 the compilation has no problems.

                              I tried a few games and it works!

                              roleo

                              BuZzB 1 Reply Last reply Reply Quote 0
                              • BuZzB
                                BuZz administrators @roleo
                                last edited by

                                @roleo you shouldn't need to modify config.mk afterwards - the raspberry pi link libs/video core stuff should only be added if the raspberry pi dev libs are present on the system - which shouldn't be the case.

                                are you building to run on X or framebuffer ?

                                To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                roleoR 1 Reply Last reply Reply Quote 0
                                • roleoR
                                  roleo @BuZz
                                  last edited by roleo

                                  @BuZz
                                  I know but if I don't modify the config.mk the compilation process doesn't complete.
                                  And I didn't find an option to disable videocore from configure.
                                  Similar for OSS: the compilation is ok but the linker search for -lossaudio.
                                  Maybe I missed a parameter?

                                  I'm building on framebuffer, X is stopped.

                                  1 Reply Last reply Reply Quote 0
                                  • BuZzB
                                    BuZz administrators
                                    last edited by

                                    I will look into getting an ODroid-c2 board.

                                    To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                    roleoR 1 Reply Last reply Reply Quote 0
                                    • roleoR
                                      roleo @BuZz
                                      last edited by

                                      @BuZz
                                      Is there a donation link?
                                      I think there are a lot of users interested.

                                      BuZzB 1 Reply Last reply Reply Quote 0
                                      • BuZzB
                                        BuZz administrators @roleo
                                        last edited by

                                        @roleo https://retropie.org.uk/donate/

                                        I have sent an email to Hardkernel to see if they would be interested in providing any development boards (as it would benefit them too). If not I will buy an ODroid-C2 to start with.

                                        To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                        1 Reply Last reply Reply Quote 0
                                        • roleoR
                                          roleo
                                          last edited by roleo

                                          Update.
                                          I compiled also lr-fbalpha adding the following section to makefile.libretro:

                                          else ifeq ($(platform), armv8)
                                              TARGET := $(TARGET_NAME)_libretro.so
                                              fpic := -fPIC
                                              SHARED := -shared -Wl,-no-undefined -Wl,--version-script=$(LIBRETRO_DIR)
                                              PLATFORM_DEFINES += -march=armv8-a+crc -mcpu=cortex-a53 -ffast-math
                                              HAVE_NEON = 1
                                              ENDIANNESS_DEFINES := -DLSB_FIRST
                                              CFLAGS += -DARM
                                          

                                          However I can not compile lr-imame4all.

                                          1 Reply Last reply Reply Quote 0
                                          • roleoR
                                            roleo
                                            last edited by

                                            Update.
                                            lr-fceumm ok without problems.
                                            lr-nestopia ok without problems.
                                            lr-snes9x2010 ok adding the following section to Makefile.libretro:

                                            # ARMv8
                                            else ifneq (,$(findstring armv8,$(platform)))
                                            	EXT    ?= so
                                            	TARGET := $(TARGET_NAME)_libretro.$(EXT)
                                            	SHARED := -shared -Wl,--no-undefined
                                            	fpic := -fPIC
                                            	CC   ?= gcc
                                            	CFLAGS += -march=armv8-a+crc -mcpu=cortex-a53 -DARM
                                            	ASFLAGS += -mcpu=cortex-a53
                                            

                                            lr-imame4all compiles but doesn't work.
                                            No chances with reicast: too asm parts...

                                            BuZzB 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.