


Special thanks to AreaScout and memeka for making this possible!
Features / Info:
- Running on Linux 5.4 (thank you memeka)
- Full SELinux support (enabled by default)
- Wireguard support
- Support for rootless containers using podman (much better than Docker)
- Virtualization support enabled in the kernel (untested though)
- Firefox 76 for Wayand (built with optimized flags for XU4)
- FFMPeg built statically with patches for Kodi and TVHeadend (thanks AreaScout / memeka)
- Kodi 19 for Wayland and GBM (standalone mode) with Netflix, Amazon Prime and Disney+ pre-configured (thank you AreaScout)
- Kodi 19 binary addons pre-installed (almost all of them: PVR, RetroPlayer with almost all libretro cores, joystick support, screensavers etc etc..)
- TVHeadend with NEON-accelerated CSA descramling and all codecs enabled
- Oscam-emu pre-conigured for TVHeadend
- RetroArch for Wayland and GBM (standalone mode) with the following cores (all built with optimizations for XU4):
Flycast - Sega Dreamcast
Genesis Plus GX - Sega Genesis
Mupen64plus NX - Nintendo 64
Parallel N64 - Nintendo 64
Picodrive - Sega Genesis/MegaCD/32X
Snes9x - Super Nintendo
Gambatte - Gameboy Color
mGBA - Gameboy Advance
Nestopia - Nintendo
PCSX Rearmed - Sony Playstation
PPSSPP - Sony PSP (slow, use standalone version instead)
Yabause - Sega Saturn
- PPSSPP for Wayland and GBM (standalone mode)
- DOSBox Staging for Wayland and GBM (standalone mode)
- ODroid XU3 analog headphone jack output working
- ODroid XU3 OTG-port is configured to be used as a regular USB 3.0 host
- Suspend / Resume working (thank you memeka)
- HDMI-CEC working
- Kernel headers and config pre-installed for easily compiling modules (dkms/akmods etc)
UPDATE - V2:
- (hopefully) Fixed the GDM segfault on first boot
- Fixed X11 armsoc configuration (unused though)
- Added picodrive libretro addon for Kodi (what's kodi without Sonic CD eh)
- Added the edid firmware blobs to the kernel (forgot this in the first release)
- Cleaned up the image a bit (SSH host keys will be generated on first boot)
Requirements:
- ODroid XU3, XU3-Lite or XU4 (MC1, HC1 and HC2 should work but untested)
- eMMC or sd-card of 16GB or larger
Download:
https://mega.nz/file/68twnYIa#rT_P8Nl5f ... 1lxvxfr_Do
Getting started: (please read all of it!)
Default user: odroid
Password for odroid: odroid
Password for root: odroid
- Unpack the downloaded archive and use your favourite tool to write the image to your eMMC/sd-card (Etcher/win32diskimager/dd).
- Insert it into your ODroid and power it up, you should be prompted by the Gnome Display Manager (logon screen).
You can now manage your ODroid using Cockpit by visiting: https://odroidIP:9090/ (login with the above credentials: odroid / odroid)
If your eMMC / sd-card is larger than 16GB, you can extend the root-filesystem by issuing:
Code: Select all
sudo extend_rootfs.sh
Code: Select all
sudo systemctl set-default multi-user.target
sudo reboot
- First disable Gnome Desktop:
Code: Select all
sudo systemctl disable gdm
Code: Select all
sudo systemctl enable kodi
sudo reboot
Optionally: If you're planning on using the desktop a lot you can try to enable swap on zram.
This will compress half the ram and enables it as swap-space.
You can change the amount of ram to compress in: /etc/zram.conf
However if you're going to be running Kodi or RetroArch in standalone mode you won't need it, as 2GB is more than enough.
Code: Select all
sudo systemctl enable zram-swap.service
sudo reboot
Kodi 19:
Kodi comes pre-configured for using Netflix, Amazon Prime and Disney+
Just open the addon, logon and play.
However if you would like to enable other addons (RetroPlayer, PVR clients, codecs, screensavers, whatever), you can do so by going to:
Settings -> Addons -> My Addons
If you would like to get very smooth playback it's advised to run Kodi in standalone mode (see Getting started:).
NOTE: In standalone mode: Always make sure DRM PRIME accelerated decoding is disabled or else playback will fail! (option not visible when running under wayland)
I've already disabled prime acceleration, but if you run Kodi in wayland first and switch to standalone mode afterwards, it will be re-enabled.
Settings -> Player -> Videos -> DRM PRIME Decoder
<-- DISABLE !!!In standalone mode you can make Kodi switch the display refresh rate to match the frame-rate of the video being played.
First whitelist the display modes supported by your TV:
Settings -> System -> Display -> White-list
Then enable the following option:
Settings -> Player -> Videos -> Adjust display refresh rate -> On start/stop
TVHeadend / Oscam:
If you would like to setup TVHeadend you can enable it by issuing:
Code: Select all
sudo systemctl enable --now tvheadend
You can access the TVHeadend webinterface by going to: http://odroidIP:9981/
For administrator access you can login with: admin / odroid
For regular access (e.g. Kodi addon) you can use: odroid / odroid
To configure Oscam visit its webinterface by going to: http://odroidIP:9191/
Oscam credentials: odroid / odroid
Known issues:
- Gnome Software will segfault when trying to open it, probably an arm 32bit bug, see: https://gitlab.gnome.org/GNOME/gnome-so ... ssues/1007
Hopefully they'll fix it soon, for the time being you can manually use the dnf command to install software or upgrade your system
- Kodi will show a black screen in standalone mode when PRIME acceleration is enabled, see Kodi section
- Kodi cannot run any hardware-accelerated RetroPlayer addons such as Mupen64, Parallel N64 or Flycast (not implemented yet)
- Gnome Display Manager will not start if a keyboard or screen is not present, so make sure to plug those in before booting, unless you want to run as a headless server (see Getting Started)
- Chromium segfaults all the time due to the mali driver not supporting wayland dmabuf and being outdated/broken (lets hope Panfrost will get better support for the ODroid platform in the future)
- 8BitDo SN30 Pro+ controller only works with Kodi when it's paired in Switch (Pro Controller) mode (not my fault)
Technical information:
- If you would like to update the dracut initramfs image and re-generate the uInitrd image, you can issue the following command:
Code: Select all
sudo gen-uinitrd
- Custom SElinux rules added for ODroid:
Code: Select all
fcontext -a -f a -t xserver_misc_device_t -r 's0' '/dev/mali.*'
Code: Select all
install_optional_items+=" /lib/firmware/s5p-mfc.fw /lib/firmware/s5p-mfc-v6.fw /lib/firmware/s5p-mfc-v6-v2.fw /lib/firmware/s5p-mfc-v7.fw /lib/firmware/s5p-mfc-v8.fw /etc/udev/rules.d/10-odroid.rules "
compress="xz"
10-odroid.rules
Code: Select all
KERNEL=="mali", SUBSYSTEM=="misc", MODE="0666", GROUP="video"
KERNEL=="mali0", SUBSYSTEM=="misc", MODE="0666", GROUP="video"
KERNEL=="ump", SUBSYSTEM=="ump", MODE="0777", GROUP="video"
KERNEL=="ttySAC0", SYMLINK+="ttyACM99"
KERNEL=="event*", SUBSYSTEM=="input", MODE="0777"
KERNEL=="CEC", MODE="0666", GROUP="video"
KERNEL=="cec*", MODE="0666", GROUP="video"
KERNEL=="cec0", MODE="0666", GROUP="video"
KERNEL=="amvideo", MODE="0666"
KERNEL=="amstream*", MODE="0666"
Code: Select all
ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", GROUP="video", MODE="0666"
Code: Select all
# Odroid configuration
pcm.!default {
type plug
slave {
pcm "hw:0,0"
format S16_LE
rate 48000
}
}
ctl.!default {
type hw
card 0
}
By default the ARM Mali wayland driver is enabled (required for Gnome desktop).
If you would like to switch to Hardkernel's Mali driver (only for Kodi, RetroArch, DOSBox or PPSSPP), you can do so by issuing:
Code: Select all
sudo rm -f /usr/lib/mali
sudo ln -s /usr/lib/mali-x11gbm /usr/lib/mali
sudo ldconfig
sudo reboot
Code: Select all
sudo rm -f /usr/lib/mali
sudo ln -s /usr/lib/mali-wayland /usr/lib/mali
sudo ldconfig
sudo reboot

Enjoy!