Compiling a light Real-time DEY Image with QT support
To achieve better real-time performance under the QT image, some image trimming and optimization are required. After installing DEY AIO, You can check out the following repository using repo:
repo init -u https://github.com/peyoot/dey-aio-manifest.git -b scarthgap -m qtfb-rtnodemo.xml
If you need QT5 support ,change it in conf/bblayers.conf, and then configure in conf/local.conf:
DISTRO_FEATURES:append = " rt"
# Add Qt base packages (core functionality only)
IMAGE_INSTALL:append = " \
qtbase \
qtbase-plugins \
qtbase-examples \
qt5everywheredemo \
"
# Explicitly disable Wayland and OpenGL
DISTRO_FEATURES:remove = "wayland opengl x11"
# Ensure framebuffer support
DISTRO_FEATURES:append = " fbdev "
# Streamline qtbase configuration, enable only framebuffer and basic features
PACKAGECONFIG:remove:pn-qtbase = "glib gles2 egl x11 xcb"
PACKAGECONFIG:append:pn-qtbase = " linuxfb gif png jpeg fontconfig"
# Basic font support (optional but recommended)
IMAGE_INSTALL:append = " ttf-dejavu-sans "
QT Examples
Some programs, such as the analog clock example, require configuring environment variables:
export QT_QPA_PLATFORM=linuxfb
cd /usr/share/examples/widgets/widgets/analogclock
./analogclock /dev/null 2>&1 &
However, different programs use different libraries, and environment variables will have different effects. The default qt5everywhere example does not require the above parameter setting, and the default is more efficient:
export QT_QPA_PLATFORM="eglfs"
cd /usr/share/qt5everywheredemo-1.0
./QtDemo > /dev/null 2>&1 &
Of course, compare to analogclock , this is a relatively larger demo with more memory footprint. so performance is not so good as pure core-image-base, but still can meet the expectation.
Real time performance can refer to following commands:
cyclictest -p 98 -t5 -m -l 100000
cyclictest --mlockall --smp --priority=98 --interval=1000 --distance=0 -l 100000