RetroELEC for the ODROID-XU4: Emulation Station, RetroArch and Kodi In One Convenient Image

I've been creating Lakka and RetroPie style builds of OpenELEC/LibreELEC for the past few years. Recently, I purchased an ODROID-XU4 for my new bartop arcade system. This appliance style "JeOS" Linux distribution is perfect for running emulators, as it boots lightning fast and uses a minimum of resources.

This image boots up directly into Emulationstation or Kodi/RetroArch. The emulators are integrated; simply put ROMs in the /storage/roms directory via SMB. Emulators commonly auto-detect controllers, however, Emulationstation must be configured manually, except DS4 which is pre-configured. A keyboard might come in handy for initial setup.


  • Based on LibreELEC
  • Compiled from source with the following CFLAGS: -O2 -march=armv7ve -mtune=cortex-a15.cortex-a7 mcpu=cortex-a15.cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -flto
  • Built for GBM KMS/DRM (no Xserver and no fbdev)
  • Latest Linux 5.0.3 kernel from @memeka
  • F2FS/BTRFS/XFS support
  • ODROID WiFi/Bluetooth modules work “out of the box”
  • Emulationstation (RetroPie fork) is the default frontend that launches the emulators; the default can be changed in /storage/.config/frontend.conf and RetroArch can also be launched through its menus
  • RetroArch (git master) with recording capabilities
  • Libretro cores: desmume, dosbox-svn, fbalpha, mame2003-plus, mame2016, mgba, mupen64plus, pcsx_rearmed, ppsspp, puae, quicknes, reicast, scummvm, snes9x, snes9x2010, vice_x64, yabasanshiro
  • Standalone emulators: PPSSPP, Dosbox-SDL2, amiberry
  • Pulseaudio/BlueZ set up to accept A2DP (bluetooth audio) so you can stream music from your phone or laptop while gaming, simultaneously
  • big.LITTLE cgroups (emulators are run exclusively on the big cores)
  • htop enhanced with big.LITTLE support
  • USB IRQs assigned to big cores
  • Utilities: scraper tcpdump rsync unrar p7zip cgroup-tools sdl-jstest mediainfo strace screen omxplayer
  • Services: Docker, Transmission, SABnzbd, Plex (automatically downloads/updates and installs through the systemd unit), ttyd (shell access from a browser)

You can start the services that you want via SSH with the following command structure:

$ sudo systemctl enable/start [docker | transmission | sabnzbd | plex | ttyd]
You can download RetroELEC from If you want Kodi to be included, you can find those images in a separate subfolder. The source code is available on Github at For comments, questions, and suggestions, please visit the original ODROID forum thread at

Be the first to comment

Leave a Reply