Building Qt for BeagleBone working Debian 9.5
-
Hi everyone,
I am working on some project where I need to developed GUI using QT for my custom board having the same architecture as Beaglebone. I am completely new to Qt so don't know in details. I have read some document and saw some video and start to work.My host System is Ubuntu 18LTS and device(CustomBoard) running on Debian 9.5 2018-10-07 4GB SD IoT.
But while building the QT framework, I am facing a problem.
I have followed the process as mention in the document here:
https://wiki.qt.io/BeagleBone_Black_Beginners_Guide.First all, this document hasn't updated since a long time as well as All the blog and tutorial for building Qt framework for Beaglebone are too old and most of dependencies requirement changed(e.g. Toolchain directory).
In that file, cross compiler tool needed but that linked not valid So I don't where should I get this file..?
Anyway while executing this command:
"sudo apt-get install libgles2-mesa-dev libcap-dev libbz2-dev libgcrypt11-dev libpci-dev libnss3-dev build-essential libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libdrm-dev libfontconfig1-dev libxtst-dev libasound2-dev gperf libcups2-dev libpulse-dev libudev-dev libssl-dev flex bison ruby libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev i2c-tools libi2c-dev libstdc++6 lib32stdc++6 "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev"I Have got a error :
libgstreamer0.10-dev not found
libgstreamer-plugins-base0.10-dev not found.
So i remove both and execute the command again and it was successful.
Now to with process as mention document and execute the following command:"/configure -device linux-beagleboard-g++ -device-option CROSS_COMPILE=/opt/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/bbb-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5bbb -hostprefix /usr/local/qt5bbb -no-xcb -qt-zlib -no-opengl -qt-libpng -nomake examples -nomake tests -no-xkb -no-xshape -no-xsync -no-xcursor -no-xfixes -no-xrandr -no-kms -no-eglfs -no-xcb -no-accessibility -no-opengl -skip multimedia -skip webkit -no-gui -no-widgets -no-egl -no-openvg -openssl -no-qml-debug -v"
Now I got an error while building the whole Qt framework as mention below:
ERROR: Unknown command line option '-no-xshape'.What have I missed that process?
is that document still valid to follow.? if not please tell me whole process!Any help will be appreciated!
Thanks
-
Hi everyone,
I am working on some project where I need to developed GUI using QT for my custom board having the same architecture as Beaglebone. I am completely new to Qt so don't know in details. I have read some document and saw some video and start to work.My host System is Ubuntu 18LTS and device(CustomBoard) running on Debian 9.5 2018-10-07 4GB SD IoT.
But while building the QT framework, I am facing a problem.
I have followed the process as mention in the document here:
https://wiki.qt.io/BeagleBone_Black_Beginners_Guide.First all, this document hasn't updated since a long time as well as All the blog and tutorial for building Qt framework for Beaglebone are too old and most of dependencies requirement changed(e.g. Toolchain directory).
In that file, cross compiler tool needed but that linked not valid So I don't where should I get this file..?
Anyway while executing this command:
"sudo apt-get install libgles2-mesa-dev libcap-dev libbz2-dev libgcrypt11-dev libpci-dev libnss3-dev build-essential libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libdrm-dev libfontconfig1-dev libxtst-dev libasound2-dev gperf libcups2-dev libpulse-dev libudev-dev libssl-dev flex bison ruby libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev i2c-tools libi2c-dev libstdc++6 lib32stdc++6 "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev"I Have got a error :
libgstreamer0.10-dev not found
libgstreamer-plugins-base0.10-dev not found.
So i remove both and execute the command again and it was successful.
Now to with process as mention document and execute the following command:"/configure -device linux-beagleboard-g++ -device-option CROSS_COMPILE=/opt/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/bbb-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5bbb -hostprefix /usr/local/qt5bbb -no-xcb -qt-zlib -no-opengl -qt-libpng -nomake examples -nomake tests -no-xkb -no-xshape -no-xsync -no-xcursor -no-xfixes -no-xrandr -no-kms -no-eglfs -no-xcb -no-accessibility -no-opengl -skip multimedia -skip webkit -no-gui -no-widgets -no-egl -no-openvg -openssl -no-qml-debug -v"
Now I got an error while building the whole Qt framework as mention below:
ERROR: Unknown command line option '-no-xshape'.What have I missed that process?
is that document still valid to follow.? if not please tell me whole process!Any help will be appreciated!
Thanks
@GC_Dev said in Building Qt for BeagleBone working Debian 9.5:
In that file, cross compiler tool needed but that linked not valid So I don't where should I get this file..?
From the board provider or the same for BeagleBone if it is compatible.
"Anyway while executing this command" - where? You need these packages for your target device, not host. Usually you install needed packages on your device and use its root file system as sysroot on your host to cross compile.
"ERROR: Unknown command line option '-no-xshape'." - simply remove -no-xshape from configure call.
-
Hi jsulm,
Thanks for reply,where should i searched complier tool for beaglebone? I have searched lot but i didnt find anything. share link if you anyone for compiler tool.
I mount sd card in a host that pointing to rootfs of device.
i have remove -no-xshape and then i got again error like "ERROR: Unknown command line option '-no-xsync'."so i remove " -no-xsync -no-xcursor -no-xfixes -no-xrandr -no-kms -no-eglfs -no-xcb -no-accessibility -no-opengl" and execute below command:
"sudo ./configure -device linux-beagleboard-g++ -device-option CROSS_COMPILE=/opt/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/bbb-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5bbb -hostprefix /usr/local/qt5bbb -no-xcb -qt-zlib -no-opengl -qt-libpng -nomake examples -nomake tests -no-xkb -skip multimedia -skip webkit -no-gui -no-widgets -no-egl -no-openvg -openssl -no-qml-debug -v"
i got new error now:
"Checking for valid makespec... Note: Also available for Linux: linux-clang linux-icc
ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken."This is my fine execution for above error:
"sudo ./configure -device linux-beagleboard-g++ -device-option CROSS_COMPILE=/opt/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/bbb-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5bbb -hostprefix /usr/local/qt5bbb -no-xcb -qt-zlib -no-opengl -qt-libpng -nomake examples -nomake tests -no-xkb -no-gui -no-widgets -no-egl -no-openvg -openssl"
Thanks
-
Hi jsulm,
Thanks for reply,where should i searched complier tool for beaglebone? I have searched lot but i didnt find anything. share link if you anyone for compiler tool.
I mount sd card in a host that pointing to rootfs of device.
i have remove -no-xshape and then i got again error like "ERROR: Unknown command line option '-no-xsync'."so i remove " -no-xsync -no-xcursor -no-xfixes -no-xrandr -no-kms -no-eglfs -no-xcb -no-accessibility -no-opengl" and execute below command:
"sudo ./configure -device linux-beagleboard-g++ -device-option CROSS_COMPILE=/opt/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/bbb-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5bbb -hostprefix /usr/local/qt5bbb -no-xcb -qt-zlib -no-opengl -qt-libpng -nomake examples -nomake tests -no-xkb -skip multimedia -skip webkit -no-gui -no-widgets -no-egl -no-openvg -openssl -no-qml-debug -v"
i got new error now:
"Checking for valid makespec... Note: Also available for Linux: linux-clang linux-icc
ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken."This is my fine execution for above error:
"sudo ./configure -device linux-beagleboard-g++ -device-option CROSS_COMPILE=/opt/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/bbb-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5bbb -hostprefix /usr/local/qt5bbb -no-xcb -qt-zlib -no-opengl -qt-libpng -nomake examples -nomake tests -no-xkb -no-gui -no-widgets -no-egl -no-openvg -openssl"
Thanks
@GC_Dev said in Building Qt for BeagleBone working Debian 9.5:
where should i searched complier tool for beaglebone?
Google says https://github.com/tshakthipradeep/BBB/wiki/Chapter-1:-BeagleBone-Black-SDK-Download-&-Installation
"ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken."" - well, if you don't have the toolchain for your device (compiler) then it is not going to work.
You provided this: CROSS_COMPILE=/opt/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- does it exist and is executable?
You can add -v parameter to configure call to get more information about what is going on. -
jsulm,
yes, it is executable and already in that folder.
Can you tell me the whole process for building QT for Beaglebone?.
because I am getting a new error every time when I build.Build is completed and i got qmake in /usr/local/qt5bbb_1/bin
But while configuring Qt Version in Qtcreater apps, it's showing :"Name:
Qt 5.12.3 (qt5bbb_1)
Invalid Qt version"What is the problem here?
Does Qt5.12.3 possible to use with Debian 9.5 running beaglebone?.can anyone tell me how to build Qt 5.12.3 for BeagleBone running debian 9.5
-
jsulm,
yes, it is executable and already in that folder.
Can you tell me the whole process for building QT for Beaglebone?.
because I am getting a new error every time when I build.Build is completed and i got qmake in /usr/local/qt5bbb_1/bin
But while configuring Qt Version in Qtcreater apps, it's showing :"Name:
Qt 5.12.3 (qt5bbb_1)
Invalid Qt version"What is the problem here?
Does Qt5.12.3 possible to use with Debian 9.5 running beaglebone?.can anyone tell me how to build Qt 5.12.3 for BeagleBone running debian 9.5
@GC_Dev said in Building Qt for BeagleBone working Debian 9.5:
What is the problem here?
Where does it say the Qt version is invalid?
If you built Qt for your device then you need to configure a Kit in QtCreator. In that Kit you need to select same compiler as you used for Qt and your self built Qt. -
jsulm,
Its showing i Qt creater apps while configuring complier in kit section and when i select the my built compiler,its shown as invalid.
i have one question that debian on device having compiler version:
"arm-linux-gnueabihf-g++ (Debian 6.3.0-18+deb9u1) 6.3.0 20170516"and my host machine having complier that i have downloaded from linaro site(gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf):
"arm-linux-gnueabihf-gcc (Linaro GCC 5.5-2017.10) 5.5.0"
if you see both compiler are different. is that matter here.?
-
jsulm,
Its showing i Qt creater apps while configuring complier in kit section and when i select the my built compiler,its shown as invalid.
i have one question that debian on device having compiler version:
"arm-linux-gnueabihf-g++ (Debian 6.3.0-18+deb9u1) 6.3.0 20170516"and my host machine having complier that i have downloaded from linaro site(gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf):
"arm-linux-gnueabihf-gcc (Linaro GCC 5.5-2017.10) 5.5.0"
if you see both compiler are different. is that matter here.?
-
Jsulm,
I gussed that i have solved building problem by using the same compiler i.e. (gcc-linaro- 6.3.1-x86_64_arm-linux-gnueabihf_).
its build successfully and created the executable file but now new error arrived.In QT created, When i run the program its start to deploying and showing this error:
"
17:44:31: Starting /home/debian/Helloworld_BBB ...
qt.qpa.plugin: Could not find the Qt platform plugin "eglfs" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.Available platform plugins are: linuxfb, minimal, offscreen, vnc.
"
So what did i miss again? -
jsulm,
here is my configuration summaries:
Configure summary:Building on: linux-g++ (x86_64, CPU features: mmx sse sse2)
Building for: devices/linux-beagleboard-g++ (arm, CPU features: neon)
Target compiler: gcc 6.3.1
Configuration: cross_compile use_gold_linker compile_examples enable_new_dtags largefile neon precompile_header shared rpath release c++11 c++14 concurrent dbus reduce_exports release_tools stl
Build options:
Mode ................................... release; optimized tools
Optimize release build for size ........ no
Building shared libraries .............. yes
Using C standard ....................... C11
Using C++ standard ..................... C++14
Using ccache ........................... no
Using gold linker ...................... yes
Using new DTAGS ........................ yes
Using precompiled headers .............. yes
Using LTCG ............................. no
Target compiler supports:
NEON ................................. yes
Build parts ............................ libs
Qt modules and options:
Qt Concurrent .......................... yes
Qt D-Bus ............................... yes
Qt D-Bus directly linked to libdbus .... no
Qt Gui ................................. yes
Qt Network ............................. yes
Qt Sql ................................. yes
Qt Testlib ............................. yes
Qt Widgets ............................. yes
Qt Xml ................................. yes
Support enabled for:
Using pkg-config ....................... yes
udev ................................... yes
Using system zlib ...................... yes
Qt Core:
DoubleConversion ....................... yes
Using system DoubleConversion ........ no
GLib ................................... no
iconv .................................. yes
ICU .................................... no
Tracing backend ........................ <none>
Logging backends:
journald ............................. no
syslog ............................... no
slog2 ................................ no
Using system PCRE2 ..................... no
Qt Network:
getifaddrs() ........................... yes
IPv6 ifname ............................ yes
libproxy ............................... no
Linux AF_NETLINK ....................... yes
OpenSSL ................................ no
Qt directly linked to OpenSSL ........ no
OpenSSL 1.1 ............................ no
DTLS ................................... no
SCTP ................................... no
Use system proxies ..................... yes
Qt Gui:
Accessibility .......................... yes
FreeType ............................... yes
Using system FreeType ................ no
HarfBuzz ............................... yes
Using system HarfBuzz ................ no
Fontconfig ............................. no
Image formats:
GIF .................................. yes
ICO .................................. yes
JPEG ................................. yes
Using system libjpeg ............... yes
PNG .................................. yes
Using system libpng ................ yes
EGL .................................... no
OpenVG ................................. no
OpenGL:
Desktop OpenGL ....................... no
OpenGL ES 2.0 ........................ no
OpenGL ES 3.0 ........................ no
OpenGL ES 3.1 ........................ no
OpenGL ES 3.2 ........................ no
Vulkan ................................. no
Session Management ..................... yes
Features used by QPA backends:
evdev .................................. yes
libinput ............................... no
INTEGRITY HID .......................... no
mtdev .................................. no
tslib .................................. no
xkbcommon .............................. no
X11 specific:
XLib ................................. no
XCB Xlib ............................. no
EGL on X11 ........................... no
QPA backends:
DirectFB ............................... no
EGLFS .................................. no
LinuxFB ................................ yes
VNC .................................... yes
Mir client ............................. no
Qt Sql:
SQL item models ........................ yes
Qt Widgets:
GTK+ ................................... no
Styles ................................. Fusion Windows
Qt PrintSupport:
CUPS ................................... no
Qt Sql Drivers:
DB2 (IBM) .............................. no
InterBase .............................. no
MySql .................................. no
OCI (Oracle) ........................... no
ODBC ................................... no
PostgreSQL ............................. no
SQLite2 ................................ no
SQLite ................................. yes
Using system provided SQLite ......... no
TDS (Sybase) ........................... no
Qt Testlib:
Tester for item models ................. yesif you see above its showing EGLFS .................................. no so thats problem i guessed.
So how to add that libraries and how can i make it yes in configuration.? -
jsulm,
here is my configuration summaries:
Configure summary:Building on: linux-g++ (x86_64, CPU features: mmx sse sse2)
Building for: devices/linux-beagleboard-g++ (arm, CPU features: neon)
Target compiler: gcc 6.3.1
Configuration: cross_compile use_gold_linker compile_examples enable_new_dtags largefile neon precompile_header shared rpath release c++11 c++14 concurrent dbus reduce_exports release_tools stl
Build options:
Mode ................................... release; optimized tools
Optimize release build for size ........ no
Building shared libraries .............. yes
Using C standard ....................... C11
Using C++ standard ..................... C++14
Using ccache ........................... no
Using gold linker ...................... yes
Using new DTAGS ........................ yes
Using precompiled headers .............. yes
Using LTCG ............................. no
Target compiler supports:
NEON ................................. yes
Build parts ............................ libs
Qt modules and options:
Qt Concurrent .......................... yes
Qt D-Bus ............................... yes
Qt D-Bus directly linked to libdbus .... no
Qt Gui ................................. yes
Qt Network ............................. yes
Qt Sql ................................. yes
Qt Testlib ............................. yes
Qt Widgets ............................. yes
Qt Xml ................................. yes
Support enabled for:
Using pkg-config ....................... yes
udev ................................... yes
Using system zlib ...................... yes
Qt Core:
DoubleConversion ....................... yes
Using system DoubleConversion ........ no
GLib ................................... no
iconv .................................. yes
ICU .................................... no
Tracing backend ........................ <none>
Logging backends:
journald ............................. no
syslog ............................... no
slog2 ................................ no
Using system PCRE2 ..................... no
Qt Network:
getifaddrs() ........................... yes
IPv6 ifname ............................ yes
libproxy ............................... no
Linux AF_NETLINK ....................... yes
OpenSSL ................................ no
Qt directly linked to OpenSSL ........ no
OpenSSL 1.1 ............................ no
DTLS ................................... no
SCTP ................................... no
Use system proxies ..................... yes
Qt Gui:
Accessibility .......................... yes
FreeType ............................... yes
Using system FreeType ................ no
HarfBuzz ............................... yes
Using system HarfBuzz ................ no
Fontconfig ............................. no
Image formats:
GIF .................................. yes
ICO .................................. yes
JPEG ................................. yes
Using system libjpeg ............... yes
PNG .................................. yes
Using system libpng ................ yes
EGL .................................... no
OpenVG ................................. no
OpenGL:
Desktop OpenGL ....................... no
OpenGL ES 2.0 ........................ no
OpenGL ES 3.0 ........................ no
OpenGL ES 3.1 ........................ no
OpenGL ES 3.2 ........................ no
Vulkan ................................. no
Session Management ..................... yes
Features used by QPA backends:
evdev .................................. yes
libinput ............................... no
INTEGRITY HID .......................... no
mtdev .................................. no
tslib .................................. no
xkbcommon .............................. no
X11 specific:
XLib ................................. no
XCB Xlib ............................. no
EGL on X11 ........................... no
QPA backends:
DirectFB ............................... no
EGLFS .................................. no
LinuxFB ................................ yes
VNC .................................... yes
Mir client ............................. no
Qt Sql:
SQL item models ........................ yes
Qt Widgets:
GTK+ ................................... no
Styles ................................. Fusion Windows
Qt PrintSupport:
CUPS ................................... no
Qt Sql Drivers:
DB2 (IBM) .............................. no
InterBase .............................. no
MySql .................................. no
OCI (Oracle) ........................... no
ODBC ................................... no
PostgreSQL ............................. no
SQLite2 ................................ no
SQLite ................................. yes
Using system provided SQLite ......... no
TDS (Sybase) ........................... no
Qt Testlib:
Tester for item models ................. yesif you see above its showing EGLFS .................................. no so thats problem i guessed.
So how to add that libraries and how can i make it yes in configuration.? -
jsulm,
I just want to run my application beaglebone so i dont mind with any pulgins.
As i mention it showing error while deploying on beaglebone from QT creater apps:qt.qpa.plugin: Could not find the Qt platform plugin "eglfs" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.So How can i solve this..?
-
jsulm,
I just want to run my application beaglebone so i dont mind with any pulgins.
As i mention it showing error while deploying on beaglebone from QT creater apps:qt.qpa.plugin: Could not find the Qt platform plugin "eglfs" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.So How can i solve this..?
@GC_Dev As I said try to use other platform plug-in, for example linuxfb if you're using framebuffer: add "-platform linuxfb" when calling your app.
You should also know what is actually used on your device (framebuffer, X11, ...). -
-
jsulm,
I am a little bit confuse Where should i add "-platform linuxfb"? is in QT creator or somewhere else?
As deploying from Qtcreater i don't find such an option there.
i don't know which one using either framebuffer or X11?
can you help me out?@GC_Dev said in Building Qt for BeagleBone working Debian 9.5:
Where should i add
As parameter to your application when you start it.
"i don't know which one using either framebuffer or X11?
can you help me out?" - no I can't. I have no idea what exactly you're using and what is running on that device. You should know or find out. -
jsulm,
I am a little bit confuse Where should i add "-platform linuxfb"? is in QT creator or somewhere else?
As deploying from Qtcreater i don't find such an option there.
i don't know which one using either framebuffer or X11?
can you help me out?@GC_Dev said in Building Qt for BeagleBone working Debian 9.5:
i add "-platform linuxfb"? is in QT creator or somewhere else?
try running your app from command line:
/path/to/my/app -platform linuxfb
-
Hi,
kind of late but I solve ithttps://comarius.blogspot.com/2019/08/qt-512-on-beaglebone-with-full-egl-no-x.html