lvgl-dashboard-x-evk
:::warning [UNTESTED] on silicon
CMake parses cleanly and the LVGL 9.1 API is verified against the upstream v9.1.0 tag. Real-hardware bring-up is gated on the display-pipeline patches landing in the Yocto layer.
:::
A minimal LVGL 9 dashboard on the E1M-X V2N MIPI-DSI panel (RK055HDMIPI4MA0, 720×1280 @ 60 Hz).
Source: examples/display/lvgl-dashboard-x-evk/.
What makes it different
This is the SDK's first Linux-side display example, and it deliberately sits outside the <alp/display.h> migration that the Zephyr LVGL examples went through.
On the Renesas RZ/V2N family the display pipeline is owned by the A55 Linux cluster, so the app talks to DRM/KMS directly:
lv_init();
lv_display_t *disp = lv_linux_drm_create();
lv_linux_drm_set_file(disp, "/dev/dri/card0", -1); /* -1 = first connected connector */
There is no alp_display_* indirection on Linux — the OS-provided DRM stack is the portable surface. Contrast with lvgl-widgets-demo, which runs on Zephyr and therefore opens its panel via alp_display_open() + alp_gui_lvgl_attach().
The panel is a platform device (DRM/KMS via the carrier device tree), not an SDK chip driver — so there is no chips: entry. LVGL 9 comes from the Yocto distro (meta-oe lvgl package, DRM backend), not the Zephyr libraries: loader.
board.yaml
First example with this shape: no libraries:, no chips:, no pins:.
som:
sku: E1M-V2N101 # any V2x SKU works -- same PCB, same panel path
preset: e1m-x-evk
cores:
a55_cluster:
app: ./src # Linux userspace app (DRM/KMS + evdev)
recipe: alp-lvgl-dashboard # the recipe that packages `app:` above --
# `app:` alone is a source path, never a
# valid bitbake target
m33_sm:
os: "off" # display is wholly A55-owned
diagnostics:
log_level: info
The recipe: key names the bitbake target that packages the app: source path. A Yocto app-only slice needs it — app: alone is a source path, not a buildable target.
Hardware
- E1M-X EVK with a V2x SoM.
- RK055HDMIPI4MA0 panel on the carrier's Display 1 connector (J6).
- Backlight enable on GPT1 CH2.
Build and run
Two consumer paths:
- Recommended — the Yocto recipe at
meta-alp-sdk/recipes-examples/alp-lvgl-dashboard/packages the app intoalp-image-edge. Boot the image and runalp-lvgl-dashboard. - Standalone — cross-compile against the SDK sysroot with plain CMake.
Either way, stop the compositor first — DRM allows a single master:
systemctl stop weston
alp-lvgl-dashboard
What's on screen
A title label, a 360×360 arc at 62 %, and a "Touch me" button.
:::note Touch is not wired yet
The app creates an evdev pointer if /dev/input/event0 is readable, but the GT911 touch controller's I²C bus has no Linux master today on V2N-family SoMs, so there is no Linux-visible input adapter until the bridge I²C-proxy follow-up lands. The dashboard is display-only in the meantime.
:::
See also
lvgl-widgets-demo·lvgl-benchmark— the Zephyr-side LVGL examples<alp/display.h>·<alp/gui.h>— the Zephyr display/LVGL surfaces this example intentionally bypasses- Examples overview