🛠 GPU Mali-450 (lima) et vidéo sur Le Potato : ce qui marche vraiment
Objectives
Leverage the Mali-450 MP5 GPU of the S905X under mainline Linux with the open-source lima driver (OpenGL ES 2 via Mesa), and understand what the board can actually display in video: HDMI 2.0 4K/60 for the interface, but no guaranteed hardware decoding.
Hardware
- The Potato AML-S905X-CC under Armbian/Debian mainline (kernel with lima, drivers/gpu/drm/lima)
- HDMI display (watch out for EDID/overscan quirks reported on the official hub)
- Multimedia alternative: LibreELEC AMLGX or CoreELEC, which include their own video stacks
Complete code
# 1) Verifier la presence du GPU mainline
ls /dev/dri/ 2>/dev/null
sudo dmesg | grep -i lima # « lima 1000000.gpu » attendu
# 2) Installer la pile Mesa/lima et tester
sudo apt install mesa-utils-extra libegl1 libgles2
glmark2-es2 # benchmark OpenGL ES 2
# 3) Lecture video : planifier un decodage LOGICIEL sous mainline
ffmpeg -hide_banner -hwaccels # pas d'acceleration V4L2 Meson attendue
mpv --vo=gpu --gpu-context=drm --hwdec=no video.mp4
# 4) Pour du 4K fluide : passer par LibreELEC AMLGX ou CoreELEC
# (leurs builds utilisent la pile video propre au projet)
Expected verification
dmesg shows the initialization of the lima driver and /dev/dri/renderD128 exists; glmark2-es2 returns a score of a few hundred points. When playing 1080p video under Armbian, CPU load remains high (htop) — a sign of software decoding.
Common errors
- Promising hardware-decoded 4K60 under Armbian: not confirmed.
- Expecting OpenGL 3 or ES 3: lima (Utgard architecture) provides OpenGL ES 2 only.
- No image on screen after login: known HDMI EDID/overscan quirk — try another display or adjust via armbian-config.
- Overheating during benchmarks: the SoC gets very hot without a heatsink.
- HDMI CEC: the pin is selected between CEC and GPIO via a jumper.
Other tutorials for this board
- Faire clignoter une LED en C avec libgpiod sur Le Potato
- Lire un bouton poussoir avec libgpiod (pull-up interne)
- GPIO en Python avec python3-libgpiod sur Le Potato
- Fondu LED progressif avec PWM sous sysfs (meson)
- Capteur BME280 (I2C) sur Le Potato : overlay et lecture
- Console série (ttyAML0) et SSH sur Le Potato
Code examples for this board
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash