Mainline Linux T30, 4.14, checking for library EGL not found

Hello, I am problems configuring the Colibri T30 Yocto BSP 2.8.7 to build the angstrom-lxde-image. I followed the mainline tutorial and I set the machine.conf to set the PREFERRED_PROVIDER_virtual/egl ?= “mesa” and the XSERVER ?= “xserver-xorg
mesa-driver-nouveau
xf86-input-evdev
xf86-input-keyboard
xf86-input-mouse
xf86-video-modesetting”

The image wants the libepoxy library (since we are not even using OpenGL ES or EL for our embedded device I don’t care really) but the Mesa virtual/egl target doesn’t seem to provide the headers, package config, or libraries it depends on (eglinfo-fb also fails ).

To be honest , we don’t even care about 3D capabilities, so if there was a way to get rid of OpenGL ES/EL from the angstrom-lxde-image , we would be thankful. This driver stack is really a pain and we want the bare minimum of graphics capabilities. We just want the mainline kernel and the least painful video driver stack possible.

Embarrasingly, I was at one point able to set the right magic combinations of machine.conf, local.conf to get the mainline , angstrom-lxde-image build to work… but we lost some data in a corrupted docker image/backup and now I am faced with this issue.

Thanks,

Brad

Hi @bertin ,

add these lines to oe-core/stuff/meta-toradex/recipes/images/angstrom-lxde-image.bb

IMAGE_INSTALL_remove = eglinfo-fb \

This removes EGL from the build.

Let us know if it worked.

Best Regards
Kevin

Hi Kevin,

Thanks for responding.

I added IMAGE_INSTALL_remove = ““eglinfo-fb”” to the /layers/meta-toradex-demos/recipes-images/images/angstrom-lxde-image.bb and reran “bitbake angstrom-lxde-image”"

I still get a failure .

ERROR: libepoxy-1.4.3-r0 do_configure: configure failed
configure: error: Package requirements (egl) were not met:

No package '‘egl’ found

This is the same problem as my original post

Thanks,

Brad

ok I am lost.

I tried to
DISTRO_FEATURES_remove = “opengl”, remove firefox , set PACKAGECONFIG for gtk+3 to “–disable-opengl” (to get rid of the dependency on libepoxy)

now xf86-input-mouse is failing do_configure with “package ‘‘dri’’’ required by ‘‘xorg-xserver’’, not found”

dri, not even sure what it is really, the abbreviation is maddeningly common . There doesn’t seem to be straight way to PROVIDE it without enabling virtual/mesa .

Please help, like I said before , there was a way to setup the drivers in the machine.conf so that the mainline kernel based image builds!

Hello @bertin ,

Adding

DISTRO_FEATURES_remove = "x11 wayland"
IMAGE_INSTALL_remove = "eglinfo-x11"

to your local.conf seems to work. But then if your application also uses x11, then it might have some repercussions. Have you already checked this thread here? They have discussed in detail the actual working of back-end.

Could you try if this works for you?

Best regards
Janani

Hello Janani,

I tried that and immediately get a missing depedency error
“ERROR: Nothing RPROVIDES ‘libxcomposite’’ layers/meta-toradex-demos/recipes-image/images/angstrom-lxde-image.bb RDEPENDS on or otherwise requires it”

I am no expert, but I think the lxde requires X11 right?

Can you link the thread? You forgot to add a link to the thread .

I followed the instructions on how to build a mainline image for Colibri T30 and I also checked a few threads about switching from the NVidia drivers to the modeswitching drivers.

Hi @bertin !

You can check that the recipe that provides libxcomposite is in layers/openembedded-core/meta/recipes-graphics/xorg-lib/libxcomposite_0.4.4.bb:

$ bitbake libxcomposite -e | grep ^PROVIDES=
PROVIDES="libxcomposite xcomposite"

Do you have the meta layer listed on your bblayers.conf? Or, is it possible that your Yocto environment setup is not “healthy”?


Also, this is the link that @saijanani.tx wanted to share: How to add framebuffer EGL to console-trdx-image?

Best regards,

Hi Henrique,
The output to bitbake libxcomposite -e | grep ^PROVIDES= is
"libxcomposite was skipped: missing required distro feature ‘x11’’ (not in DISTRO_FEATURES)

Which was obviously caused by the DISTRO_FEATURES_remove = “x11 wayland” command from Janani.

I have ${TOPDIR}/…/layers/openembedded-core/meta added to my bblayers.conf

It was a healthy environment just last week. I had taken build environment from the BSP v 2.8.7 and modified it use the mainline kernel 4.14.183 . First I had followed the instructions from marcel on how to get a working mainline kernel on the Colibri T30, and that had worked so then I set about modifying the BSP v2.8.7 angstrom-lxde-image for mainline in yocto

I used the mainline recipe that I found from you guys for the Apalis T30 and modified it for the Colibri T30. I had applied the most recent patches for colibri T30 device tree from marcel and I was able to build a working image last week (before I lost my most recent backup). I had switched to the modesetting drivers. I commented out PREFFERED_PROVIDER_virtual/egl = “tdx-nv-binaries”" and replaces it with mesa.

fortunately, I still have that image running on a Colibri-T30 on our custom carrier board. It has been running for weeks.

I had taken a backup from a week and half ago of the Yocto environment and have run into the problem that started this thread when I tried to rebuild our image from the begninnng.

I will look at the link and see if applies, I know that was a console image though. I have been using the angstrom-lxde-image , but I will see if there is overlap there.

Is Marcel around? I know they are expert on the mainline kernel stuff right?

edit: change 4.4.183 to 4.14.183

If you do know or if you see Marcel can you please ask him?

what the value of the variable XSERVER in the meta-toradex-tegra/conf/machine/include/tegra-base.inc . Also what are the values of the PREFERRED_PROVIDER variables in that file are supposed to switch from the tdx-nv-binaries to mesa?

I believe that I have the wrong machine configuration values and that is why I ran into these problems. I was previously editing those values when I had lost my backup data.

Hi @marcel.tx , can you please comment on this issue? I am not sure what values I need to set in machine.conf/local.conf so that the mailine kernel recipe can have the correct values for the modesetting driver and that mesa can provide the EGL headers and libraries needed so that libepoxy can build correctly.

I really need to rebuild our image and apply kernel patches to try and reduce our power consumption. I can’t do that if the angstrom-lxde-image won’t build.

Sorry, but I am not really a Yocto project graphics expert, especially not when it comes down to ancient X11 vs. more modern Wayland. The only mainline-based image for T30 I worked on was for the Toradex Easy Installer but that is not using anything X11 at all. That machine configuration you may find here:

For more specific guidance concerning X11 vs. Wayland configuration maybe @max.tx could help you.

Hi Marcel,

Thanks for taking the time to answer my question on the weekend.

We don’t need any expertise regarding x11 or wayland. Really the issue revolves around yocto here.

We need to build libepoxy , gtk+3 seems to need it and we need gtk+3 for our guis built in mono. That is all of the graphics expertise needed here

for some reason if I go into the WORKDIR/recipe-sysroot/usr/lib for libepoxy and look I find no libEGL.so … the same goes for the includes and pc files…

Mesa RPROVIDES in the libegl-mesa-dev those files but does not PROVIDES them… But what is really confusing is that Mesa also RPROVIDES libgl-mesa-dev and those files are definitely where they need to be for libepoxy to compile.

I am really clueless as to how to get libepoxy to compile without manually moving the files into place. Could you please look these short attached recipes?

mesa.inc (10.1 KB)
mesa_17.1.7.bb (1.4 KB)

@marcel.tx @max.tx

We really need your help to figure out why mesa is not putting the files where they need to be.

xserver-xorg and libepoxy , (and if I manually build eglinfo, but it isn’t part of our image AFAIK) cannot find the EGL and KHR headers or libEGL.so compiled for armva7athf even though they can be found in build/tmp-glibc/sysroot-components/mesa

Now I am gettting errors and warnings from the do_rootfs complaining about missing softlinks in the runtime-reverse/libgl-mesa and then once I am manually create the link to libgl-mesa… the LICENSE_libgl-mesa is producing a KeyError

If we need to get on a call or however we can make this happen… then I would really appreciate it. You guys know a lot more about Yocto than I (I am flying totally solo here) do, and have more resources at your disposal.

Thanks.

Brad

@marcel.tx @max.tx

I have found the solution to this problem by setting PACKAGECONFIG_append_tegra30 = “dri3 egl gles gallium”

and rebuilding virtual/mesa

after that all of the problems I had with libepoxy and xserver-xorg went away

1 Like