i have read the articel “Embedded Linux Sample Code” and followed the steps to build Freescales gpu_sdk / OpenGL ES 2.0 for i.MX6 combined with X11 i have it running. However our customer like to have a lightweight graphical stack on the i.MX6 with HW acceleration (at least 2D) therefor we think to user OpenGL ES 2.0 without the overhead of X11, so is it possible to use gpu_sdk with “fbdev” with Toradex Yocto Linux to achieve this. Or would you recommed a other approach for a HW accelerated lightweight graphical stack (at least 2D) for displaying a single window e.g. libDRM, Wayland? Or, how can we make use of vivante’s GC320?
Vivante provides different binary drivers for the different supported graphical backends (X11, Wayland, fbdev).
When you build an image with Yocto/Openembedded the flavour installed depends on the DISTRO_FEATURES variable.
So you would add the following to your local.conf file:
DISTRO_FEATURES_remove = “x11 directfb wayland”
delete all buildoutput and sstate:
rm -rf oe-core/build/out-glibc oe-core/build/sstate-cache
And then build an image (which must not install any X11 dependent packages).
The resulting image will contain EGL, GLES drivers which make use the framebuffer device.
You can use the oe-pkgdata-util to help here. It has the find-path command to find out which package is responsible for a given file on the final image.
Since headers are usually in /usr/include, let’s try (I have MACHINE=colibri-imx6 in my local.conf):
thank you for your response. The oe-pkgdata-util was a good hint.
I’ve looked into the tdx-reference-multimedia-image.bb and added the packagegroup-tdx-graphical to my image recipe.
The build stops with the following error:
ERROR: Nothing RPROVIDES 'vulkan-loader' (but /home/toradex/oe-coreV5.6/build/../layers/meta-toradex-demos/recipes-images/images/packagegroup-tdx-graphical.bb RDEPENDS on or otherwise requires it)
vulkan-loader was skipped: one of 'wayland x11' needs to be in DISTRO_FEATURES
NOTE: Runtime target 'vulkan-loader' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['vulkan-loader']
NOTE: Runtime target 'packagegroup-tdx-graphical' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-tdx-graphical', 'vulkan-loader']
ERROR: Required build target 'image-gemac-dev' has no buildable providers.
Missing or unbuildable dependency chain was: ['image-gemac-dev', 'packagegroup-tdx-graphical', 'vulkan-loader']
When I try to add kmscube (simple example for bare metal graphics) then it gives the following error:
ERROR: Nothing PROVIDES 'virtual/egl' (but /home/toradex/oe-coreV5.6/build/../layers/openembedded-core/meta/recipes-graphics/kmscube/kmscube_git.bb DEPENDS on or otherwise requires it)
imx-gpu-viv PROVIDES virtual/egl but was skipped: incompatible with machine verdin-imx8mm (not in COMPATIBLE_MACHINE)
imx-gpu-viv PROVIDES virtual/egl but was skipped: missing required distro feature 'wayland' (not in DISTRO_FEATURES)
imx-gpu-viv PROVIDES virtual/egl but was skipped: incompatible with machine verdin-imx8mm (not in COMPATIBLE_MACHINE)
imx-gpu-viv PROVIDES virtual/egl but was skipped: missing required distro feature 'wayland' (not in DISTRO_FEATURES)
NOTE: Runtime target 'kmscube' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['kmscube', 'virtual/egl']
ERROR: Required build target 'image-gemac-dev' has no buildable providers.
Missing or unbuildable dependency chain was: ['image-gemac-dev', 'kmscube', 'virtual/egl']