Running Chromium (with video) in Kiosk Mode on an Intel NUC with Balena

Hi all,

I’m using the x11 Desktop example as found on this blog post on an Intel Stick PC (Intel NUC) with the intention to run chromium in kiosk mode within xfce.

The problem is that I’m getting is poor video performance and chromium crashing (With the “aww snap, something went wrong message”) when I try and load any pages that are somewhat video / GPU intense…

Does anyone have any pointers on:

  • Running Chromium in Kiosk mode and the flags to get better performance out of it OR
  • Getting the native Intel Graphics drivers working reliably with the Stick inside BalenaOS and Docker?

Argument’s i’m currently using are:

CHROMIUM_FLAGS="--show-component-extension-options --ignore-gpu-blacklist --disable-background-networking --disable-gpu --enable-remote-extensions --enable-native-gpu-memory-buffers --disable-quic --enable-fast-unload --enable-tcp-fast-open --disable-gpu-compositing --force-gpu-rasterization --enable-zero-copy"
chromium --no-sandbox --temp-profile $* --kiosk "https://www.youtube.com/embed/z2gXCuq8UKM?autoplay=1" $CHROMIUM_FLAGS

And I’m getting the following in the logs before chrome crashes:

[1487:1532:0913/112004.075030:ERROR:bus.cc(396)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")

Further updates – I’m not getting any GPU passed into chrome by the looks - even when i run chromium without any Flags whatsoever…

Does anyone have any pointers?

I’ve mapped the GPU in (in my compose file) like so:

    devices:
      - "/dev/dri/card0:/dev/dri/card0"

glxinfo Is also not showing any devices…

root@313b11872694:/usr/src/app# glxinfo
name of display: :0.0
Error: couldn't find RGB GLX visual or fbconfig

Hi @dnedved and welcome to the balena forums!

I am asking some folks internally for further advice, but perhaps you could first try enabling DBus within the container? You can read more about how to accomplish that here: https://www.balena.io/docs/learn/develop/runtime/#dbus-communication-with-host-os.

Please let us know if that changes anything for you!

Hi @xginn8, thanks for checking!

Long of the short is dbus already enabled - and also exported in the container…

export DISPLAY=:0.0
export DBUS_SYSTEM_BUS_ADDRESS=unix:path=/host/run/dbus/system_bus_socket

And also in my compose file…

    labels:
      io.balena.features.dbus: '1'

so it’s not that unfortunately :frowning:

Hi all,

For anyone else that’s trying to get this working with the correct video drivers on intel stick pc’s - it turned out that the drivers were in-fact installed correctly in my container but not chromium was not looking for them in the /usr/lib/x86_64-linux-gnu/dri location… A simple symlink has fixed the problems :slight_smile:

  apt install libgl1-mesa-dri && \
  # Symlink drivers into /usr/lib/dri (if not exists)...
  ln -s /usr/lib/x86_64-linux-gnu/dri /usr/lib/dri

@BalenaHQ

Would be amazing if you guys could include the new “Intel Integrated Graphics” linux drivers in your yocto base image for x64_86 NUC’s – I for one would use them, and I’d be thinking other users using intel NUC’s probably want the GPU drivers also…

For now mesa will do, however it’s not as performant as the ozone-gbm.

I’m glad you got to the bottom of the issue! I’ve brought up an internal issue about this. If we make any progress on this issue in the future I will be sure to update this thread with the relevant information.

1 Like