Yoe-kiosk-browser -- a browser for embedded systems

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.

A photo running on a Variscite VAR-SOM-MX8M-NANO displaying a Simple IoT UI that is running on the same 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.

1 Like

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.

Thanks.

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:

https://code.qt.io/cgit/yocto/meta-qt6.git/tree/recipes-qt/qt6/qtwebengine.inc

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/

yocto layer - GitHub - Igalia/meta-webkit: Yocto / OpenEmbedded layer for WebKit based engines and browsers

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.

1 Like

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
2 Likes

I have yoe-kiosk-browser now working on top of QT 6.6, The changes for yoe-distro are staged here

and guess what needed to be changed for browser - Nothing :slight_smile:

1 Like

:clapper: Improving status pages:

this is quite handy feature for kiosk systems. Well done!

:clapper: Custom Error Status Page and Retry Support

1 Like