QT embedded simulate (up,down,left,right,enter) navigation
-
Okay thats sound good, maybe I need to give qt5 a second try or use also qt4 on the desktop.
I am not a the system right now but as I have in mind starting the application with
./test -qpa linuxFB:/dev/fb0
and then i got the DBUS error. Maybe my cmdline is also wrong. QT5 cross compile was not plug and play for me.
Do you remember how you have realized inputs with this few buttons?
-
The exact error messages would be useful. Just to rule out the obvious: do you have the dbus daemon running ?
The UI was written to be very keyboard friendly and had a lot thinking about focusing so as to make sense when moving from up to down and left to right. What kind of UI will that be ?
-
Okay, seems to be DBUS not running correctly:
./TestQTCross -platform linuxfb:fb"/dev/fb0"
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
process 2302: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
D-Bus not built with -rdynamic so unable to print a backtrace
Aborted (core dumped)is the DBUS really needed for qt5 embedded? since it is not in 4.8?
-
The DBus module is also included in the 4 series however AFAIK it should not be mandatory for the linuxfb plugin but you also have another problem with iconv_open. Are you using the same version of libraries on your target than the one used to build Qt 5 ?
-
Hi,
yes i am using the same ones.The configure command looks as follows:
./configure -release -opensource -confirm-license -arch arm -xplatform linux-arm-gnueabi-g++ -no-icu -no-pch -prefix /usr/local/Trolltech/qt5 -skip qtwebkit-examples -skip qtwebkit
I have adapted the qmake.conf of the linux-arm-gnueabi-g++ to fit my cross compile toolchain.
Do you see any issue?
-
which platform plugins are built ?
-
How did you install Qt on your board ?
-
I normally just move over the files of the given configure path /usr/local/Trolltech/qt5 to the target board into the same directory.
I found out if I use dbus-uuidgen -ensure before calling the app it starts up without the DBUS warning but the icon warning is still there.
Also I cannot configure qt to work with webkit (see different post).
Regards
-
Did you use your device root filesystem to cross-compile build Qt 5 ? If not, you have probably used a different set of library than the one that's being used on your board
-
Add
-sysroot /path/to/your/mounted/device/filesytem
to your configure options -
Thanks,
I have added it but now i get more and more errors.
So i changed back my config to following:
./configure -xplatform linux-arm-gnueabi-g++ -release -opensource -confirm-license -prefix /usr/local/Trolltech/qt5 -make libs -skip qtwebkit-examples -nomake tests -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -linuxfb -no-opengl -icuConfigure summary
Building on: linux-g++ (i386, CPU features: none detected)
Building for: linux-arm-gnueabi-g++ (arm, CPU features: neon)
Platform notes:- Also available for Linux: linux-kcc linux-icc linux-cxx
Build options:
Configuration .......... accessibility alsa audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent cross_compile dbus evdev eventfd freetype full-config getaddrinfo getifaddrs harfbuzz iconv icu inotify ipv6ifname large-config largefile linuxfb medium-config minimal-config mremap neon nis no-pkg-config openssl pcre png posix_fallocate precompile_header qpa qpa reduce_exports release rpath shared small-config xlib xrender zlib
Build parts ............ libs
Mode ................... release
Using C++11 ............ yes
Using gold linker....... no
Using PCH .............. yes
Target compiler supports:
Neon ................. yesQt modules and options:
Qt D-Bus ............... yes (loading dbus-1 at runtime)
Qt Concurrent .......... yes
Qt GUI ................. yes
Qt Widgets ............. yes
Large File ............. yes
QML debugging .......... yes
Use system proxies ..... noSupport enabled for:
Accessibility .......... yes
ALSA ................... yes
CUPS ................... no
Evdev .................. yes
FontConfig ............. no
FreeType ............... qt
Glib ................... no
GTK theme .............. no
HarfBuzz ............... yes (bundled copy)
Iconv .................. yes
ICU .................... yes
Image formats:
GIF .................. yes (plugin, using bundled copy)
JPEG ................. yes (plugin, using bundled copy)
PNG .................. yes (in QtGui, using bundled copy)
journald ............... no
mtdev .................. no
Networking:
getaddrinfo .......... yes
getifaddrs ........... yes
IPv6 ifname .......... yes
OpenSSL .............. yes (loading libraries at run-time)
NIS .................... yes
OpenGL / OpenVG:
EGL .................. no
OpenGL ............... no
OpenVG ............... no
PCRE ................... yes (bundled copy)
pkg-config ............. no
PulseAudio ............. no
QPA backends:
DirectFB ............. no
EGLFS ................ no
KMS .................. no
LinuxFB .............. yes
XCB .................. no
Session management ..... yes
SQL drivers:
DB2 .................. no
InterBase ............ no
MySQL ................ no
OCI .................. no
ODBC ................. no
PostgreSQL ........... yes (plugin)
SQLite 2 ............. yes (plugin)
SQLite ............... yes (plugin, using bundled copy)
TDS .................. no
udev ................... no
xkbcommon .............. no
zlib ................... yes (bundled copy)But if I now do a make -j 4 I get an ICU warning, but ICU is needed for webkit, which I also need.
I../3rdparty/md4 -I../3rdparty/sha3 -I.moc -I../../mkspecs/linux-arm-gnueabi-g++ -o .obj/pcre16_compile.o ../3rdparty/pcre/pcre16_compile.c
tools/qtimezoneprivate_icu.cpp: In function ‘bool ucalOffsetsAtTime(void**, qint64, int*, int*)’:
tools/qtimezoneprivate_icu.cpp:145: error: ‘ucal_clone’ was not declared in this scope
tools/qtimezoneprivate_icu.cpp: In copy constructor ‘QIcuTimeZonePrivate::QIcuTimeZonePrivate(const QIcuTimeZonePrivate&)’:
tools/qtimezoneprivate_icu.cpp:285: error: ‘ucal_clone’ was not declared in this scope
tools/qtimezoneprivate_icu.cpp: In member function ‘virtual bool QIcuTimeZonePrivate::isDaylightTime(qint64) const’:
tools/qtimezoneprivate_icu.cpp:378: error: ‘ucal_clone’ was not declared in this scope
make[2]: *** [.obj/qtimezoneprivate_icu.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory/home/qt/qt-everywhere-opensource-src-5.4.1/qtbase/src/corelib' make[1]: *** [sub-corelib-make_first] Error 2 make[1]: Leaving directory
/home/qt/qt-everywhere-opensource-src-5.4.1/qtbase/src'
make: *** [sub-src-make_first] Error 2EDIT:
I have updated the icu using the following Cross Tutorial
http://thebugfreeblog.blogspot.de/2013/05/cross-building-icu-for-applications-on.htmlnow I added the following to the configure :
-icu -I /opt/icuCrossFinal/include -L /opt/icuCrossFinal/libNow I got a bit further, I also needed a new linux-atomic version.
I keep you updated on webkit configure,
-
Now I got the qtbase and webkit compiled, but If i want to start the app via
./app -qpa linuxfb:/dev/fb0 it says:
This application failed to start because it could not find or load the Qt platform plugin "xcb".
I checked the dependencies on my Ubuntu 11.04 and I found that Ubuntu is unalbe to locate :
Unable to locate package libxcb-icccm4
Unable to locate package libxcb-icccm4-devI then run the configure with -no-xcb and all worked well so far.
But now if I start the application :
./app -qpa linuxfb:fb=/dev/fb0
The screen is not using the full framebuffer (no fullscreen) it seems it is only using 2/3 of it an the rest is cut off.
With qt4 all works as expected.Any idea why this happens?
Is xcb required for a webkit usage on linuxfb?
-
The plugin might have problem to detect the screen size
-
Did you try to give the screen size to the plugin ?
-
Looks like a bug, you should check on the bug report system