Hello,
we use a Variscite DART-MX8M-PLUS (NXP i.MX 8M Plus) on our Custom Board.
We have our own OS build based on Debian Bullseye and with Variscite / NXP Kernel 5.10.52 and related driver packages installed. We have Weston 9 build with NXP patches (provided by Variscite [1]) and XWayland from Bullseye main installed. Everything is working well (even GStreamer and VPU), however we need to run JxBrowser including Chromium (116.0.5845.140) and GPU rendering (EGL) fails. Debug output below, what is going wrong?
[1] https://github.com/varigit/debian-var/tree/debian_bullseye_var01/variscite/deb
$ sudo find / -name libEGL.so
/usr/lib/aarch64-linux-gnu/libEGL.so
/usr/lib/aarch64-linux-gnu/vivante/libEGL.so
/path/to/chromium/engine/libEGL.so
22:04:53.984 DEBUG Verifying /path/to/chromium/chromium/engine/libEGL.so...
22:04:53.984 DEBUG Verifying /path/to/chromium/chromium/engine/libEGL.so... [OK]
22:04:54.554 DEBUG libEGL.so...
22:04:57.208 DEBUG [Chromium] [121760:121760:0727/220457.207932:ERROR:gl_surface_egl.cc(831)] EGL Driver message (Critical) eglInitialize: Could not make the initialization pbuffer current.
22:04:57.209 DEBUG [Chromium] [121760:121760:0727/220457.209368:ERROR:gl_surface_egl.cc(1353)] eglInitialize OpenGL failed with error EGL_NOT_INITIALIZED, trying next display type
22:04:57.214 DEBUG [Chromium] [121760:121760:0727/220457.214546:ERROR:gl_surface_egl.cc(831)] EGL Driver message (Critical) eglInitialize: Cannot create an OpenGL ES platform on GLX without the GLX_ARB_create_context extension.
22:04:57.215 DEBUG [Chromium] [121760:121760:0727/220457.215409:ERROR:gl_surface_egl.cc(1353)] eglInitialize OpenGLES failed with error EGL_NOT_INITIALIZED
22:04:57.216 DEBUG [Chromium] [121760:121760:0727/220457.216000:ERROR:gl_ozone_egl.cc(23)] GLSurfaceEGL::InitializeOneOff failed.
22:04:58.001 DEBUG [Chromium] [121785:121785:0727/220458.000481:ERROR:gl_surface_egl.cc(831)] EGL Driver message (Critical) eglInitialize: Could not make the initialization pbuffer current.
22:04:58.002 DEBUG [Chromium] [121785:121785:0727/220458.000516:ERROR:gl_surface_egl.cc(1353)] eglInitialize OpenGL failed with error EGL_NOT_INITIALIZED, trying next display type
22:04:58.006 DEBUG [Chromium] [121785:121785:0727/220458.006168:ERROR:gl_surface_egl.cc(831)] EGL Driver message (Critical) eglInitialize: Cannot create an OpenGL ES platform on GLX without the GLX_ARB_create_context extension.
22:04:58.007 DEBUG [Chromium] [121785:121785:0727/220458.006228:ERROR:gl_surface_egl.cc(1353)] eglInitialize OpenGLES failed with error EGL_NOT_INITIALIZED
22:04:58.008 DEBUG [Chromium] [121785:121785:0727/220458.006257:ERROR:gl_ozone_egl.cc(23)] GLSurfaceEGL::InitializeOneOff failed.
Where can I find the NXP Chromium patches for DART-MX8M-PLUS (NXP i.MX 8M Plus) running 5.10.52 or 6.1.y kernel?
Hi @richardnardy,
I hope you are doing well
Q: Where can I find the NXP Chromium patches for DART-MX8M-PLUS (NXP i.MX 8M Plus) running 5.10.52 or 6.1.y kernel?
=> We can build the Chromium into the Yocto easily. We can reference to UG of "i.MX_Yocto_Project_User's_Guide.pdf" of 6.1.1 to add the chromium into the system.
5.6.5 Chromium Browser on XWayland, and Wayland
The Yocto Project community has Chromium recipes for the Wayland version Chromium Browser for i.MX SoC
with GPU hardware. NXP does not support or test the patches from the community. This section describes how
to integrate Chromium into your rootfs and enable hardware accelerated rendering of WebGL. The Chromium
browser requires additional layers such as meta-browser added in the imx-release-setup.sh script
automatically.
In local.conf for XWayland or Wayland, add Chromium into your image.
CORE_IMAGE_EXTRA_INSTALL += "chromium-ozone-wayland"
Q: About the issue run JxBrowser including Chromium (116.0.5845.140) and GPU rendering (EGL) fails.
=>Can you try to use 6.1.1 BSP to test it? Customers can build Chromium into BSP following the previous introduction. I also have built the Chromium into the 6.1.1BSP. So, you can get it form here.
Thanks & Regards,
Dhruvit Vasavada
This is how I am starting Weston as a user (I also tried with root):
[Unit]
RequiresMountsFor=/run
After=dbus.socket systemd-user-sessions.service
Wants=dbus.socket[Service]
PAMName=login
Environment=DISPLAY=:0
ExecStart=/usr/bin/weston-launch --tty /dev/tty7 --user myuser --
IgnoreSIGPIPE=no
[Install]
WantedBy=default.target