Unable to run cross compiled GUI applications RPI
-
Hello all,
title says it all. Basically, I am setting up my Qt desktop environment to perform remote debugging on my RPI. I am going to assume that we are famaliar with the process of setting up cross compiling. Although, if you are interested in knowing my steps, feel free to ask and I will share with you my process.I build Qt on my desktop for the RPI using the following command:
/root/qt-everywhere-opensource-src-5.9.5/configure -opengl es2 -device linux-rasp-pi3-vc4-g++ -device-option CROSS_COMPILE=/opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot /home/phillip/sysroot -prefix /usr/local/qt5pi -opensource -confirm-license -skip qtscript -skip qtwebengine -nomake examples -make libs -pkg-config -no-use-gold-linker -skip qtwebengine -v
I am able to cross-compile and run Qt applications from my desktop on the RPI. I also know that I setup my Qt desktop environment correctly for remote debugging on the Pi.
THe issue is when I compile a GUI application. Basically, I get an error stating "Could not find DRM Device"
I looked through the config.summary file and found that EGLFS Raspberry Pi was set to no. I then tried re-running the config file with the following options:
/root/qt-everywhere-opensource-src-5.9.5/configure -opengl es2 -eglfs -device linux-rasp-pi3-vc4-g++ -device-option CROSS_COMPILE=/opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot /home/phillip/sysroot -prefix /usr/local/qt5pi -opensource -confirm-license -skip qtscript -skip qtwebengine -nomake examples -make libs -pkg-config -no-use-gold-linker -skip qtwebengine -v
However, the option is still not set.
So now, I am wondering a couple of questions:
- Is EGLFS needed to run GUI applications on the Pi?
1a) If so, what are the correct config settings to enable EGLFS? - Are my config settings correct to run GUI Applications?
I should note that I am running the RPI 3B+
Thank you all and any help is appreciated. - Is EGLFS needed to run GUI applications on the Pi?
-
Ok so after some trial and error, I used this configuration in order to build with EGLFS:
/root/qt-everywhere-opensource-src-5.9.5/configure -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=/opt/qt5pi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot /home/phillip/sysroot -prefix /usr/local/qt5pi -opensource -confirm-license -skip qtscript -skip qtwebengine -nomake examples -make libs -pkg-config -no-use-gold-linker -skip qtwebengine -v
After rebuilding Qt for RPI, editing some missing references in the project, I was able to debug the program on my RPI from the Desktop.
However, now I am getting an interface with no font and I lost touchscreen support.
Any thoughts?
-
@Omni_Philm said in Unable to run cross compiled GUI applications RPI:
qt-everywhere-opensource-src-5.9.5
Why don't you try with a more recent version?
-
Some good news, I fixed the fonts by manually creating the font folder and transferring the fonts to the RPI.
In regards to the touchscreen, I ended up observing that the touchscreen worked on the application for the most part. When I use the touchscreen on the app, the touch event occurs in a different location on the interface from where I touched. I want to think that it is a calibration issue but when I exit the application, touchscreen events work as intended. Could it be an issue with EGLFS?
I am still wondering if I need EGLFS to run or if there is a second option that I can explore.
Anyways, I am running v4.19.83-v7+