Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Run Qt 5.3 App on QNX 6.6 target: Page 1 of 2 (38 Items)
   
Run Qt 5.3 App on QNX 6.6 target  
Hello.
I'm trying to run Qt widget application on QNX 6.6 target.
What I've done is below.

- Install qt on Ubuntu 12.04 via qt-enterprise-linux-x86-qnx-5.3.1.run downloaded from Qt digia website.
- Setup QNX 6.6 + Qt 5.3, Linux + Qt 5.3 kit on QtCreator.

- Build 'helloqt' program via New Project -> Applications -> Qt Widget Application template without any modification 
that displays an empty window.
- Run 'helloqt' for linux and it works properly.
- Prepare QNX target with QNX 6.6 SDP + Graphics Patch
- Copy 'helloqt' for QNX to /root/qt5test/ on target.

- Copy below directories to /opt/qt5/ on QNX target.
  <QT_INSTALL_PATH>/5.3/qnx6-x86/lib
  <QT_INSTALL_PATH>/5.3/qnx6-x86/plugins
  <QT_INSTALL_PATH>/5.3/qnx6-x86/qml
- Add below to /root/.profile for environment setting.
  export LD_LIBRARY_PATH=/lib:/usr/lib:/lib/dll:/opt/qt5/lib:/opt/qnx6/x86/lib:/opt/qnx6/x86/usr/lib:/opt/qnx6/x86/lib/
dll
  export QQNX_PHYSICAL_SCREEN_SIZE=150,90
  export QT_PLUGIN_PATH=/opt/qt5/plugins
  export QML2_IMPORT_PATH=/opt/qt5/qml
  export GRAPHICS_ROOT=/usr/lib/graphics/intel-drm

- run '/sbin/drm-intel' on QNX target.(my target has graphic processor from intel)
- run 'screen'
- run '/root/qt5test/helloqt'


<Result>
# cd /root/qt5test/
# ./helloqt
slog2_api: cannot connect to slogger2 server...errno=No such file or directory
Error registering slogger2 buffer!
This application failed to start because it could not find or load the Qt platform plugin "qnx".

Available platform plugins are: minimal, offscreen, qnx.

Reinstalling the application may fix this problem.
Abort 
# 


- Three libraries below exist in '/opt/qt5/plugins/platforms'.
  libqminimal.so
  libqoffscreen.so
  libqqnx.so
- Result is same no matter running drm-intel or screen.

- Below is 'env' result.
_=/usr/bin/env
SSH_CONNECTION=192.168.100.150 62661 192.168.100.177 22
PATH=/sbin:/usr/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin
SHELL=/bin/sh
TMPDIR=/tmp
HOSTNAME=localhost
USER=root
PROCESSOR=x86
MAIL=/var/spool/mail/root
LD_LIBRARY_PATH=/lib:/usr/lib:/lib/dll:/opt/qt5/lib:/opt/qnx6/x86/lib:/opt/qnx6/x86/usr/lib:/opt/qnx6/x86/lib/dll
HOME=/root
SSH_CLIENT=192.168.100.150 62661 22
QNX_HOST=/
QNX_TARGET=/
GRAPHICS_ROOT=/usr/lib/graphics/intel-drm
QQNX_PHYSICAL_SCREEN_SIZE=150,90
TERM=xterm
QML2_IMPORT_PATH=/opt/qt5/qml
QT_PLUGIN_PATH=/opt/qt5/plugins
QNX_CONFIGURATION=/etc/qnx
SSH_TTY=/dev/ttyp1
SYSNAME=nto
LOGNAME=root


I'd googling but no luck and stuck on this.
Please let me know if any additional information is needed and any suggestions would be appreciated.
Re: Run Qt 5.3 App on QNX 6.6 target  
The root cause has already been posted to the console: the slogger2 service is not running the target. slogger2 is 
required for all current binary builds of Qt for QNX. Check your OS image build script and add the slogger2 service to 
the startup.

PS. Unfortunately, you will most probably not find anything via Google on that topic.
Re: Run Qt 5.3 App on QNX 6.6 target  
Thanks for reply.
With slogger2 running, it just redirect stdout messages to slog2info. Anyway one error message removed.
I posted additional result with QT_DEBUG_PLUGINS=1 as reply to my post. Thanks again.
Re: Run Qt 5.3 App on QNX 6.6 target  
In addiition to the need to start slogger2, you did not mention if you tested screen functionality.  Make sure you get 
correct graphics when you run sw-vsync and gles2-gears.  

BTW - you can read messages sent to slooger2 (all Qt debug messages) using slog2info.
Re: Run Qt 5.3 App on QNX 6.6 target  
I was on it when I posting. Anyway after setting up /usr/lib/graphics/intel-drm/graphics.conf, gles2-gear displayed 
properly now. But Qt program output is same. And output is same whether I run drm-intel and screen or not. That's why I 
thought screen stuff and Qt stuff separately.
Re: Run Qt 5.3 App on QNX 6.6 target  
> Hello.
> I'm trying to run Qt widget application on QNX 6.6 target.
> What I've done is below.
> This application failed to start because it could not find or load the Qt 
> platform plugin "qnx".

Hello,

I have the same result : trying to run my Qt 5.3 app with your Qt build
Re: Run Qt 5.3 App on QNX 6.6 target  
Hello,
As the topic is hot for me as well,l I decided to jump in.
I have experienced similar problem, but able to start an example application( came with Qt ) and also an application 
showing just a window with a button(created by myself).

I have following problems:

1) Fonts: Texts are not displayed ( empty boxes for each character ). It appears that font system is not setup properly.
 Please advise how to setup Qt font system and where to find the fonts.

2) Each one of the applications above are logging into slogger2 following:
  - QQNX: failed to open navigator pps, errno=2
  - QQnxVirtualKeyboard: Unable to open ""/pps/services/input/control" for keyboard: No such file or directory
  - QQNX failed to open buttons pps, errno=2
 
  Obviously mouse and keyboard are not setup properly and interesting why their services are expected from pps. I have 
started io-hid1? Please advise.

Thanks in forward,
Kostadin
Re: Run Qt 5.3 App on QNX 6.6 target  
>>>1) Fonts: Texts are not displayed ( empty boxes for each character ). It appears that font system is not setup 
properly.

To use the qnx freetype system with Qt, I did the following:

a. Put this in your environment
FONTCONFIG_FILE=/etc/fontconfig/local.conf

b. Create and deploy
/etc/fontconfig/local.conf

Copy C:\qnx660\target\qnx6\etc\fontconfig\fonts.conf to create local.conf
BUT change the following to use the much richer Qt5 font set...
          from
            <dir>/usr/fonts/font_repository</dir>
          to
            <dir>/opt/qt5/lib/fonts</dir>

c. Make sure you have deployed
/usr/lib/libfontconfig.so.1

d. When you build your program, make sure you use a font which is actually on the target.  Qt Creator will present a 
list of fonts from the windows host!  If you pick a font not on target, results will not be what you want.  You may have
 to add the font you want from your target to windows (so you can select it).  I always have good results with "Dejavu 
Sans" 


>>>2) Each one of the applications above are logging into slogger2 following:
  - QQNX: failed to open navigator pps, errno=2
  - QQnxVirtualKeyboard: Unable to open ""/pps/services/input/control" for keyboard: No such file or directory
  - QQNX failed to open buttons pps, errno=2

Sorry - you will just have to live with these bogus messages - unless you fix and rebuild your own libraries.  They seem
 to be vestiges of QNX-CAR2.  Input WILL function even if you see these messages.

Re: Run Qt 5.3 App on QNX 6.6 target  
Hi Danis,
Item_1-> Fonts is fixed now based on your instructions.

Still have problem with Item_2-> input.
I am starting io-hid in following way:   "io-hid -d usb /dev/io-usb/io-usb"
Before to start screen I have Keyboard input( usb keyboard ).
After screen and Qt app are started, I do not have any Input working( missing mouse cursor ).
Is there any setting for Qt, related to the Input( kbd& mouse )?
Any idea?
Thank you,
Kostadin Vardin
Re: Run Qt 5.3 App on QNX 6.6 target  
In addition, please find attached sloginfo_log.txt where you can see screen connected successfully with io-hid, but when
 I start Qt application there is no Input!
Kostadin Vardin
Attachment: Text sloginfo_log.txt 4.91 KB
Re: Run Qt 5.3 App on QNX 6.6 target  
Hi,

Have you enabled keyboard in scren configuration file ?

Nicolas
Re: Run Qt 5.3 App on QNX 6.6 target  
Please, forget my previous message. 
Re: Run Qt 5.3 App on QNX 6.6 target  
Kostadin-

This sequence starts mouse and keyboard..

io-usb -duhci -dohci -dehci
io-hid -dusb
# then start screen
drm_intel_hd
screen

To see the cursor, you must edit your graphics.conf (/usr/lib/graphics/intel-drm/graphics.conf ?) and add

cursor = on

after your "video-mode =" line ... but still between begin and end for "display" - for example

  begin display 2
    video-mode = 800 x 480 @ 60
    cursor = on
    stack-size = 2048
  end display

The attached Qt5 program (for x86) will verify kbd input. 
 Launch as...
./inputck -platform qnx:no-fullscreen



Attachment: Text inputck 61.22 KB
Re: Run Qt 5.3 App on QNX 6.6 target  
Hi Dennis,
I implemented the changes to graphics.conf and also start-up of io-usb and io-hid.
Now I can see the mouse cursor at the center of the screen, but it does not move.
I started "inputck" test program. It captures the keyboard input, but not the mouse.

Kostadin
Re: Run Qt 5.3 App on QNX 6.6 target  
Does hidview show the device?

# hidview
HIDD v1.00, v1.00 DDK

Device Address       : 1
Vendor               : 0x413c (DELL)
Product              : 0x2005 (DELL USB Keyboard)
Version              : r1.10
Usage                : Keyboard

Device Address       : 2
Vendor               : 0x045e (Microsoft)
Product              : 0x0040 (Microsoft Wheel Mouse Optical®)
Version              : r1.10
Usage                : Mouse
Re: Run Qt 5.3 App on QNX 6.6 target  
Here is what hidview captures in "hidview_log.txt".
Attachment: Text hidview_log.txt 565 bytes
Re: Run Qt 5.3 App on QNX 6.6 target  
I found the problem.
In graphics.conf file the global input parameter shall include both keyboard and mouse!
Here is the excerpt:

  begin globals
    blit-config = gles2blt
    input = keyboard mouse
    stack-size = 2048
  end globals

Cheers!
Re: Run Qt 5.3 App on QNX 6.6 target  
Glad that fixed it.  Handling is inconsistent regarding this... miine works without it.
Re: Run Qt 5.3 App on QNX 6.6 target  
I'm trying to use touch screen at QNX 6.6 / Qt5.
I've followed your answers and then I'm seeing calib-touch screen now.
But I can't move the cursor or click.

After launching below programs in rc.local, calib-touch program could be run.
But touch doesn't work and cannot calibrate.

With QNX 6.5 / Qt4 touch screen works fine.

Do you have any idea what's wrong?

io-usb -duhci -dohci -dehci
io-hid -dusb -degalax
devi-hid kbd touch

drm-intel &
screen &

Here is hidview result:
# hidview

Device Address       : 0
Vendor               : 0x0eef (eGalax Inc.)
Product              : 0x0001
Version              : r1.10
Usage                : Pointer

Device Address       : 1
Vendor               : 0x045e (Microsoft)
Product              : 0x0752 (Wired Keyboard 400)
Version              : r1.10
Usage                : Keyboard

And this is my env variables:
# env

_=/usr/bin/env
SSH_CONNECTION=192.168.100.118 64713 192.168.100.177 22
PATH=/sbin:/usr/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin
SHELL=/bin/sh
TMPDIR=/tmp
HOSTNAME=localhost
USER=root
PROCESSOR=x86
MAIL=/var/spool/mail/root
LD_LIBRARY_PATH=/prob/boot:/lib:/usr/lib:/lib/dll:/opt/qt5/lib:/opt/qnx6/x86/lib:/opt/qnx6/x86/usr/lib:/opt/qnx6/x86/lib
/dll:/usr/lib/graphics/intel-drm:/opt/qt5/plugins/platforms
QT_DEBUG_PLUGINS=1
HOME=/root
SSH_CLIENT=192.168.100.118 64713 22
QNX_HOST=/
QT_QPA_PLATFORM=qnx:no-fullscreen
QNX_TARGET=/
GRAPHICS_ROOT=/usr/lib/graphics/intel-drm
QQNX_PHYSICAL_SCREEN_SIZE=200,117
TERM=xterm
QML_IMPORT_PATH=/opt/qt5/imports
QML2_IMPORT_PATH=/opt/qt5/qml
QT_PLUGIN_PATH=/opt/qt5/plugins
FONTCONFIG_FILE=/etc/fontconfig/local.conf
QNX_CONFIGURATION=/etc/qnx
SSH_TTY=/dev/ttyp0
SYSNAME=nto
LOGNAME=root


This is my /usr/lib/graphics/intel-drm/graphics.conf:
begin khronos

  begin egl display 1
    egl-dlls = libEGL-mesa.so
    glesv1-dlls = libglapi-mesa.so libGLESv1_CM-mesa.so
    glesv2-dlls = libglapi-mesa.so libGLESv2-mesa.so
  end egl display

  begin wfd device 1
    wfd-dlls = libwfdcfg-sample.so libWFDintel-drm.so

    # Run "drm-probe-displays" to list the available displays and pipelines,
    # and "use $GRAPHICS_ROOT/libWFDintel-drm.so" for more information on
    # these driver-specific settings.

    # Pipeline IDs 1 to 9 are used for DRM CRTCs.  One should be assigned
    # to each display that will be used.
    pipeline1-display = 1
    # Pipeline IDs 10 and above are used for DRM planes.  A plane can only
    # be used on a display with an active CRTC.
    pipeline10-display = 1
  end wfd device

end khronos

begin winmgr

  begin globals
    input = keyboard mouse
    # Adjust the stack size of Screen's resmgr threads.  The default size
    # is insufficient for blitters/compositors using Mesa (e.g., gles2blt).
    blit-config = gles2blt
  end globals

  begin display 1
    video-mode = 1024 x 600 @ 75
    # Adjust the stack size of Screen's composition thread; required when the
    # display's framebuffer uses Mesa (e.g. "usage = gles2"), as noted above.
    cursor = on
    stack-size = 4096  # in units of 1024 bytes
  end display

  begin class framebuffer
    # Be sure to configure the "pipeline%d-display" options (above) so the
    # specified display and pipeline are bindable.  Normally a framebuffer
    # will use a CRTC pipeline.
    display = 1
    pipeline = 1
    format = rgba8888
    usage = gles2blt
  end class

  begin mtouch                                                      
    driver = devi                                           
    options = height=600,width=1024                           
    display = 1                                               
  end mtouch

end winmgr
Re: Run Qt 5.3 App on QNX 6.6 target  
> Copy C:\qnx660\target\qnx6\etc\fontconfig\fonts.conf to create local.conf
> BUT change the following to use the much richer Qt5 font set...
>           from
>             <dir>/usr/fonts/font_repository</dir>
>           to
>             <dir>/opt/qt5/lib/fonts</dir>
> 

With the Qt 5.3 install from this site, it seems fonts are no longer coming with Qt. The directory "fonts" does not 
exist under lib any more. Where are users supposed to get the fonts from now?

Cheers,

- Malte
Re: Run Qt 5.3 App on QNX 6.6 target  
QNX-supplied fonts are under host directory c:\QNX660\target\qnx6\usr\fonts\font_repository\, so using the default fonts
.conf will provide "some" fonts.

You should be able to pull Qt-supplied fonts from any Qt distro.
Re: Run Qt 5.3 App on QNX 6.6 target  
@Malte. If Qt has been configured for a build using fontconfig, the install process does not includes fonts.
Re: Run Qt 5.3 App on QNX 6.6 target  
> @Malte. If Qt has been configured for a build using fontconfig, the install 
> process does not includes fonts.

Hi Vladimir,

I guess the Qt 5.3 bundle provided here on Foundry27 has been built to use fontconfig. So there are no fonts; I guess 
because on other OSs as soon as you say "fontconfig" it is assumed that you have all the fonts required?

So how does this work in practice for QNX now? The new QNX 5.3 installer, coming with Qt Creator auto-detecting QNX 6.6 
SDP and even including examples AND binaries for ARM and x86, is my personal favourite. It gives me "all I need", 
fantastic. Except for the fonts :). So when I build some of the examples, they require fonts. Where to go from here?

Cheers,

- Malte
Re: Run Qt 5.3 App on QNX 6.6 target  
> > @Malte. If Qt has been configured for a build using fontconfig, the install 
> 
> > process does not includes fonts.
> 
> Hi Vladimir,
> 
> I guess the Qt 5.3 bundle provided here on Foundry27 has been built to use 
> fontconfig. So there are no fonts; I guess because on other OSs as soon as you
>  say "fontconfig" it is assumed that you have all the fonts required?
> 
> So how does this work in practice for QNX now? The new QNX 5.3 installer, 
> coming with Qt Creator auto-detecting QNX 6.6 SDP and even including examples 
> AND binaries for ARM and x86, is my personal favourite. It gives me "all I 
> need", fantastic. Except for the fonts :). So when I build some of the 
> examples, they require fonts. Where to go from here?

Ok, it seems some basic fonts are now with QNX SDP 6.6 under /usr/fonts/font_repository. I copied these to my target and
 in the example I built I now see text. Great.

Cheers,

- Malte




Re: Run Qt 5.3 App on QNX 6.6 target  
There should be no need for moving fonts back and forth, when Qt is configured to use fontconfig and the "QNX target" 
has a "standard layout".

Generally, the problem is that there is no standard for QNX targets: people do their own OS images and get surprised 
that things stop working. Some people see this as an advantage of flexibility, but for complex frameworks with tons of 
equations on the table, like Qt, this advantage can quickly become a nightmare. The length of this thread is another 
sign for this. QNX should start standardizing the content and configuration of OS images for selected application cases.
 IMHO, this should include a list of OS components and services required for a given framework (here Qt) to run it as 
expected. This issue has already been addressed in QNX. 

In particular, the recent release of Qt 5.3.0 installers provided here was explicitly saying that it can be used for "Qt
 applications for the QNX SDP 6.6 OS and Apps & Media 1.0 software releases". Unfortunately, it is did not mention this 
also includes a certain target OS image which is provided as "sample" in Apps & Media 1.0. Qt in that and in any other 
binary build in the future is not guaranteed to work on any target, just on those which are close to the one provided in
 Apps & Media 1.0. Anything more generic is just technically not possible...