RDKE splash screen is a lightweight bootup splash screen application for RDK-E . It displays a fullscreen image during device startup and exits once the system signals it to dismiss, keeping the screen visually occupied while the rest of the stack initializes. The source code for the same is available in https://github.com/rdkcentral/splashscreen/tree/develop .
It can be started via the systemd and is associated with a service file rdke_splash.service . The systemd unit can be configured to launch /usr/bin/rdke_splash early in the boot sequence . It preloads libwesteros_gl.so for the Westeros/Wayland compositor integration . The app uses Essos to create a fullscreen EGL window. The splash image is passed via --image <path> (JPEG or PNG).
If no image is provided or decoding fails, it falls back to a solid red 1×1 texture.
Every 50 ms the app checks for the existence of /tmp/.dismissSplash. When that file is found, the render loop exits. The helper script dismiss_splash.sh creates that file with a simple touch /tmp/.dismissSplash call — any other system component can do the same to signal that the splash is no longer needed.
On exit (dismiss file detected, SIGINT/SIGTERM, or Essos termination), the app destroys the GL program and texture, stops and destroys the Essos context, and returns.
If the window manager is running already then you will need to ensure the splash screen application runs in wayland mode (by setting the WAYLAND_DISPLAY variable to connect to the wayland display).
In short
As part of this activity rdke_splash binary was built using the source code available in https://github.com/rdkcentral/splashscreen/tree/develop . Later this binary was put into a raspberry pi build running with RDKM image . As a first try it was ran on the same display that the refui is running and was able to see the default red screen of the rdke splash .
curl -X POST http://127.0.0.1:9998/jsonrpc -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"org.rdk.RDKWindowManager.1.createDisplay","params":{"displayParams":"{\"client\":\"myapp_12345\",\"displayName\":\"test\",\"displayWidth\":1920,\"displayHeight\":1080,\"virtualDisplay\":false,\"virtualWidth\":1920,\"virtualHeight\":1080,\"topmost\":false,\"focus\":true}"}}'
Modified the existing rdke_splash.service like below,
[Unit] Description=RDK Splash Screen After=getty@.service Before=sceneset.service StartLimitIntervalSec=30 StartLimitBurst=5 [Service] Type=simple Environment="LD_PRELOAD=libwesteros_gl.so.0.0.0" Environment="WESTEROS_DRM_CARD=/dev/dri/card1" # The splash image is expected to be part of the firmware image. # If no --image is provided, the app shows an internal fallback splash. ExecStart=/usr/bin/rdke_splash Restart=on-failure RestartSec=2 [Install] WantedBy=multi-user.target
Enabled this service to start during the box bootup and modified the rdkwindowmanager service to add an ExecStartPre to stop this service . Tested with these 2 changes and it was seen that the box was booted up with the default red screen of the rdke_splash binary and was visible for 3-4 seconds before the reference UI is started .