-
Notifications
You must be signed in to change notification settings - Fork 7
OS Compatibility & Requirements
This page pulls together practical OS-level notes, quirks, and recommendations for the uConsole, specifically in support of the AIO v2 hardware and tooling.
This is currently our recommended Debian-based image for uConsole.
For downloads, updates, changelogs, and support, always refer to Rex’s original forum thread:
➡ https://forum.clockworkpi.com/t/trixie-6-12-y-for-the-uconsole-and-devterm/19457
That thread is the authoritative source for this image.
⚠ Do not apply custom settings in Raspberry Pi Imager when flashing this image.
Doing so can cause the system to fail to boot, particularly on CM5 Lite modules. Always flash the image as-is.
If you are using a CM5 Lite and experience SD card boot failures or instability, this is almost always EEPROM-related.
- CM5 firmware newer than 2025-01-06
- Raspberry Pi Imager must NOT be used with custom settings
Applying custom settings can make the image unbootable
vcgencmd versionsudo rpi-eeprom-updatesudo rpi-eeprom-config -eBack up the existing configuration, then replace it with:
[all]
BOOT_UART=1
# Switch off PMIC outputs on HALT
POWER_OFF_ON_HALT=1
# Default BOOT_ORDER for provisioning
# SD -> NVMe -> USB -> Network
BOOT_ORDER=0xf461
# Try boot on SDCard repeatedly
SD_BOOT_MAX_RETRIES=2
# Slow down SDCard SDR Mode on bootloader
SD_QUIRKS=1
Save, exit, and reboot.
A black screen on boot is one of the most common failure modes on the uConsole with AIO v2 hardware. In most cases the system is actually running (SSH works, services start), but the display pipeline never initialises. This is almost always a missing or incomplete set of overlays.
The following items must all be present and working together:
- Correct uConsole panel overlay
- Pi 5 KMS graphics driver
- Sufficient CMA memory
- SPI initialisation for the display controller
If any one of these is missing, the LCD may never light up.
Edit /boot/firmware/config.txt over SSH or via the SD card in another computer:
dtoverlay=clockworkpi-uconsole-cm5
dtoverlay=vc4-kms-v3d-pi5,cma-384
max_framebuffers=2
ignore_lcd=0What these do:
-
clockworkpi-uconsole-cm5
Enables the correct LCD panel, GPIOs, and backlight routing. -
vc4-kms-v3d-pi5,cma-384
Loads the correct Pi 5 graphics stack and allocates enough contiguous memory for the display to initialise reliably.
Without sufficient CMA, the display can silently fail during KMS handoff. -
max_framebuffers=2
Prevents framebuffer starvation during early boot and mode switching. -
ignore_lcd=0
Explicitly enables the internal LCD path.
On AIO v2 systems, SPI initialisation is required for the display to come up.
If SPI0 is not enabled, the panel may remain black even though everything else is correct.
dtoverlay=spi0-0csThis line has repeatedly been the “last missing piece” when display issues persist.
The CM5 exposes a PCIe Gen3-capable x1 link, but in practice this can be unstable depending on:
- M.2 adapter quality
- Trace length
- Power delivery
- NVMe controller behaviour
For this reason, we deliberately cap the link to Gen2:
dtparam=pciex1
dtparam=pciex1_gen=2- Stability: Gen2 is far more tolerant of real-world signal conditions.
-
Power draw:
PCIe PHY power scales aggressively with link speed.
For many NVMe drives:- Gen4 can draw ~8–10 W under load
- Gen3 ~6–7 W
- Gen2 ~4–5 W
On uConsole-class hardware, forcing Gen2 dramatically reduces:
- thermal load
- brown-outs on cheaper M.2 hats
- unexplained NVMe resets
Latency and random I/O performance remain vastly better than SD or USB storage, even with bandwidth capped.
...
The following is a working reference configuration for uConsole + AIO v2 + CM5, covering:
- Internal LCD bring-up
- SPI requirements for the display
- Stable graphics initialisation
- PCIe Gen2 power/stability tuning
[all]
# Core system
disable_overscan=1
dtparam=audio=on
max_framebuffers=2
ignore_lcd=0
# USB / peripherals
dtoverlay=dwc2,dr_mode=host
dtparam=ant2
dtoverlay=audremap,pins_12_13
# SPI (required for AIO v2 display)
dtoverlay=spi0-0cs
dtoverlay=spi1-1cs
[pi5]
# uConsole CM5 carrier + panel
dtoverlay=clockworkpi-uconsole-cm5
# Correct Pi 5 KMS graphics + sufficient CMA
dtoverlay=vc4-kms-v3d-pi5,cma-384
# UART
dtparam=uart0
# PCIe (stability + lower power draw)
dtparam=pciex1
dtparam=pciex1_gen=2
# Kernel (match image defaults)
kernel=kernel8-16k.img
db 88 dP"Yb Yb dP oP"Yb.
dPYb 88 dP Yb Yb dP "' dP'
dP__Yb 88 Yb dP YbdP dP'
dP""""Yb 88 YbodP YP .d8888
---------------------------------------
aiov2_ctl — HackerGadgets uConsole AIOv2 control + telemetry tool
https://hackergadgets.com/products/uconsole-upgrade-kit