Display using VNCServer

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Display using VNCServer

11,832 Views
1990rahulreddy
Contributor IV

QT5 image is running on iMx6-SDB. How to get display on my screen <Desktop screen >using VNC Server.

Labels (4)
4 Replies

7,171 Views
b36401
NXP Employee
NXP Employee

You can use any of VNC clients to access your VNC server.

https://help.ubuntu.com/community/VNC/Clients

Have a great day,

Victor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

7,171 Views
b36401
NXP Employee
NXP Employee

You can run VNC server with the command like this on your board running QT5 image:

# /usr/bin/x11vnc -display :0

Then you will see such lines among the diasnostics:

The VNC desktop is:      imx6qdlsolo:0

PORT=5900

These lines mean that it is #0 X sevrer on the host.

Have a great day,

Victor

7,171 Views
1990rahulreddy
Contributor IV

Thanks. this is for board terminal...What to do on ubuntu terminal,

0 Kudos
Reply

7,171 Views
borisbignumb
Contributor II

Hi Rahul Reddy , if i understand correctly you have a Qt5 Application running on your iMX6-SDB board and you want to get the display on your remote screen ( i assume that's on your development PC), right ?

If it's the case, you need to have a vncserver application on your board. In my case i'm not using Yocto to build my filesystem (or the entire BSP) but Buildroot. And in Buildroot there is an application available called x11vnc which uses some x11 libraries but doesn't depend on the X server. Maybe it's also available on Yocto, i don't know.

1) How to run your Qt5 application?

For your Qt5 Application, you have to precise some options when launching your application. For instance if you want to use the linux framebuffer you can use the platform option :

./myCuteQt5App -platform linuxfb -geometry WxH & (W and H are integers, where W is the width and H the height of your application, and 'x' is the x letter not '*')

I'm not a Qt5 expert, but what i've understood is that with this option, the rendered image of your application is written to the linux framebuffer which is at /dev/fb0 (by default) and regularly updated according to the changes of your application.

There is other option according to what you want to do , which plugin (evdemouse, evdevkeyboard etc.) you want to use etc.

You can see : Qt for Embedded Linux | Qt 5.6  for more precise explanations.

2) How to remotely access to your Qt5 application?

This is the real deal because, from Qt4.x to Qt5.x the vnc plugin which was integrated was unfortunately removed :smileysad:.

So you have to find another way to access remotely to you application.

In my case as i said above, i use x11vnc. So if you launch your application like above you can launch x11vnc to remotely display your Qt5 application like this:

x11vnc -noipv6 -rawfb /dev/fb0 -clip WxH (W and H are integers, where W is the width and H the height of your application, and 'x' is the x letter not '*')

3) VNC Client

The last part, you probably know. You have to connect to your vnc server via a vnc client (i use TightVNC Client).

After launching the server you should see the port on which the server is waiting for connection and use it to connect to x11vnc and see your Cute Qt5 application :smileyhappy: .

4) Issue

Up to now, i have an issue related to this procedure. I can use my Keyboard but the mouse is not working, so it's not very convenient if you want to navigate and use your application properly . I think that's related to the way i launch the App or the server but i haven't found any solution yet.

There is a Qt forum and a thread dedicated to embedded issue. So if you have any question don't hesitate to go there , maybe you will have more interesting answers.

Good Luck!

PS: I'm a french speaker, sorry in advance for my english.