2025-01-22 09:09 AM
I'd like to move from mickledore to the current ST offering on scarthgap. We are using the STM32MP157D.
We require a web browser, and WebKit worked well for us on mickledore using QT5.
Since QT has been spun out to a plug-in and it is unclear how well-supported it is (ST's documentation seems lagging), I decided to go with Weston/Wayland and use a simple GTK/GDK app.
Westion is working - the GPU `/usr/local/demo/bin/weston-st-egl-cube-tex` runs nicely. Simple apps using GDK are also working.
Sadly, though, the app embedding a WebKit view has a hard-to-describe random flickering issue. It renders the page but then randomly overlays a white screen that occasionally flashes on and off.
Anyone able to offer some experience:
- Has anyone got a lightweight browser working on the STM32MP1 using the GPU and the recent ST scarthgap releases?
- Or got QT6 working on STM32MP1. Did you use the ST's "QT plug-in"?
- Any advice for configuring webkitgtk3 (found in meta-oe)? I see it is untouched by the ST layers.
Solved! Go to Solution.
2025-01-24 04:31 AM
So I chose to go with wpewebkit from meta-webkit layer found at https://github.com/Igalia/meta-webkit.git (scrathgap branch - ff17c29c - 2jan2025).
I added the "wpewebkit libwpe wpebackend-fdo cog" packages. `cog` renders the few simple pages I threw at it successfully.
So using wayland (via wpebackend-fdo), no QT nor webkitgtk3.
2025-01-23 03:28 AM
@james-cc wrote:Sadly, though, the app embedding a WebKit view has a hard-to-describe random flickering issue. It renders the page but then randomly overlays a white screen that occasionally flashes on and off.
This is rendering the text correctly, but none of the images. I end up with large white boxarea being flashed at the top left.
Software compositing works (slowly).
Running the code with `GDK_GL=gles EGL_LOG_LEVEL=debug` tells me there is an invalid surface:
libEGL debug: EGL user error 0x300d (EGL_BAD_SURFACE) in eglSwapInterval
libEGL debug: EGL user error 0x300d (EGL_BAD_SURFACE) in eglSwapInterval
libEGL debug: EGL user error 0x300d (EGL_BAD_SURFACE) in eglSwapInterval
libEGL debug: EGL user error 0x300d (EGL_BAD_SURFACE) in eglSwapInterval
...
Any advice is welcome.
2025-01-24 04:31 AM
So I chose to go with wpewebkit from meta-webkit layer found at https://github.com/Igalia/meta-webkit.git (scrathgap branch - ff17c29c - 2jan2025).
I added the "wpewebkit libwpe wpebackend-fdo cog" packages. `cog` renders the few simple pages I threw at it successfully.
So using wayland (via wpebackend-fdo), no QT nor webkitgtk3.
2025-02-04 05:39 AM
Hi,
Qt6 is officially supported, you can use the 2.0.1 X-LINUX-QT meta layer here: https://www.st.com/en/embedded-software/x-linux-qt.html
Doc is here: https://wiki.st.com/stm32mpu/wiki/X-LINUX-QT_Expansion_Package
But we have not integrated yet the webengine officially
Anyway I can give you some indications:
1- in st-image-qt.bb, add:
# enable webengine feature
DISTRO_FEATURES:append = " webengine"
2- In packagegroup-x-linux-qt.bb, add:
# enable webengine feature
DISTRO_FEATURES:append = " webengine"
and
RDEPENDS:packagegroup-x-linux-qt-extra = "\
...
qtwebengine \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtwebengine-qmlplugins', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtwebview', '', d)} \
\
...
3- Then you can use the webengine quicknanobrowser application delivered by Qt.
with the following flags:
# Qt Webengine flags
export QTWEBENGINE_CHROMIUM_FLAGS=" \
--ignore-gpu-blocklist --enable-gpu-rasterization \
--enable-native-gpu-memory-buffers --num-raster-threads=4 \
--enable-accelerated-video-decode \
--disable-gpu-sandbox --disable-web-security \
--enable-unsafe-webgpu \
--enable-virtual-keyboard \
--enable-wayland-ime \
--enable-wayland-server \
--enable-zero-copy \
--hardware_video_decoding \
--enable-hardware-overlays \
--enable-native-gpu-memory-buffers \
--vulkan --use-vulkan \
--video-threads=4 \
--enable-accelerated-2d-canvas \
"
Hope it can help.
Official Qt6 webengine support should come around mid 2025.
Philippe.
2025-02-07 11:19 PM
Thanks. We'll stick with wpewebkit at the moment (via weston) as it seems to be working well. We also seem to have saved quite a bit of space without having the QT libraries (although I didn't spend much effort pruning QT).