Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board: (16 Items)
   
Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Has anyone run the prebuilt objects on the fREESCALE imx28evk?
I can get the system to start loading a demo (eg 'mainwindow') but it appears unable to complete loading the dlls 
required. The process stops as follows (using ldd to illustrate the laoding problem):-
# ldd /fs/Qt_mx28/embeddeddialogs
/fs/Qt_mx28/embeddeddialogs:
        libQtGui.so.4 => /fs/Qt_mx28/lib/libQtGui.so.4 (0x1100000)
        libQtNetwork.so.4 => /fs/Qt_mx28/lib/libQtNetwork.so.4 (0x1e00000)
        libsocket.so.3 => /dev/shmem/libsocket.so.3 (0x1080000)
ldd:FATAL: Could not load library libQtCore.so.4

Is this simply that the 32MByte process space limitation prevents the dlls loading?
Thanks.
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Just as a sanity check, you have installed the "arm" libraries, and not the armv7 libraries.. ?
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Hi Dennis,
Yes I have put the binaries in their correct directories. For mx28 I use the armle.
For the printout with this post I had the objects on a usb stick for convenience of testing but  I have built it in an 
ifs and had the same result. I am literally using only the libs and built programs supplied in the qt_qnx_2011-02-24b.
zip
The bsp for the EVK board is straight from the QNX bsp's and the ifs is built with the QNX system builder.
My IDE is 650 (not the SP1).
I have also built an iMX53 on a different EVK with the armv7 libs and that works and presents a screen for qtdemo and 
mainwindow so I know I've got the right structure.
Thanks.
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Roy-

Sounds like you have the basics.  Does "vsync" run on your board?

Dennis
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Roy-

I suppose it may be possible you are running into the 32M per process limit.

I took a look at physical memory use on beagle-xm.  With cEasy (or qTstat or aMeter or speedo) running on beagle, 
physical memory use goes up by about 30M.

With webvu (webkit) on beagle memory use goes up by about 46M !

It looks like you 'might' squeak under the ARM 32M virtual address limit (pre-arm-v6) if you use QtDeclarative.  However
, without QtDeclarative, memory demands should be lower.
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Dennis,
Thanks for your response.
It is certainly interesting to see the amount of memory required to run even simple apps.
Re your comments, at present I am not running a Photon system which I believe would be required for vsysnc.
I am also only trying to mount the prebuilt Qt apps and I am not building apps from source yet.
Essentially then I am putting the ifs together for a demo of Qt.
Everything seems to point to lack of lib space hence my interest in determining if any other users are running on imx28.

A QNX ticket has confirmed the 32M limitation but the libs seem to fail on a cumulative total of 18-22Mbytes of dll size
.
Perhaps there is an internal limit to the amount of dll space which could be increased?
It does seem however the iMX28 is probably not man enough for the job.
However if you have any revelations I would love to hear them!
Many thanks,
Roy.
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
>>>I am not running a Photon system which I believe would be required for vsysnc.
Roy, vsync and opengl apps like egl-gears write to "gf" directly and do not require photon.  

The reason I suggested these kind of apps was to make sure that "gf" graphics are functioning correctly on your test 
target.  They are sort of a pre-requisite for Qt functionality.  (Note vsync requires two layers - not sure of your 
target - but I egl-gears should work on one layer.)

>>>I am also only trying to mount the prebuilt Qt apps
Are the apps "debug" versions?  A debug version can be several hundred kbytes while a stripped version is usually ten's 
of kbytes.
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Dennis,
I have now got the mainwindow part of qtdemo to run (don't know what my issue was). However I still have the "ldd:FATAL:
 Could not load library libQtNetwork.so.4" trying to run qtdemo. Full ldd printout is:-
# ldd /proc/boot/qtdemo
/proc/boot/qtdemo:
        libQtHelp.so.4 => /proc/boot/libQtHelp.so.4.7.1 (0x1080000)
        libQtDeclarative.so.4 => /proc/boot/libQtDeclarative.so.4.7.1 (0x1200000)
        libQtScript.so.4 => /proc/boot/libQtScript.so.4.7.1 (0x1600000)
        libQtSvg.so.4 => /proc/boot/libQtSvg.so.4.7.1 (0x1140000)
        libQtXmlPatterns.so.4 => /proc/boot/libQtXmlPatterns.so.4.7.1 (0x1900000)
        libQtSql.so.4 => /proc/boot/libQtSql.so.4.7.1 (0x1850000)
        libQtXml.so.4 => /proc/boot/libQtXml.so.4.7.1 (0x1ec0000)
        libQtGui.so.4 => /proc/boot/libQtGui.so.4.7.1 (0x200000)
ldd:FATAL: Could not load library libQtNetwork.so.4

At ~27MB before the libQtNetwork load attempt, that must be the 32MB limit!
Thanks for your help and suggestions.
Roy.
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
>>> libQtDeclarative.so.4 => /proc/boot/libQtDeclarative.so.4.7.1 (0x1200000)

Your last post shows you are loading a QtDeclarative app.  I believe if you find a "legacy" app the library requirements
 will be much lower.
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Dennis,
Crossed over responses there.
Yes, vsync does run egl-gears doesn't
# egl-gears
Couldn't find a compatible frame buffer configuration on layer 0
# egl-gears-lite
Couldn't find a compatible frame buffer configuration on layer 0

I have one query re mainwindow as it doesn't show the text in the headings.
I run it and get the responses as follows:-
# mainwindow -qws
QQnxScreen: Attached to Device, number of displays: 1
QQnxScreen: Attached to Display 0, resolution 800x480, refresh 60 Hz
QFont::setPointSize: Point size <= 0 (-2), must be greater than 0
QFont::setPointSize: Point size <= 0 (-2), must be greater than 0
QFont::setPointSize: Point size <= 0 (-2), must be greater than 0
QFont::setPointSize: Point size <= 0 (-2), must be greater than 0
QFont::setPointSize: Point size <= 0 (-2), must be greater than 0
QFont::setPointSize: Point size <= 0 (-2), must be greater than 0
QFont::setPointSize: Point size <= 0 (-2), must be greater than 0
QFont::setPointSize: Point size <= 0 (-2), must be greater than 0
QFont::setPointSize: Point size <= 0 (-2), must be greater than 0

Roy.
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Re post99986, will do.
Thanks Roy.
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
vsync running is enough verification of the graphics.

If the fonts don't load, maybe they are not found on the target?
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Dennis,
I have libfont.so and libfont.so.1 but other than that what else would be needed?
Thanks.
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
You need the font files themselves!  

For 4.7.1, Qt seems to use photon fonts - you must  supply this directory /usr/photon/font_repository 
and its files.

For 4.8.x versions I populate only
/usr/local/Trolltech/QtEmbedded-4.8.0-arm/lib/fonts

Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Dennis,
I have (and always had) the font files in place. Here is some detail:-
# ls -l /usr/photon/font_repository
total 93
-rwxrwxrwx  1 root      0               210 Mar 19  2013 fontdir
-rwxrwxrwx  1 root      0             12393 Mar 20  2000 pcterm12.phf
-rwxrwxrwx  1 root      0             12905 Mar 20  2000 pcterm14.phf
-rwxrwxrwx  1 root      0             17437 May 31  2004 pcterm20.phf
-rwxrwxrwx  1 root      0              2817 Mar 17  2003 phcursor.phf
# cat /usr/photon/font_repository/fontdir
pcterm12,.phf,PC Terminal,12,,0000-00FF,Nf,6x12,13K
pcterm14,.phf,PC Terminal,14,,0000-00FF,Nf,8x14,13K
pcterm20,.phf,PC Terminal,20,,0000-00FF,Nf,10x20,18K
phcursor,.phf,Photon Cursor,0,,E900-E921,Np,32x31,3K

I have tried altering PATH to point to each of the subdirs again with no change.
Is it that qtdemo which would normally be started first performs some setup?
Otherwise am I missing an environment variable perhaps?
Roy. 
Re: Running Qt 4.7.1 for QNX on the Freescale iMX28EVK board  
Dennis,
FYI The font issue was due missing .ttf fonts in /usr/photon/font_repository
also FYI to get the mouse running required QWS_MOUSE_PROTO=qnx:/dev/devi/touch0 noting that most documentation doesn't 
mention the device path being required perhaps because this is a touchscreen mounted outside of io-hid

Conclusion
iMX28EVK from Freescale does support Qt albeit in limited form.

Many thanks for your patient assistance.
Roy.