Slot Plug chromium-mir-kiosk:x11 chromium-mir-kiosk:x11-plug :account-control - :alsa - :autopilot-introspection - :bluetooth-control - :broadcom-asic-control - :browser-support chromium-mir-kiosk:browser-sandbox :camera - :classic-support - :core-support core:core-support-plug :daemon-notify - :dcdbas-control - :docker-support - :dvb - :firewall-control - :framebuffer - :fuse-support - :gpg-keys - :gpg-public-keys - :gpio-memory-control - :greengrass-support - :hardware-observe - :hardware-random-control - :hardware-random-observe - :home - :hostname-control - :io-ports-control - :joystick - :kernel-module-control - :kubernetes-support - :kvm - :log-observe - :lxd-support - :mount-observe - :netlink-audit - :netlink-connector - :network chromium-mir-kiosk,mir-kiosk-apps,nextcloud :network-bind nextcloud :network-control - :network-observe - :network-setup-control - :network-setup-observe - :opengl chromium-mir-kiosk,mir-kiosk,mir-kiosk-apps :openvswitch-support - :physical-memory-control - :physical-memory-observe - :ppp - :process-control - :raw-usb - :removable-media - :shutdown - :snapd-control - :ssh-keys - :ssh-public-keys - :system-observe - :system-trace - :time-control - :timeserver-control - :timezone-control - :tpm - :uhid - mir-kiosk:mir mir-kiosk-apps mir-kiosk:mir-libs-1604 mir-kiosk-apps mir-kiosk:wayland chromium-mir-kiosk mir-kiosk:wayland-socket-dir chromium-mir-kiosk - chromium-mir-kiosk:camera - chromium-mir-kiosk:cups-control - chromium-mir-kiosk:desktop - chromium-mir-kiosk:gsettings - chromium-mir-kiosk:hardware-observe - chromium-mir-kiosk:home - chromium-mir-kiosk:mount-observe - chromium-mir-kiosk:network-manager - chromium-mir-kiosk:password-manager-service - chromium-mir-kiosk:pulseaudio - chromium-mir-kiosk:removable-media - chromium-mir-kiosk:screen-inhibit-control - htop:mount-observe - htop:process-control - htop:system-observe - nextcloud:removable-media
Snap interfaces look perfect.
I only noticed this now - what GPU have you got in this box?
How do I find that information? On a desktop I would try lspci but on core it says command not found and I’m not sure of another way to report it.
Sorry for the newbie question, but is this working on ARM or only x86? (when on bare metal)
I’ve been looking for exactly this!
snap install classic --beta --devmode
Hey @madsrh ,
this works on the Raspberry Pi 2, which is ARM (and has MESA support). Any other devices with MESA support should just work fine.
But more generally, ARM devices typically have closed source GPU drivers, device-specific work is needed to enable it. Chromium may work by falling back to software rendering however, but it’ll be noticeably slower.
Contact us if you need help with enabling full GPU acceleration for web kiosks on specific ARM hardware.
09: PCI 02.0: 0300 VGA compatible controller (VGA) [Created at pci.366] Unique ID: _Znp.KZeR2ZfJCB4 SysFS ID: /devices/pci0000:00/0000:00:02.0 SysFS BusID: 0000:00:02.0 Hardware Class: graphics card Model: "Intel G33" Vendor: pci 0x8086 "Intel Corporation" Device: pci 0x29c2 "G33" SubVendor: pci 0x1028 "Dell" SubDevice: pci 0x0220 Revision: 0x0a Driver: "i915" Driver Modules: "drm" Memory Range: 0xdfe00000-0xdfe7ffff (rw,non-prefetchable) I/O Ports: 0xecd8-0xecdf (rw) Memory Range: 0xc0000000-0xcfffffff (ro,non-prefetchable) Memory Range: 0xdff00000-0xdfffffff (rw,non-prefetchable) IRQ: 26 (578778 events) I/O Port: 0x00 (rw) Module Alias: "pci:v00008086d000029C2sv00001028sd00000220bc03sc00i00" Driver Info #0: XFree86 v4 Server Module: intel Driver Info #1: XFree86 v4 Server Module: intel 3D Support: yes Extensions: dri Config Status: cfg=new, avail=yes, need=no, active=unknown 10: PCI 02.1: 0380 Display controller [Created at pci.366] Unique ID: ruGf.r++3yOyzTo9 SysFS ID: /devices/pci0000:00/0000:00:02.1 SysFS BusID: 0000:00:02.1 Hardware Class: graphics card Model: "Intel 82G33/G31 Express Integrated Graphics Controller" Vendor: pci 0x8086 "Intel Corporation" Device: pci 0x29c3 "82G33/G31 Express Integrated Graphics Controller" SubVendor: pci 0x1028 "Dell" SubDevice: pci 0x0220 Revision: 0x0a Memory Range: 0xdfe80000-0xdfefffff (rw,non-prefetchable) Module Alias: "pci:v00008086d000029C3sv00001028sd00000220bc03sc80i00" Config Status: cfg=new, avail=yes, need=no, active=unknown Primary display adapter: #9
In this particular case it is x86. Just playing with some old hardware and experimenting with core at the same time. At some point I will play around with a Pi3 but this box was near to hand and I liked it because it had decent size disk and I wanted to test Nextcloud as well.
Model: 6.15.13 "Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz"
I was hoping to put this on my Raspberry Pi 3
Thanks for the reply
@dshimer nice work, so you’re using the “i915” driver. Unfortunately it’s a bit on the old side.
I’m not certain about this, but I see reports that MESA for i915 either is missing or has incomplete support for OpenGL2.1.
To find this out for sure, please try a snap I use for debugging these kind of issues. Please visit
and download the snap corresponding to your architecture. Install with
snap install ./glxgears_0.1_amd64.snap --dangerous
Connect requires slot/plug:
snap connect glxgears:wayland-socket-dir mir-kiosk:wayland-socket-dir
Now see what version of OpenGL it reports with:
sudo snap run glxgears.glxinfo | grep “OpenGL version”
But even if it reports OpenGL 2.1, I am suspicious! I did find in the past that some essential parts of 2.1 were actually missing from the i915 MESA implementation, and in actuality only 1.4 was really there. Glamor may be similarly fussy, meaning Xwayland won’t work with OpenGL, and chromium will fail as a result.
Will do. Note that the mir-kiosk-apps run fine. Are they less cumbersome than chromium would be in this case?
sudo snap run glxgears.glxinfo | grep “OpenGL version”
grep: version”: No such file or directory glamor: EGL version 1.4 (DRI2): Require OpenGL version 2.1 or later. Failed to initialize glamor Failed to initialize glamor, falling back to sw Fontconfig error: Cannot load default config file Fontconfig error: Cannot load default config file
@dshimer short answer: yes, because they’re simple.
Long answer: Chromium currently does not have Wayland support. To make it work on top of Mir (a Wayland server), we use an intermediary X11 server called Xwayland, that translates all X11 calls to Wayland.
Xwayland appears to require a minimum GL version of 2.1 to function. Which is a pity as Chromium can actually operate with older GL versions (works on GL1.4 at least) on plain X11, or even fall back to pure software rendering (no GPU at all, uses CPU only).
Most of the mir-kiosk-apps are quite simple, they either don’t use GL at all (render with pure software), or they operate fine with a low version of OpelGL, so they have no problem.
I expect it would be possible to get your setup working with Chromium, but would require tweaking the snap to force Xwayland and chromium to use software rendering only. But then I’m not sure how pleasant an experience you’d end up with, rendering might be slow and jerky. Only way to tell is to try…
Damn, my debug snap doesn’t work on your hardware either
/me running low on ideas. I’ll have to ponder
Well I’ll just hang out as a specific use case that may in fact be useless. I’m willing to try anything that would help, even if it just means just failing gracefully with enough information to say it can’t be done on hardware of this spec.
I’ve an old laptop around that IIRC uses i915 (on 16.04 desktop). There are some drm bugs I worked around getting Mir working right (but stuff was showing on screen). If I get time later I can experiment with using the snaps on this hardware. It wouldn’t be surprising if Xwayland is too fussy.
I have a raspberry pie 3. Would like some help to make it work on the device. So, far I have done the tutorial with the vm and it works. But it says failed to start Service for snap mir-kiosk on raspberry pie 3. Here is the snap shot of journalctl.
Something went really wrong with the wrapping there, could you paste the journal output into some pastebin service?
I can just about make out the string “cannot find platform” - can I ask if you followed:
and did you choose the stable or edge image?
Got around to this:
- the mir-kiosk snap starts (but the cursor is broken due to a drm bug)
- chromium-mir-kiosk starts, but then it and/or miral-kiosk hangs
It is hardware from about 15 years ago, so diagnosing this failure is low on my priorities at the moment.