2024-04-03 02:33 AM
Dear all,
on a custom board based on STM32MP157D I successfully managed to configure an LCD display that works perfectly using "modetest -s" and "psplash-drm". But I cannot run the examples in the st-example-image-qt because I always get the same error:
# /usr/share/examples/opengl/hellowindow/hellowindow
QEGLPlatformContext: Failed to create context: 3005
and nothing is shown on the display.
Here is the my /usr/share/qt5/cursor.json:
{
"device": "/dev/dri/card0",
"hwcursor": false,
"pbuffers": false,
"outputs": [
{
"name": "DPI-1",
"mode": "640x480",
"touchDevice": "/dev/input/event0"
}
]
}
Attached you can find also some verbose logs that could help troubleshooting:
- modetest.txt: output of the command "modetest -Mstm"
- verbose-hellowindow.txt: output of the command "hellowindow" after setting verbose QPA logs
- dmesg.txt: dmesg output running "psplash-drm" and "hellowindow"
Do you have any hint?
Thank you!
Solved! Go to Solution.
2024-04-05 03:13 AM
Hi Philippe,
I made a try with a STM32MP157D-DK1 connected to an HDMI display and the Qt examples work perfectly. So I start to investigate the differences between the two images and I managed to understand what the problem was.
On my custom board some libraries (libEGL, libGLES, libgbm, etc.) are missing because I disabled the vendor filesystem that contains them.
I just copied the following libraries
libEGL.so
libEGL.so.1
libEGL.so.1.5.0
libGAL.so
libGLESv1_CM.so
libGLESv1_CM.so.1
libGLESv1_CM.so.1.1.0
libGLESv2.so
libGLESv2.so.2
libGLESv2.so.2.0.0
libGLSLC.so
libOpenVG.so
libOpenVG.so.1
libOpenVG.so.1.1.0
libVSC.so
libgbm.so
libgbm.so.1
libgbm.so.1.0.0
libgbm_viv.so
from /vendor/lib on DK1 to /usr/lib/ on my machine and the Qt examples started working perfectly!
Thanks anyway for your support.
Best,
Stefano
2024-04-04 06:05 AM
Hello Stefano,
as a first short answer, I run a similar example on regular STM32MP157-DK2 board and I got the attached traces.
It could help you to find out the cause of your issue.
BR,
Philippe P.
2024-04-05 12:38 AM
Hi Philippe,
thanks for your response. Which version of openstlinux are you using? I'm on the most recent one:
STM32MP1-Ecosystem-v5.0.2 release TAG: openstlinux-6.1-yocto-mickledore-mp1-v23.11.15
It seems that you are using a different version of Qt because some debug prints are missing. I read from your logs:
qt.qpa.eglfs.kms: New DRM/KMS via GBM integration created
qt.qpa.egldeviceintegration: Using EGL device integration "eglfs_kms"
qt.qpa.eglfs.kms: platformInit: Load Screen Config
qt.qpa.eglfs.kms: platformInit: Opening DRM device
from mine:
qt.qpa.eglfs.kms: New DRM/KMS via GBM integration created
qt.qpa.egldeviceintegration: Using EGL device integration "eglfs_kms"
qt.qpa.eglfs.kms: platformInit: Opening DRM device
as you see line3 of yours is missing in mine. I tried to grep it in the qtbase sources but I didn't find it because it has been introduced in Qt v6.0.0 (see commit here) but I'm on Qt v5.15.9.
Could you please clarify?
Best,
Stefano
2024-04-05 12:51 AM
Hello Stefano,
actually I have used the official QBSP from Qt that comes with Qt6. This explains the difference with your logs.
I did not have the OSTL image ready. I have launched a new build, I hope to have a new log soon.
BR,
Philippe
2024-04-05 03:13 AM
Hi Philippe,
I made a try with a STM32MP157D-DK1 connected to an HDMI display and the Qt examples work perfectly. So I start to investigate the differences between the two images and I managed to understand what the problem was.
On my custom board some libraries (libEGL, libGLES, libgbm, etc.) are missing because I disabled the vendor filesystem that contains them.
I just copied the following libraries
libEGL.so
libEGL.so.1
libEGL.so.1.5.0
libGAL.so
libGLESv1_CM.so
libGLESv1_CM.so.1
libGLESv1_CM.so.1.1.0
libGLESv2.so
libGLESv2.so.2
libGLESv2.so.2.0.0
libGLSLC.so
libOpenVG.so
libOpenVG.so.1
libOpenVG.so.1.1.0
libVSC.so
libgbm.so
libgbm.so.1
libgbm.so.1.0.0
libgbm_viv.so
from /vendor/lib on DK1 to /usr/lib/ on my machine and the Qt examples started working perfectly!
Thanks anyway for your support.
Best,
Stefano