The Yoe Kiosk Browser is a Qt WebEngine (Chromium) based browser designed for embedded kiosk (full screen, single UI app) devices. In this scenario, the UI for the device is a web application that displays in a browser running on the device.
This is amazing stuff… Well done @cbrake. We will make it firstclass image in yoe and make default when building
yoe-kiosk-image, we can add some webengine examples and try to run them as well as demos.
how much memory and storage does it take, comparing to chromium headless for example?
QtWebEngine uses Chromium for the browser engine, so the memory/storage requirements are likely similar. It seems to perform fairly well on the i.mx8 nano, which is a low-end i.mx8.
PID USER PRI NI VIRT RES SHR S CPU%-MEM% TIME+ Command 615 root 20 0 2414M 157M 103M S 0.0 4.4 0:04.10 /usr/bin/yoe-kiosk-browser
This is from
yoe-kios-image displaying simpleiot instance running on same IMX8 box.
what’s the difference between yoe-kiosk-browser and eglfs, both are for kiosk single screen, one is more html/js oriented and eglfs is more normal desktop gui style?
a license related question attached here, I’m always confused by Qt’s license model so never used it for anything so far, Yoe includes Qt, does that mean using Yoe + Qt need some special license for anything commercial?
as a Qt alternative, how ‘bad’ it is for wxWidgets to do the GUI instead, which is 100% free to use.
eglfs and wayland are backends for Qt that allow Qt to interface with graphics acceleration. eglfs runs fullscreen and is designed to support a single app. wayland + weston gives you window manager.
yoe-kiosk-browser is a simple browser that runs on top of any Qt platform/backend.
Licensing for Qt web-engine is a bit complex:
Unless you license Qt, probably safe to assume it contains GPL/LGPL components. However, for most systems that use a web browser for a UI, the UI is written in separate web app (ex Simple IoT), not Qt, so it does not matter a lot.
QtWebEngine also includes Chromium, which is a mix of BSD, MIT, LGPL, etc.
If you are writing a native UI, then LVGL or wxWidgets is fine. However, many of my projects have a UI written as a web application for various reasons, so I need browser with good touch keyboard support.
Thanks for the reply.
For embedded-browser I checked out CEF (Bitbucket) and chromium headless (Headless Chromium) a while go, both seems feasible but I have not really used them. license wise both are commercial friendly.
Chromium-x11 and chromium-ozone-wayland are maintained first class in meta-browser for OE so not an issue as long as you have enough space and want to run either X11 or Wayland, running directly on OpenGL ( EGLFS ) as singleapp wont work. wpeWebkit is another low resources option - https://wpewebkit.org/
One thing we needed recently was a good virtual keyboard for a touchscreen. After trying various options, Qt is the only practical solution we’ve found so far. There are likely others, but time is limited.
yoe-kiosk-browser running inside an emulator ( YOE_PROFILE = “yoe-glibc-systemd-eglfs” )
Simple setup is to use emulator project
. ./envsetup.sh qemux86-64 bitbake yoe-kiosk-image runqemu kvm publicvnc