Wpe-webkit-mir-kiosk not visible

hello everyone!

i’m having problems getting wpe-webkit-mir-kiosk to work and hope this is the right place to ask for help. after installing the ubuntu-frame snap (snap install ubuntu-frame; snap set ubuntu-frame daemon=true) on a clean ubuntu installation, a gray/black screen is visible. then i execute the following:

snap install wpe-webkit-mir-kiosk
snap set wpe-webkit-mir-kiosk daemon=true
/snap/wpe-webkit-mir-kiosk/current/bin/setup.sh (which does as far as i know the same as "snap connect wpe-webkit-mir-kiosk:wayland")

and did a restart. ubuntu-frame seems to start, because the gray/black screen is visible again, but no browser. when i check the logs (snap logs wpe-webkit-mir-kiosk), there is one supicious line:

2023-08-31T20:59:14Z wpe-webkit-mir-kiosk.daemon[8401]: wl_display@1: error 1: invalid arguments for wl_shm@11.create_pool

because there were some apparmor errors visible via dmesg, i disabled apparmor for “snap.wpe-webkit-mir-kiosk.daemon”, but the error remains. i also tried other kiosk snaps like mir-kiosk-neverputt or dashkiosk-client-browser which work without any problems with ubuntu-frame. i’ve also tried different ubuntu version with the same result:

  • ubuntu core 22 arm64
  • ubuntu 20.04 server amd64 (latest; minimal installation)
  • ubuntu 22.04 server amd64 (latest; minimal installation)
  • ubuntu 23.04 server amd64 (latest; minimal installation)

here are some system informations:

# snap list
Name                  Version                     Rev    Tracking       Publisher       Notes
bare                  1.0                         5      latest/stable  canonical✓      base
core18                20230703                    2790   latest/stable  canonical✓      base
core20                20230801                    2015   latest/stable  canonical✓      base
core22                20230801                    864    latest/stable  canonical✓      base
firefox-kiosk         0.1                         22     latest/edge    scout208        -
gnome-3-28-1804       3.28.0-19-g98f9e67.98f9e67  198    latest/stable  canonical✓      -
gtk-common-themes     0.1-81-g442e511             1535   latest/stable  canonical✓      -
mesa-core20           21.2.6                      145    latest/stable  canonical✓      -
mesa-core22           22.2.5                      208    latest/stable  canonical✓      -
mir-kiosk-neverputt   1.6.0+git20180603           252    latest/stable  alangriffiths✪  -
snapd                 2.60.2                      19993  latest/stable  canonical✓      snapd
ubuntu-frame          109-mir2.15.0               6626   22/stable      canonical✓      -
web-kiosk             0.0.4                       4      latest/stable  david180975     -
wpe-webkit-mir-kiosk  2.38.5                      93     latest/stable  glancr          -

# snap services
Service                               Startup  Current   Notes
firefox-kiosk.daemon                  enabled  inactive  -
mir-kiosk-neverputt.daemon            enabled  inactive  -
ubuntu-frame.daemon                   enabled  active    -
wpe-webkit-mir-kiosk.daemon           enabled  active    -
wpe-webkit-mir-kiosk.restart-watcher  enabled  active    -

# snap connections wpe-webkit-mir-kiosk
Interface                 Plug                                   Slot                              Notes
audio-playback            wpe-webkit-mir-kiosk:audio-playback    :audio-playback                   -
avahi-observe             wpe-webkit-mir-kiosk:avahi-observe     -                                 -
content[graphics-core20]  wpe-webkit-mir-kiosk:graphics-core20   mesa-core20:graphics-core20       -
dbus                      -                                      wpe-webkit-mir-kiosk:dbus-cogctl  -
hardware-observe          wpe-webkit-mir-kiosk:hardware-observe  -                                 -
hostname-control          wpe-webkit-mir-kiosk:hostname-control  -                                 -
network                   wpe-webkit-mir-kiosk:network           :network                          -
network-bind              wpe-webkit-mir-kiosk:network-bind      :network-bind                     -
network-manager           wpe-webkit-mir-kiosk:network-manager   -                                 -
opengl                    wpe-webkit-mir-kiosk:opengl            :opengl                           -
process-control           wpe-webkit-mir-kiosk:process-control   -                                 -
system-observe            wpe-webkit-mir-kiosk:system-observe    -                                 -
upower-observe            wpe-webkit-mir-kiosk:upower-observe    :upower-observe                   -
wayland                   wpe-webkit-mir-kiosk:wayland           :wayland                          manual

i would be really happy if someone could help me and many thanks in advance

Thomas

Pinging @tobias who maintains wpe-webkit-mir-kiosk. If that doesn’t work, then:

$ snap info wpe-webkit-mir-kiosk | grep contact
contact:   kontakt@glancr.de

thank you @alan_g.

all previous test were made on virtualbox for amd64 and qemu for arm64 ubuntu versions. today i’ve tried the same on ubuntu core 22.04 arm64 on rpi4 and everything works fine there. because i use raspberry as production platform, this issue is now low priority for me. maybe someday this will be fixed, so testing on my dev platform is possible. maybe this thread will also save somebody some hours in trying.

Hi @ret, thanks for bringing this up. While the error message is different, it sounds a bit like https://gitlab.com/glancr/wpe-webkit-snap/-/issues/33 – did you enable 3D acceleration for your Virtualbox machine? Same question for the QEMU stack. I guess other kiosk snaps fall back to 2D rendering, as does ubuntu-frame.

indeed, the cause for the problem is the missing 3d acceleration support.

after switching from virtio-ramfb to virtio-ramfb-gl in qemu the “wl_display@1”-error went away and the browser appeared.

i’ll give feedback for virtualbox in the evening.

thank you very much for the hint @tobias!

1 Like

i can confirm, the problem is also gone on virtualbox after enabling 3d acceleration. hope this info helps someone in the future.

I am also having this same issue of a blank / gray screen on Ubuntu Core 22.

  Operating System: Ubuntu Core 22                  
            Kernel: Linux 6.5.0-25-generic
      Architecture: x86-64
Name                  Version               Rev    Tracking       Publisher            Notes
bare                  1.0                   5      latest/stable  canonical✓           base
checkbox22            3.3.0-dev19           726    latest/stable  ce-certification-qa  -
core                  16-2.61.1             16574  latest/stable  canonical✓           core
core20                20240111              2182   latest/stable  canonical✓           base
core22                20240111              1122   latest/stable  canonical✓           base
dmidecode-snap        3.3                   1      latest/stable  drcoccodrillus       -
docker                24.0.5                2915   latest/stable  canonical✓           -
gnome-42-2204         0+git.ff35a85         141    latest/stable  canonical✓           -
gtk-common-themes     0.1-81-g442e511       1535   latest/stable  canonical✓           -
mesa-core20           21.2.6                151    latest/stable  canonical✓           -
mesa-core22           23.0.4                231    latest/stable  canonical✓           -
network-manager       1.36.6-9              876    22/stable      canonical✓           -
pc                    22-0.3                146    22/stable      canonical✓           gadget
pc-kernel             6.5.0.25.25~22.04.12  1682   22-hwe/stable  canonical✓           kernel
pulseaudio            8.0-4-dev             65     latest/beta    canonical✓           -
snapd                 2.61.2                21184  latest/stable  canonical✓           snapd
ubuntu-frame          130-mir2.16.3         8587   22/stable      canonical✓           -
wpe-webkit-mir-kiosk  2.38.5                100    latest/stable  glancr               -
snap get ubuntu-frame
Key      Value
daemon   false
display  
layouts:
  default:
    cards:
    - card-id: 0
      DisplayPort-2:
        mode: 1920x1080@60.0 
snap get wpe-webkit-mir-kiosk
Key                         Value
bg-color                    black
daemon                      true
debug                       false
devmode                     false
error-to-console            false
ignore-tls-errors           false
inspector-http-server-port  8090
inspector-server-port       8080
url                         https://wpewebkit.org

Logs reveal the same error:

wpe-webkit-mir-kiosk.daemon[16928]: wl_display@1: error 1: invalid arguments for wl_shm@11.create_pool

More logs:

2024-03-14T16:53:33Z systemd[1]: Started Service for snap application wpe-webkit-mir-kiosk.daemon.
2024-03-14T16:53:33Z systemd[1]: Started Service for snap application wpe-webkit-mir-kiosk.restart-watcher.
2024-03-14T16:53:33Z wpe-webkit-mir-kiosk.restart-watcher[16864]: Setting up watches.
2024-03-14T16:53:33Z wpe-webkit-mir-kiosk.restart-watcher[16864]: Watches established.
2024-03-14T16:53:33Z -[16928]: Could not open /sys/class/dmi/id/chassis_type: Failed to open file “/sys/class/dmi/id/chassis_type”: Permission denied
2024-03-14T16:53:33Z -[16928]: Could not open /sys/firmware/acpi/pm_profile: Failed to open file “/sys/firmware/acpi/pm_profile”: Permission denied
2024-03-14T16:53:33Z wpe-webkit-mir-kiosk.daemon[16928]: MESA: warning: Driver does not support the 0xa7a0 PCI ID.
2024-03-14T16:53:33Z wpe-webkit-mir-kiosk.daemon[16928]: libEGL warning: DRI2: failed to create dri screen
2024-03-14T16:53:33Z wpe-webkit-mir-kiosk.daemon[16928]: Could not determine the accessibility bus address
2024-03-14T16:53:33Z -[16928]: Your application does not implement g_application_activate() and has no handlers connected to the 'activate' signal.  It should do one of these.
2024-03-14T16:53:33Z -[16928]: Acquired D-Bus well-known name com.igalia.Cog
2024-03-14T16:53:33Z -[16938]: Could not open /sys/class/dmi/id/chassis_type: Failed to open file “/sys/class/dmi/id/chassis_type”: Permission denied
2024-03-14T16:53:33Z -[16938]: Could not open /sys/firmware/acpi/pm_profile: Failed to open file “/sys/firmware/acpi/pm_profile”: Permission denied
2024-03-14T16:53:33Z -[16928]: <https://wpewebkit.org/> Load started.
2024-03-14T16:53:33Z wpe-webkit-mir-kiosk.daemon[16928]: wl_display@1: error 1: invalid arguments for wl_shm@11.create_pool
2024-03-14T16:53:33Z -[16928]: <https://wpewebkit.org/> Loading...
2024-03-14T16:53:35Z -[16928]: <https://wpewebkit.org/> Loaded successfully.
2024-03-14T16:53:33Z ubuntu-frame.daemon[14729]: [2024-03-14 16:53:33.186304] <information> frame: New surface for snap="wpe-webkit-mir-kiosk" with title="Cog"
2024-03-14T16:53:33Z ubuntu-frame.daemon[14729]: file descriptor expected, object (11), message create_pool(nhi)
2024-03-14T16:53:33Z ubuntu-frame.daemon[14729]: error in client communication (pid 16928)

I tried to enable hardware acceleration by running:

snap connect wpe-webkit-mir-kiosk:graphics-core20 mesa-core20:graphics-core20

Interestingly enough, mir-kiosk-neverputt works (after /snap/mir-kiosk-neverputt/current/bin/setup.sh)!

Any ideas?

@nblack-el the problem would appear to be with wpe-webkit-mir-kiosk not working with your graphics hardware. You don’t say what your hardware is and that might provide a clue.

What is your graphics hardware? The problem may well be that your hardware needs a more recent mesa than 21.2.6 (which is what mesa-core20 provides).

Pinging @tobias who maintains wpe-webkit-mir-kiosk.


BTW snap connect wpe-webkit-mir-kiosk:graphics-core20 ... doesn’t enable hardware acceleration and that connection is made by default anyway. (You wouldn’t get as far as you have without it.)

@alan_g , thank you very much for your prompt and helpful response. The graphics hardware is as follows (integrated video):

00:02.0 VGA compatible controller: Intel Corporation Device a7a0 (rev 04) (prog-if 00 [VGA controller])                                                                                       
        DeviceName: Onboard - Video                                                                                                                                                           
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 140
        Region 0: Memory at 603c000000 (64-bit, non-prefetchable) [size=16M]
        Region 2: Memory at 4000000000 (64-bit, prefetchable) [size=256M]
        Region 4: I/O ports at 3000 [size=64]
        [virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
        Capabilities: [40] Vendor Specific Information: Len=0c <?>
        Capabilities: [70] Express (v2) Root Complex Integrated Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0
                        ExtTag- RBE+
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
        Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit-
                Address: fee00018  Data: 0000
                Masking: 00000000  Pending: 00000000
        Capabilities: [d0] Power Management version 2
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [100 v1] #1b
        Capabilities: [200 v1] Address Translation Service (ATS)
                ATSCap: Invalidate Queue Depth: 00
                ATSCtl: Enable-, Smallest Translation Unit: 00
        Capabilities: [300 v1] #13
        Capabilities: [320 v1] Single Root I/O Virtualization (SR-IOV)
                IOVCap: Migration-, Interrupt Message Number: 000
                IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy-
                IOVSta: Migration-
                Initial VFs: 7, Total VFs: 7, Number of VFs: 0, Function Dependency Link: 00
                VF offset: 1, stride: 1, Device ID: a7a0
                Supported Page Size: 00000553, System Page Size: 00000001
                Region 0: Memory at 0000004010000000 (64-bit, non-prefetchable)
                Region 2: Memory at 0000004020000000 (64-bit, prefetchable)
                VF Migration: offset: 00000000, BIR: 0
        Kernel driver in use: i915
        Kernel modules: i915

The PC itself is a GEEKOM Mini PC Mini IT13

FWIW, I just released a core22-based WPE version on the track 22/stable for amd64 and armhf architectures. This uses mesa-core22, so maybe switching to this fixes your issue.

Run snap refresh --channel=22/stable wpe-webkit-mir-kiosk and start WPE to check. On desktop systems, you may also run the browser on-demand with wpe-webkit-mir-kiosk.cog.

@alan_g might have more insights if your graphics hardware requires newer MESA drivers.

The 22 track is worth trying:

snap Mesa version
mesa-core20 21.2.6
mesa-core22 23.2.1
mesa-core24 24.0.1

I think that “Intel Corporation Device a7a0 (rev 04)” is from the last four years, but I don’t know exactly which Mesa version is needed to drive it. (The fact that mesa-core22 works for Frame and neverputt is reason to hope that this will work with WPE too.)

@tobias and @alan_g , thank you very much for your help. Updating the wpe-webkit-mir-kiosk with the just released core22-based WPE version worked!

2 Likes