2024-06-24 11:27 PM
Hello,
I want to change booting logo image on STM32MP135F-DK.
1. I checked first boot image.
(/boot/splash_landscape.bmp)
2. I want to change second boot image.
3. I checked after booting, backgroud image.
(/usr/share/weston/backgrounds/OpenSTLinux_background_1024x600.png)
thanks, reply.
Solved! Go to Solution.
2024-06-27 12:00 AM
Hello @younghan ,
Can you take a look at https://github.com/STMicroelectronics/meta-st-openstlinux/tree/mickledore/recipes-core/psplash ?
You will find different elements that helps you to understand what is necessary for the cross compilation of psplash-drm.
If you take a more precise look at the Makefile :
SPLASH_IMG ?= OpenSTLinux_background_480x272.png
SPLASH_IMG_ROT ?= OpenSTLinux_background_480x272_rotation.png
all: modeset
generate_header: $(SPLASH_IMG) $(SPLASH_IMG_ROT)
@gdk-pixbuf-csource --macros $(SPLASH_IMG) > image_header.tmp
@(sed -e "s/MY_PIXBUF/SPLASH_IMG/g" -e "s/guint8/uint8_t/g" image_header.tmp > image_header.h && rm image_header.tmp)
@gdk-pixbuf-csource --macros $(SPLASH_IMG_ROT) > image_header.tmp
@(sed -e "s/MY_PIXBUF/SPLASH_IMG_ROT/g" -e "s/guint8/uint8_t/g" image_header.tmp >> image_header.h && rm image_header.tmp)
psplash:
$(CC) $(CFLAGS) $(LDFLAGS) -o psplash-drm basic_splash_drm.c -I. `pkg-config --cflags --libs libdrm pixman-1 libpng` -Wall -Os
clean:
rm -rf psplash-drm
You can see you have a rule to compile the psplash binary, and a one to generate the header. The header is the file called image_header.h in the folder tree. You can also see that you have this file already present by default.
Now if we take a look at the recipe psplash-drm.bb (in the do_compile task):
do_compile() {
bbnote "EXTRA_OEMAKE=${EXTRA_OEMAKE}"
oe_runmake clean
oe_runmake psplash
}
You see that only the psplash rule is compiled, and not the header generation. So I think you will have to change the SPLASH_IMG and SPLASH_IMG_ROT in the Makefile first, then generate the header manually, to finally cross compile the binary. I do not know if we have limitations with the resolution of the image, you will have to test different ones.
Kind regards,
Erwan.
2024-06-25 01:23 AM
Hello @younghan ,
Please check the following topics that already deal with your ask :
Kind regards,
Erwan.
2024-06-25 05:09 PM
I understand use psplash image.
/usr/bin/psplash-drm.
but, how can I made psplash-drm image?
plese reply.
thanks.
2024-06-25 11:00 PM - edited 2024-06-25 11:05 PM
Hi @younghan ,
I advise you to check the following layer in Yocto layer/meta-st/meta-st-openstlinux/recipes-core/psplash/psplash-drm/ and check the way they install their other background image.
Kind regards,
Erwan
2024-06-25 11:27 PM
Hello, I made psplash-drm image.
and upload /usr/bin/psplash-drm
Then, I checked change booting image.
but, display off after displayed about 20s change booting image.
and /home/weston/weston.log
root@stm32mp1:/home/weston# cat weston.log
Date: 2024-06-25 UTC
[15:19:58.793] weston 11.0.1
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Build: 11.0.1
[15:19:58.794] Command line: /usr/bin/weston --modules=systemd-notify.so --log=/home/weston/weston.log --use-pixman
[15:19:58.794] OS: Linux, 6.1.28, #58 SMP PREEMPT Tue Jun 25 17:21:22 KST 2024, armv7l
[15:19:58.794] Flight recorder: enabled
[15:19:58.795] warning: XDG_RUNTIME_DIR "/home/weston" is not configured
correctly. Unix access mode must be 0700 (current mode is 0755),
and must be owned by the user UID 1000 (current owner is UID 1000).
Refer to your distribution on how to get it, or
http://www.freedesktop.org/wiki/Specifications/basedir-spec
on how to implement it.
[15:19:58.801] Using config file '/etc/xdg/weston/weston.ini'
[15:19:58.803] Output repaint window is 100 ms maximum.
[15:19:58.807] Loading module '/usr/lib/libweston-11/drm-backend.so'
[15:19:58.858] initializing drm backend
[15:19:58.858] Trying logind launcher...
[15:19:58.885] logind: session control granted
[15:19:58.910] logind: TakeDevice on 226:0 failed.
[15:19:58.911] logind: TakeDevice on /dev/dri/card0 failed, error=No such device
[15:19:58.915] no drm device found
[15:19:58.915] fatal: failed to create compositor backend
root@stm32mp1:/home/weston#
please reply, thanks.
2024-06-27 12:00 AM
Hello @younghan ,
Can you take a look at https://github.com/STMicroelectronics/meta-st-openstlinux/tree/mickledore/recipes-core/psplash ?
You will find different elements that helps you to understand what is necessary for the cross compilation of psplash-drm.
If you take a more precise look at the Makefile :
SPLASH_IMG ?= OpenSTLinux_background_480x272.png
SPLASH_IMG_ROT ?= OpenSTLinux_background_480x272_rotation.png
all: modeset
generate_header: $(SPLASH_IMG) $(SPLASH_IMG_ROT)
@gdk-pixbuf-csource --macros $(SPLASH_IMG) > image_header.tmp
@(sed -e "s/MY_PIXBUF/SPLASH_IMG/g" -e "s/guint8/uint8_t/g" image_header.tmp > image_header.h && rm image_header.tmp)
@gdk-pixbuf-csource --macros $(SPLASH_IMG_ROT) > image_header.tmp
@(sed -e "s/MY_PIXBUF/SPLASH_IMG_ROT/g" -e "s/guint8/uint8_t/g" image_header.tmp >> image_header.h && rm image_header.tmp)
psplash:
$(CC) $(CFLAGS) $(LDFLAGS) -o psplash-drm basic_splash_drm.c -I. `pkg-config --cflags --libs libdrm pixman-1 libpng` -Wall -Os
clean:
rm -rf psplash-drm
You can see you have a rule to compile the psplash binary, and a one to generate the header. The header is the file called image_header.h in the folder tree. You can also see that you have this file already present by default.
Now if we take a look at the recipe psplash-drm.bb (in the do_compile task):
do_compile() {
bbnote "EXTRA_OEMAKE=${EXTRA_OEMAKE}"
oe_runmake clean
oe_runmake psplash
}
You see that only the psplash rule is compiled, and not the header generation. So I think you will have to change the SPLASH_IMG and SPLASH_IMG_ROT in the Makefile first, then generate the header manually, to finally cross compile the binary. I do not know if we have limitations with the resolution of the image, you will have to test different ones.
Kind regards,
Erwan.