🛠 Monter un serveur multimédia Kodi 4K (HDMI + GPU Mali)
Objectives
Transform the ODROID-N2 into a living room media player: HDMI 2.0, hardware decoding of H.265 4K 60 fps, and DTS-HD/Dolby audio passthrough. Two paths: CoreELEC (a Kodi fork, first-class N2 support, Hardkernel sold a “CoreELEC Edition”) or Armbian + Kodi with the free Panfrost GPU driver (Mali-G52 MP6, upstream since kernel 5.14). The N2+ even served as the basis for Home Assistant Blue — the platform is proven for 24/7 operation.
Hardware
- ODROID-N2/N2+ (4 GB recommended for 4K menus), high-quality eMMC or SD card
- High-speed HDMI cable to the TV; Gigabit Ethernet to the NAS (no built-in WiFi)
- USB 3.0 drive or NAS for the media library (real USB 3.0 ≈ 340 MB/s, ports sharing a single hub)
- For CoreELEC: “ODROID-N2” image from coreelec.tv; for Armbian: desktop image +
apt install kodi
Full code
# --- Voie Armbian + Kodi (Panfrost) ---
sudo apt update && sudo apt install -y kodi
# Vérifier que Panfrost prend l'affichage (simpledrm doit être blacklisté,
# conflit connu Armbian : MODULES_BLACKLIST="simpledrm") :
ls -l /dev/dri/renderD* && glxinfo | grep -i 'opengl renderer' # -> Panfrost
# Son HDMI + pass-through : activer la carte AXG/AXG-SoundCard
pactl list short sinks | grep -i hdmi
# --- Lecture réseau : monter le NAS en NFS/SMB ---
sudo mkdir -p /mnt/nas && sudo mount -t nfs nas:/media /mnt/nas
# Dans Kodi : Ajouter une source -> /mnt/nas -> contenu vidéo -> TMDB.
# Test de débit attendu (>900 Mbit/s) avant de promettre du 4K sans à-coups :
iperf3 -c nas
# --- Voie CoreELEC (recommandée pour le salon) ---
# Écrire l'image sur SD, premier boot, puis CoreELEC > Mise à jour.
# Le décodage H.265 4K60 est matériel : vérifier pendant la lecture
# via les stats Kodi (touche « o ») : « hardware: YES ».
Expected verification
The TV displays 4K@60 (smooth Kodi menu, cv4-8 or equivalent in TV info). An 80 Mbit/s H.265 4K 60 fps file plays smoothly from the NAS via Gigabit Ethernet, with CPU usage under 40% thanks to hardware decoding. Multichannel audio outputs via bitstream to the soundbar (DTS/Dolby icon lit). Under Armbian with Panfrost, glxinfo mentions Mali-G52 (Panfrost) and not llvmpipe.
Common errors
- Historical GPU driver: before 2021 (kernel < 5.14), the Mali only had framebuffer support — no GL under X11/Wayland; use a recent image with Panfrost.
- simpledrm/Panfrost conflict under Armbian: if acceleration is missing, check the simpledrm module blacklist.
- Missing WiFi: trying to stream 4K wirelessly when the board only has Ethernet; a powerline adapter or cable is required.
- Poor HDR negotiation: old HDMI cables or misconfigured TV (enable the “Enhanced” HDMI port on the TV side).
- Shared USB 3.0: the 4 ports share a single root hub — saturating one degrades the others; prefer network NAS for high throughput.
- Power supply: 4K + power-hungry USB devices under 12 V/2 A can cause dropouts; >
Other tutorials for this board
Code examples for this board
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash