Plasma on Amlogic S905X4 can not start, only black screen

Hello, All

I’m trying to bring Plasma Big Screen to Amlogic S905X4.
I’m using Yocto kirkstone released here: Packaging / Yocto Manifests · GitLab

The SOC do not support X11, only support OpengGLES, after some hacking, the image can build and start successfully

There is no any KDE log in systemd log
so I modify /usr/bin/plasma-bigscreen-wayland as below

startplasma-wayland --libinput --exit-with-session=/usr/libexec/startplasma-waylandsession > /tmp/pp.log 2>&1

then I can get below log:

org.kde.plasma.session: Tao Here123
kdeinit5: preparing to launch '/usr/libexec/kf5/klauncher'
kdeinit5: Launched KLauncher, pid = 3456, result = 0
No backend specified, automatically choosing drm
kwin_xkbcommon: XKB: /usr/share/X11/locale/en_US.UTF-8/Compose:5089:46: this compose sequence is a duplicate of another; skipping line
kwin_xkbcommon: XKB: /usr/share/X11/locale/en_US.UTF-8/Compose:5091:48: this compose sequence is a duplicate of another; skipping line
kwin_xkbcommon: XKB: /usr/share/X11/locale/en_US.UTF-8/Compose:5093:48: this compose sequence is a duplicate of another; skipping line
kwin_xkbcommon: XKB: /usr/share/X11/locale/en_US.UTF-8/Compose:5097:47: this compose sequence is a duplicate of another; skipping line
kwin_xkbcommon: XKB: /usr/share/X11/locale/en_US.UTF-8/Compose:5099:46: this compose sequence is a duplicate of another; skipping line
kwin_xkbcommon: XKB: /usr/share/X11/locale/en_US.UTF-8/Compose:5107:48: this compose sequence is a duplicate of another; skipping line
kwin_xkbcommon: XKB: /usr/share/X11/locale/en_US.UTF-8/Compose:5111:46: this compose sequence is a duplicate of another; skipping line
kwin_xkbcommon: XKB: /usr/share/X11/locale/en_US.UTF-8/Compose:5113:46: this compose sequence is a duplicate of another; skipping line
kwin_xkbcommon: XKB: /usr/share/X11/locale/en_US.UTF-8/Compose:5117:45: this compose sequence is a duplicate of another; skipping line
kwin_xkbcommon: XKB: /usr/share/X11/locale/en_US.UTF-8/Compose:5120:46: this compose sequence is a duplicate of another; skipping line
OpenGL vendor string:                   ARM
OpenGL renderer string:                 Mali-G31
OpenGL version string:                  OpenGL ES 3.2 v1.r44p0-wayland-drm-g31-aarch64-e8f54f304-72.20117bbcebfdf369f9087acee71e141e
OpenGL shading language version string: OpenGL ES GLSL ES 3.20
Driver:                                 Mali (Lima)
Driver version:                         0.0
GPU class:                              Unknown
OpenGL version:                         3.2
GLSL version:                           3.20
Linux kernel version:                   5.15.119
Requires strict binding:                yes
GLSL shaders:                           yes
Texture NPOT support:                   yes
Virtual Machine:                        no
kwin_wayland_drm: disabling connector "HDMI-A-1-unknown" without a crtc
kwin_wayland_drm: disabling connector "HDMI-A-1-unknown" without a crtc
kwin_xkbcommon: XKB: inet:334:58: unrecognized keysym "XF86EmojiPicker"
kwin_effect_startupfeedback: Tao Here
(WW) Option "-listen" for file descriptors is deprecated
Please use "-listenfd" instead.
(WW) Option "-listen" for file descriptors is deprecated
Please use "-listenfd" instead.
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Could not resolve keysym XF86EmojiPicker
Errors from xkbcomp are not fatal to the X server
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
Errors from xkbcomp are not fatal to the X server
kdeinit5: Communication error with launcher. Exiting!
org.kde.plasma.session: process job  "kcminit_startup" finished with exit code  0
org.kde.plasma.session: error starting process "kded5" ()
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
Warning: fallback to QtQuick software backend.
Qt: Session management error: networkIdsList argument is NULL
kf.kio.core: Terminal "konsole" not found, service "Calibrate Touchscreen"
kf.kio.gui: "Terminal konsole not found while trying to run /etc/xdg/autostart/xinput_calibrator.desktop"
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
Warning: fallback to QtQuick software backend.
qt.qpa.wayland: EGL not available
Warning: fallback to QtQuick software backend.
kf.solid.backends.udisks2: Failed enumerating UDisks2 objects: "org.freedesktop.DBus.Error.ServiceUnknown" 
 "The name org.freedesktop.UDisks2 was not provided by any .service files"
New PolkitAgentListener  0x559f1a04e0
Adding new listener  PolkitQt1::Agent::Listener(0x559f1c78c0) for  0x559f1a04e0
Listener online
kf.solid.backends.udisks2: Failed enumerating UDisks2 objects: "org.freedesktop.DBus.Error.ServiceUnknown" 
 "The name org.freedesktop.UDisks2 was not provided by any .service files"
Authentication agent result: true
head: invalid option -- '1'
BusyBox v1.35.0 () multi-call binary.

Usage: head [OPTIONS] [FILE]...
qt.network.ssl: QSslSocket: cannot resolve EVP_PKEY_base_id
qt.network.ssl: QSslSocket: cannot resolve SSL_get_peer_certificate
kdeconnect.core: Could not query capabilities from notifications server
not a valid new object id (2), message get_registry(n)
error in client communication (pid 3446)
wl_display@1: error 1: invalid arguments for wl_display@1.get_registry
qt.qpa.wayland: Creating a fake screen in order for Qt not to crash
qt.qpa.wayland: Failed to initialize EGL display 3001
Warning: fallback to QtQuick software backend.
The Wayland connection broke. Did the Wayland compositor die?
The Wayland connection broke. Did the Wayland compositor die?

part of ps aux:

root        3395  0.0  0.6  98588 12364 ?        Ssl  Nov08   0:00 /usr/bin/sddm
root        3397  0.0  0.6  24724 12356 ?        S    Nov08   0:00 /usr/libexec/sddm-helper --socket /tmp/sddm-auth-365c8910-efe5-4959-95d9-97c71e2ee08a --id 1 --start dbus-run-session /usr/bin/plasma-bigscreen-wayland --user kde --autologin
kde         3399  0.0  0.3  11224  7448 ?        Ss   Nov08   0:00 /lib/systemd/systemd --user
kde         3400  0.0  0.1 161476  2608 ?        S    Nov08   0:00 (sd-pam)
kde         3406  0.0  0.0   4660  1272 tty1     Ss+  Nov08   0:00 dbus-run-session /usr/bin/plasma-bigscreen-wayland
kde         3414  0.0  0.1   5464  3484 tty1     S+   Nov08   0:00 dbus-daemon --nofork --print-address 4 --session
kde         3415  0.0  0.1   3732  2676 tty1     S+   Nov08   0:00 /bin/sh /usr/bin/plasma-bigscreen-wayland
kde         3421  0.0  2.1 198020 43180 tty1     Sl+  Nov08   0:00 startplasma-wayland --libinput --exit-with-session=/usr/libexec/startplasma-waylandsession
kde         3442  0.0  2.1 198012 43288 tty1     Sl+  Nov08   0:00 /usr/bin/plasma_session --no-lockscreen
kde         3445  0.0  0.4  94272  9252 tty1     Sl+  Nov08   0:00 /usr/bin/kwin_wayland_wrapper --xwayland
kde         3446  0.0  5.3 805364 105600 tty1    Sl+  Nov08   0:03 /usr/bin/kwin_wayland --wayland-fd 8 --socket wayland-0 --xwayland-fd 9 --xwayland-fd 10 --xwayland-display :0 --xwayland-xauthority /run/user/1000/xauth_EOARVv --xwayland
root        3460  0.0  0.0      0     0 ?        I<   Nov08   0:00 [kbase_event]
kde         3469  0.0  0.4  14808  8204 tty1     S+   Nov08   0:00 /usr/bin/Xwayland :0 -auth /run/user/1000/xauth_EOARVv -listen 55 -listen 56 -displayfd 47 -rootless -wm 50
kde         3498  0.0  2.4 289524 48532 tty1     Sl+  Nov08   0:00 /usr/bin/ksmserver --no-lockscreen
kde         3506  0.0  2.6 479120 52360 tty1     SLl+ Nov08   0:00 /usr/libexec/polkit-kde-authentication-agent-1
kde         3507  0.0  1.3 268669388 25812 tty1  SNl+ Nov08   0:00 /usr/libexec/baloo_file
kde         3511  0.1  3.0 303020 60236 tty1     SLl+ Nov08   1:45 /usr/libexec/kdeconnectd
kde         3513  0.0  2.3 287456 46720 tty1     Sl+  Nov08   0:00 /usr/bin/gmenudbusmenuproxy
kde         3520  0.0  0.5 231488 11132 ?        Sl   Nov08   0:00 /usr/bin/pulseaudio --start --log-target=syslog

The screen is keep black, no splash . but kwin is running, I can run ksplashqml by manual, and it shows on screen

root@mesonsc2-ah21264:/usr/lib# export XDG_RUNTIME_DIR=/run/user/1000
root@mesonsc2-ah21264:/usr/lib# export QT_QPA_PLATFORM=wayland
root@mesonsc2-ah21264:/usr/lib# export WAYLAND_DISPLAY=wayland-0
root@mesonsc2-ah21264:/usr/lib# ksplashqml 
QStandardPaths: runtime directory '/run/user/1000' is not owned by UID 0, but a directory permissions 0700 owned by UID 1000 GID 1000
QStandardPaths: runtime directory '/run/user/1000' is not owned by UID 0, but a directory permissions 0700 owned by UID 1000 GID 1000
QObject: Cannot create children for a parent that is in a different thread.
(Parent is SplashApp(0x7fe23d4ac8), parent's thread is QThread(0x55b9d916b0), current thread is QThread(0x55b9dab800)
QObject::installEventFilter(): Cannot filter events for objects in a different thread.

I can also run others GUI apps such as kdeconnect-app, kfontview, kclock

My questions are below:

  1. what’s the correct way get full kde logs.
  2. what’s the root cause plasma can not start but kwin is working. How can I debug more
  3. It seems QT6 support wayland better, but I’m not sure whether kirkstone-qt6.xml is ready @Andreas_Cord-Landweh

@multiverse Thanks a lot
But sorry, none of your tips works

I tried this:

cd /usr/bin
mv ksplashqml ksplashqml.bak

create a blank file ksplashqml, copy into :

#!/bin/sh
env
gdbserver :5678 /usr/bin/ksplashqml.bak

Then I get such crash bt

(gdb) bt
#0  0x0000007ff5fa6840 in wl_proxy_marshal () from target:/usr/lib/libwayland-client.so.0
#1  0x0000007ff24527d8 in ?? () from target:/usr/lib/libMali.so
#2  0x0000007ff244b700 in ?? () from target:/usr/lib/libMali.so
#3  0x0000007ff2445554 in ?? () from target:/usr/lib/libMali.so
#4  0x0000007ff2449d74 in eglMakeCurrent () from target:/usr/lib/libMali.so
#5  0x0000007ff72e8f50 in QOpenGLContext::doneCurrent() () from target:/usr/lib/libQt5Gui.so.5
#6  0x0000007ff72af4bc in QOffscreenSurface::~QOffscreenSurface() () from target:/usr/lib/libQt5Gui.so.5
#7  0x0000007ff0a1184c in ?? () from target:/usr/lib/plugins/platformthemes/KDEPlasmaPlatformTheme.so
#8  0x0000007ff6d3cf1c in QCoreApplicationPrivate::init() () from target:/usr/lib/libQt5Core.so.5
#9  0x0000007ff729c09c in QGuiApplicationPrivate::init() () from target:/usr/lib/libQt5Gui.so.5
#10 0x0000007ff729cfc4 in QGuiApplication::QGuiApplication(int&, char**, int) () from target:/usr/lib/libQt5Gui.so.5
#11 0x0000005555555c0c in SplashApp::SplashApp (this=this@entry=0x7ffffff668, argc=@0x7ffffff65c: 1, argv=argv@entry=0x7ffffff828) at ../plasma-workspace-5.27.4.1/ksplash/ksplashqml/splashapp.cpp:44
#12 0x0000005555554d34 in main (argc=<optimized out>, argv=0x7ffffff828) at ../plasma-workspace-5.27.4.1/ksplash/ksplashqml/main.cpp:27

I delete the /usr/lib/plugins/platformthemes/KDEPlasmaPlatformTheme.so and plasma can start now :v: