As an open-source project, lvgl/lv_port_linux has picked up 465 stars on GitHub (C). LVGL configured to work on Linux (Wayland, DRM, EGL, OpenGL, fbdev, X11 etc)
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
This is an example project that shows how to run LVGL
on GNU/Linux and other Unix-like systems. It builds a small simulator
application, lvglsim, that opens a window (or drives a display directly) and
runs LVGL's demos. It can also be used as a starting point to cross-compile LVGL to
an embedded linux board.
LVGL ships drivers for the whole Linux graphics stack, and this port can build
against any of them:
Backend
Description
LV_USE_SDL
SDL2 (default) — a desktop window
LV_USE_WAYLAND
Wayland
LV_USE_X11
X11
LV_USE_GLFW
GLFW3 (OpenGL)
LV_USE_LINUX_DRM
DRM/KMS (/dev/dri/*)
LV_USE_LINUX_FBDEV
Legacy framebuffer (/dev/fb*)
Configuration is driven by Kconfig, the same system used by the Linux
kernel, so you can pick drivers, features and demos from a menu instead of
editing a header by hand.
Get started
Prerequisites
CMake, Python 3, and python3-venv are required regardless of configuration.
Ninja is optional but recommended to speed-up building
Install the system packages with your distribution's package manager, then
install the Python tools in a virtual environment (recommended so they don't
pollute your system Python):
Configuration lives in a .config file at the repository root. When it exists,
the build uses it; otherwise it falls back to configs/get_started.defconfig.
The Kconfig tools (defconfig, menuconfig) come from kconfiglib and must be
run from the repository root, where the top-level Kconfig lives.
Start from a defconfig
Generate a .config from a defconfig:
defconfig configs/get_started.defconfig
Besides the port's own get_started.defconfig, LVGL ships several ready-made
defconfigs in lvgl/configs/defconfigs/.
Once you have a .config, open the interactive menu to enable/disable drivers,
features, fonts and demos:
menuconfig
Save and exit, then rebuild:
cmake -B build
cmake --build build -j$(nproc)
Backends
This port supports these Linux display and input backend that LVGL provides.
A backend is compiled in when its CONFIG_LV_USE_* option is enabled (through
Kconfig, as above). The glue code for each one lives in:
You can install the built LVGL library and headers to your system:
cmake --install ./build
Boards
The boards/ directory contains hardware-specific documentation and
configuration files for running LVGL on officially supported embedded Linux development
boards. Currently supported boards:
LV_SIM_WINDOW_WIDTH — width of the window (default 800).
LV_SIM_WINDOW_HEIGHT — height of the window (default 480).
Legacy framebuffer (fbdev)
LV_LINUX_FBDEV_DEVICE — override the default (/dev/fb0) framebuffer device node.
EVDEV touchscreen / mouse pointer device
LV_LINUX_EVDEV_POINTER_DEVICE — the path of the input device, e.g.
/dev/input/by-id/my-mouse-or-touchscreen. If not set, devices are
discovered and added automatically.
DRM/KMS
LV_LINUX_DRM_CARD — override the default (/dev/dri/card0) card.
Permissions
Some devices require special permissions. We recommend adding your user to the appropriate group to avoid running the application with sudo.
Access requirements depend on which drivers you choose to use:
video group: Grants access to the framebuffer (/dev/fb0) if using fbdev.
input group: Grants access to event devices (/dev/input/*) if using evdev.
If you are using either driver, add your user to the corresponding group(s):
# Add your user to the relevant group(s)
sudo adduser $USER video
sudo adduser $USER input
# Apply group changes to the current terminal session
newgrp video
./build/bin/lvglsim
Note: If your display/input setup does not rely on fbdev or evdev (for example, if you are using SDL, X11, or Wayland), you can safely skip these group permission steps.
The most recent commit recorded on lvgl/lv_port_linux was 9 days ago, based on the GitHub push timestamp. The repository has 261 forks — one of the better signals of community interest.
How many stars does lvgl/lv_port_linux have?
lvgl/lv_port_linux has 465 GitHub stars — refresh the page for the live number, or check github.com/lvgl/lv_port_linux. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is lvgl/lv_port_linux open source?
Yes — lvgl/lv_port_linux ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/lvgl/lv_port_linux.
What topics is lvgl/lv_port_linux associated with?
GitHub's repository topics for lvgl/lv_port_linux: "drm", "framebuffer", "linux", "lvgl", "opengl", "wayland", "yocto". TopGit's editorial category is open-source.
Where can I see lvgl/lv_port_linux in action?
The project maintains a homepage at https://docs.lvgl.io/master/integration/embedded_linux/index.html. The README tab on this page also usually contains screenshots and a quickstart.
Where do I read more about lvgl/lv_port_linux?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/lvgl/lv_port_linux is the definitive source.
Read full README in the tab above.
Is lv_port_linux worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of lv_port_linux.