Bug 782

Summary: The vnc client does not pop-up on qemumips-sato-sdk.
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Liang Wang <liangliang.wang>
Component: graphicsAssignee: Ke Yu <ke.yu>
Status: VERIFIED FIXED QA Contact:
Severity: major    
Priority: High CC: jiajun.xu, liang.li2, liangliang.wang, meta.mr.watcher, meta.watcher, sgw, yi.zhao
Version: 1.0   
Target Milestone: 1.0 M4   
Hardware: Other   
OS: mips   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Program Management Documentation change: ---

Description Liang Wang 2011-02-28 01:55:31 UTC
Testing Environment
===============================
Host: qemumips-sato-sdk
Kernel: Linux version 2.6.37.2-yocto-standard+
Image location: http://autobuilder.pokylinux.org/nightly/20110226-1/qemu/qemumips/
commit info: e08dc5aaaeba61e332caab4a3df5750df6b49ac1

Steps
===============================
1. Run command 'x11vnc -display :0.0' on target.
2. On a client, run connmand 'vncviewer 192.168.7.2:0' (TargetIp: 192.168.7.2)

Observed Result
===============================
On target after running command 'x11vnc -display :0.0'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
root@qemumips:~# x11vnc -display :0.0
###############################################################
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
#@                                                           @#
#@  **  WARNING  **  WARNING  **  WARNING  **  WARNING  **   @#
#@                                                           @#
#@        YOU ARE RUNNING X11VNC WITHOUT A PASSWORD!!        @#
#@                                                           @#
#@  This means anyone with network access to this computer   @#
#@  may be able to view and control your desktop.            @#
#@                                                           @#
#@ >>> If you did not mean to do this Press CTRL-C now!! <<< @#
#@                                                           @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
#@                                                           @#
#@  You can create an x11vnc password file by running:       @#
#@                                                           @#
#@       x11vnc -storepasswd password /path/to/passfile      @#
#@  or   x11vnc -storepasswd /path/to/passfile               @#
#@  or   x11vnc -storepasswd                                 @#
#@                                                           @#
#@  (the last one will use ~/.vnc/passwd)                    @#
#@                                                           @#
#@  and then starting x11vnc via:                            @#
#@                                                           @#
#@      x11vnc -rfbauth /path/to/passfile                    @#
#@                                                           @#
#@  an existing ~/.vnc/passwd file from another VNC          @#
#@  application will work fine too.                          @#
#@                                                           @#
#@  You can also use the -passwdfile or -passwd options.     @#
#@  (note -passwd is unsafe if local users are not trusted)  @#
#@                                                           @#
#@  Make sure any -rfbauth and -passwdfile password files    @#
#@  cannot be read by untrusted users.                       @#
#@                                                           @#
#@  Use x11vnc -usepw to automatically use your              @#
#@  ~/.vnc/passwd or ~/.vnc/passwdfile password files.       @#
#@  (and prompt you to create ~/.vnc/passwd if neither       @#
#@  file exists.)  Under -usepw, x11vnc will exit if it      @#
#@  cannot find a password to use.                           @#
#@                                                           @#
#@                                                           @#
#@  Even with a password, the subsequent VNC traffic is      @#
#@  sent in the clear.  Consider tunnelling via ssh(1):      @#
#@                                                           @#
#@    http://www.karlrunge.com/x11vnc/#tunnelling            @#
#@                                                           @#
#@  Or using the x11vnc SSL options: -ssl and -stunnel       @#
#@                                                           @#
#@  Please Read the documention for more info about          @#
#@  passwords, security, and encryption.                     @#
#@                                                           @#
#@    http://www.karlrunge.com/x11vnc/faq.html#faq-passwd    @#
#@                                                           @#
#@  To disable this warning use the -nopw option, or put     @#
#@  'nopw' on a line in your ~/.x11vncrc file.               @#
#@                                                           @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
###############################################################
28/02/2011 09:45:05 x11vnc version: 0.9.12 lastmod: 2010-09-09  pid: 349
28/02/2011 09:45:05 Using X display :0.0
28/02/2011 09:45:05 rootwin: 0x43 reswin: 0x1200001 dpy: 0x7f6e60
28/02/2011 09:45:05 
28/02/2011 09:45:05 ------------------ USEFUL INFORMATION ------------------
28/02/2011 09:45:05 X DAMAGE available on display, using it for polling hints.
28/02/2011 09:45:05   To disable this behavior use: '-noxdamage'
28/02/2011 09:45:05 
28/02/2011 09:45:05   Most compositing window managers like 'compiz' or 'beryl'
28/02/2011 09:45:05   cause X DAMAGE to fail, and so you may not see any screen
28/02/2011 09:45:05   updates via VNC.  Either disable 'compiz' (recommended) or
28/02/2011 09:45:05   supply the x11vnc '-noxdamage' command line option.
28/02/2011 09:45:05 
28/02/2011 09:45:05 Wireframing: -wireframe mode is in effect for window moves.
28/02/2011 09:45:05   If this yields undesired behavior (poor response, painting
28/02/2011 09:45:05   errors, etc) it may be disabled:
28/02/2011 09:45:05    - use '-nowf' to disable wireframing completely.
28/02/2011 09:45:05    - use '-nowcr' to disable the Copy Rectangle after the
28/02/2011 09:45:05      moved window is released in the new position.
28/02/2011 09:45:05   Also see the -help entry for tuning parameters.
28/02/2011 09:45:05   You can press 3 Alt_L's (Left "Alt" key) in a row to 
28/02/2011 09:45:05   repaint the screen, also see the -fixscreen option for
28/02/2011 09:45:05   periodic repaints.
28/02/2011 09:45:05 
28/02/2011 09:45:05 XFIXES available on display, resetting cursor mode
28/02/2011 09:45:05   to: '-cursor most'.
28/02/2011 09:45:05   to disable this behavior use: '-cursor arrow'
28/02/2011 09:45:05   or '-noxfixes'.
28/02/2011 09:45:05 using XFIXES for cursor drawing.
28/02/2011 09:45:05 GrabServer control via XTEST.
Xlib:  extension "RECORD" missing on display ":0.0".
28/02/2011 09:45:05 
28/02/2011 09:45:05 The RECORD X extension was not found on the display.
28/02/2011 09:45:05 If your system has disabled it by default, you can
28/02/2011 09:45:05 enable it to get a nice x11vnc performance speedup
28/02/2011 09:45:05 for scrolling by putting this into the "Module" section
28/02/2011 09:45:05 of /etc/X11/xorg.conf or /etc/X11/XF86Config:
28/02/2011 09:45:05 
28/02/2011 09:45:05   Section "Module"
28/02/2011 09:45:05   ...
28/02/2011 09:45:05       Load    "record"
28/02/2011 09:45:05   ...
28/02/2011 09:45:05   EndSection
28/02/2011 09:45:05 
28/02/2011 09:45:05 
28/02/2011 09:45:05 XKEYBOARD: number of keysyms per keycode 6 is greater
28/02/2011 09:45:05   than 4 and 2 keysyms are mapped above 4.
28/02/2011 09:45:05   Automatically switching to -xkb mode.
28/02/2011 09:45:05   If this makes the key mapping worse you can
28/02/2011 09:45:05   disable it with the "-noxkb" option.
28/02/2011 09:45:05   Also, remember "-remap DEAD" for accenting characters.
28/02/2011 09:45:05 
28/02/2011 09:45:05 X FBPM extension not supported.
28/02/2011 09:45:05 X display is not capable of DPMS.
28/02/2011 09:45:05 --------------------------------------------------------
28/02/2011 09:45:05 
28/02/2011 09:45:05 Default visual ID: 0x21
28/02/2011 09:45:05 Read initial data from X display into framebuffer.
28/02/2011 09:45:05 initialize_screen: fb_depth/fb_bpp/fb_Bpl 16/16/1280
28/02/2011 09:45:05 
28/02/2011 09:45:05 X display :0.0 is 16bpp depth=16 true color
28/02/2011 09:45:05 
28/02/2011 09:45:05 Autoprobing TCP port 
28/02/2011 09:45:05 Autoprobing selected port 5900
28/02/2011 09:45:05 Listening also on IPv6 port 5900 (socket 7)
28/02/2011 09:45:05 fb read rate: 33 MB/sec
28/02/2011 09:45:05 The X server says there are 10 mouse buttons.
28/02/2011 09:45:05 screen setup finished.
28/02/2011 09:45:05 
28/02/2011 09:45:05 WARNING: You are running x11vnc WITHOUT a password.  See
28/02/2011 09:45:05 WARNING: the warning message printed above for more info.
28/02/2011 09:45:05 

The VNC desktop is:      qemumips:0
PORT=5900

******************************************************************************
Have you tried the x11vnc '-ncache' VNC client-side pixel caching feature yet?

The scheme stores pixel data offscreen on the VNC viewer side for faster
retrieval.  It should work with any VNC viewer.  Try it by running:

    x11vnc -ncache 10 ...

One can also add -ncache_cr for smooth 'copyrect' window motion.
More info: http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On client after running command 'vncviewer 192.168.7.2:0'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

charles@PEK-LWANG2-D1:~$ vncviewer 192.168.7.2:0
Connected to RFB server, using protocol version 3.8
No authentication needed
Authentication successful


On *TARGET* display:

28/02/2011 09:49:02 Got connection from client 192.168.7.1
28/02/2011 09:49:02   other clients:
28/02/2011 09:49:02 Disabled X server key autorepeat.
28/02/2011 09:49:02   to force back on run: 'xset r on' (3 times)
28/02/2011 09:49:02 incr accepted_client=1 for 192.168.7.1:57164  sock=8
28/02/2011 09:49:02 Client Protocol Version 3.8
28/02/2011 09:49:02 Protocol version sent 3.8, using 3.8
28/02/2011 09:49:02 rfbProcessClientSecurityType: executing handler for type 1
28/02/2011 09:49:02 rfbProcessClientSecurityType: returning securityResult for client rfb version >= 3.8
28/02/2011 09:49:07 client_set_net: 192.168.7.1  0.1479
28/02/2011 09:49:07 created   xdamage object: 0x1200018
28/02/2011 09:49:07 copy_tiles: allocating first_line at size 21
28/02/2011 09:49:11 created selwin: 0x1200019
28/02/2011 09:49:11 called initialize_xfixes()

And there is *not* have an virtual X desktop of target pop-up on the client.
Comment 1 Jiajun Xu 2011-02-28 21:54:26 UTC
(In reply to comment #0)
> Testing Environment
> ===============================
> Host: qemumips-sato-sdk
> Kernel: Linux version 2.6.37.2-yocto-standard+
> Image location:
> http://autobuilder.pokylinux.org/nightly/20110226-1/qemu/qemumips/
> commit info: e08dc5aaaeba61e332caab4a3df5750df6b49ac1
> Steps
> ===============================
> 1. Run command 'x11vnc -display :0.0' on target.
> 2. On a client, run connmand 'vncviewer 192.168.7.2:0' (TargetIp: 192.168.7.2)
> Observed Result
> ===============================
> On target after running command 'x11vnc -display :0.0'
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> root@qemumips:~# x11vnc -display :0.0
> ###############################################################
> #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
> #@                                                           @#
> #@  **  WARNING  **  WARNING  **  WARNING  **  WARNING  **   @#
> #@                                                           @#
> #@        YOU ARE RUNNING X11VNC WITHOUT A PASSWORD!!        @#
> #@                                                           @#
> #@  This means anyone with network access to this computer   @#
> #@  may be able to view and control your desktop.            @#
> #@                                                           @#
> #@ >>> If you did not mean to do this Press CTRL-C now!! <<< @#
> #@                                                           @#
> #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
> #@                                                           @#
> #@  You can create an x11vnc password file by running:       @#
> #@                                                           @#
> #@       x11vnc -storepasswd password /path/to/passfile      @#
> #@  or   x11vnc -storepasswd /path/to/passfile               @#
> #@  or   x11vnc -storepasswd                                 @#
> #@                                                           @#
> #@  (the last one will use ~/.vnc/passwd)                    @#
> #@                                                           @#
> #@  and then starting x11vnc via:                            @#
> #@                                                           @#
> #@      x11vnc -rfbauth /path/to/passfile                    @#
> #@                                                           @#
> #@  an existing ~/.vnc/passwd file from another VNC          @#
> #@  application will work fine too.                          @#
> #@                                                           @#
> #@  You can also use the -passwdfile or -passwd options.     @#
> #@  (note -passwd is unsafe if local users are not trusted)  @#
> #@                                                           @#
> #@  Make sure any -rfbauth and -passwdfile password files    @#
> #@  cannot be read by untrusted users.                       @#
> #@                                                           @#
> #@  Use x11vnc -usepw to automatically use your              @#
> #@  ~/.vnc/passwd or ~/.vnc/passwdfile password files.       @#
> #@  (and prompt you to create ~/.vnc/passwd if neither       @#
> #@  file exists.)  Under -usepw, x11vnc will exit if it      @#
> #@  cannot find a password to use.                           @#
> #@                                                           @#
> #@                                                           @#
> #@  Even with a password, the subsequent VNC traffic is      @#
> #@  sent in the clear.  Consider tunnelling via ssh(1):      @#
> #@                                                           @#
> #@    http://www.karlrunge.com/x11vnc/#tunnelling            @#
> #@                                                           @#
> #@  Or using the x11vnc SSL options: -ssl and -stunnel       @#
> #@                                                           @#
> #@  Please Read the documention for more info about          @#
> #@  passwords, security, and encryption.                     @#
> #@                                                           @#
> #@    http://www.karlrunge.com/x11vnc/faq.html#faq-passwd    @#
> #@                                                           @#
> #@  To disable this warning use the -nopw option, or put     @#
> #@  'nopw' on a line in your ~/.x11vncrc file.               @#
> #@                                                           @#
> #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
> ###############################################################
> 28/02/2011 09:45:05 x11vnc version: 0.9.12 lastmod: 2010-09-09  pid: 349
> 28/02/2011 09:45:05 Using X display :0.0
> 28/02/2011 09:45:05 rootwin: 0x43 reswin: 0x1200001 dpy: 0x7f6e60
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05 ------------------ USEFUL INFORMATION ------------------
> 28/02/2011 09:45:05 X DAMAGE available on display, using it for polling hints.
> 28/02/2011 09:45:05   To disable this behavior use: '-noxdamage'
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05   Most compositing window managers like 'compiz' or 'beryl'
> 28/02/2011 09:45:05   cause X DAMAGE to fail, and so you may not see any screen
> 28/02/2011 09:45:05   updates via VNC.  Either disable 'compiz' (recommended)
> or
> 28/02/2011 09:45:05   supply the x11vnc '-noxdamage' command line option.
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05 Wireframing: -wireframe mode is in effect for window moves.
> 28/02/2011 09:45:05   If this yields undesired behavior (poor response,
> painting
> 28/02/2011 09:45:05   errors, etc) it may be disabled:
> 28/02/2011 09:45:05    - use '-nowf' to disable wireframing completely.
> 28/02/2011 09:45:05    - use '-nowcr' to disable the Copy Rectangle after the
> 28/02/2011 09:45:05      moved window is released in the new position.
> 28/02/2011 09:45:05   Also see the -help entry for tuning parameters.
> 28/02/2011 09:45:05   You can press 3 Alt_L's (Left "Alt" key) in a row to 
> 28/02/2011 09:45:05   repaint the screen, also see the -fixscreen option for
> 28/02/2011 09:45:05   periodic repaints.
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05 XFIXES available on display, resetting cursor mode
> 28/02/2011 09:45:05   to: '-cursor most'.
> 28/02/2011 09:45:05   to disable this behavior use: '-cursor arrow'
> 28/02/2011 09:45:05   or '-noxfixes'.
> 28/02/2011 09:45:05 using XFIXES for cursor drawing.
> 28/02/2011 09:45:05 GrabServer control via XTEST.
> Xlib:  extension "RECORD" missing on display ":0.0".
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05 The RECORD X extension was not found on the display.
> 28/02/2011 09:45:05 If your system has disabled it by default, you can
> 28/02/2011 09:45:05 enable it to get a nice x11vnc performance speedup
> 28/02/2011 09:45:05 for scrolling by putting this into the "Module" section
> 28/02/2011 09:45:05 of /etc/X11/xorg.conf or /etc/X11/XF86Config:
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05   Section "Module"
> 28/02/2011 09:45:05   ...
> 28/02/2011 09:45:05       Load    "record"
> 28/02/2011 09:45:05   ...
> 28/02/2011 09:45:05   EndSection
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05 XKEYBOARD: number of keysyms per keycode 6 is greater
> 28/02/2011 09:45:05   than 4 and 2 keysyms are mapped above 4.
> 28/02/2011 09:45:05   Automatically switching to -xkb mode.
> 28/02/2011 09:45:05   If this makes the key mapping worse you can
> 28/02/2011 09:45:05   disable it with the "-noxkb" option.
> 28/02/2011 09:45:05   Also, remember "-remap DEAD" for accenting characters.
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05 X FBPM extension not supported.
> 28/02/2011 09:45:05 X display is not capable of DPMS.
> 28/02/2011 09:45:05 --------------------------------------------------------
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05 Default visual ID: 0x21
> 28/02/2011 09:45:05 Read initial data from X display into framebuffer.
> 28/02/2011 09:45:05 initialize_screen: fb_depth/fb_bpp/fb_Bpl 16/16/1280
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05 X display :0.0 is 16bpp depth=16 true color
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05 Autoprobing TCP port 
> 28/02/2011 09:45:05 Autoprobing selected port 5900
> 28/02/2011 09:45:05 Listening also on IPv6 port 5900 (socket 7)
> 28/02/2011 09:45:05 fb read rate: 33 MB/sec
> 28/02/2011 09:45:05 The X server says there are 10 mouse buttons.
> 28/02/2011 09:45:05 screen setup finished.
> 28/02/2011 09:45:05 
> 28/02/2011 09:45:05 WARNING: You are running x11vnc WITHOUT a password.  See
> 28/02/2011 09:45:05 WARNING: the warning message printed above for more info.
> 28/02/2011 09:45:05 
> The VNC desktop is:      qemumips:0
> PORT=5900
> ******************************************************************************
> Have you tried the x11vnc '-ncache' VNC client-side pixel caching feature yet?
> The scheme stores pixel data offscreen on the VNC viewer side for faster
> retrieval.  It should work with any VNC viewer.  Try it by running:
>     x11vnc -ncache 10 ...
> One can also add -ncache_cr for smooth 'copyrect' window motion.
> More info: http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> On client after running command 'vncviewer 192.168.7.2:0'
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> charles@PEK-LWANG2-D1:~$ vncviewer 192.168.7.2:0
> Connected to RFB server, using protocol version 3.8
> No authentication needed
> Authentication successful
> On *TARGET* display:
> 28/02/2011 09:49:02 Got connection from client 192.168.7.1
> 28/02/2011 09:49:02   other clients:
> 28/02/2011 09:49:02 Disabled X server key autorepeat.
> 28/02/2011 09:49:02   to force back on run: 'xset r on' (3 times)
> 28/02/2011 09:49:02 incr accepted_client=1 for 192.168.7.1:57164  sock=8
> 28/02/2011 09:49:02 Client Protocol Version 3.8
> 28/02/2011 09:49:02 Protocol version sent 3.8, using 3.8
> 28/02/2011 09:49:02 rfbProcessClientSecurityType: executing handler for type 1
> 28/02/2011 09:49:02 rfbProcessClientSecurityType: returning securityResult for
> client rfb version >= 3.8
> 28/02/2011 09:49:07 client_set_net: 192.168.7.1  0.1479
> 28/02/2011 09:49:07 created   xdamage object: 0x1200018
> 28/02/2011 09:49:07 copy_tiles: allocating first_line at size 21
> 28/02/2011 09:49:11 created selwin: 0x1200019
> 28/02/2011 09:49:11 called initialize_xfixes()
> And there is *not* have an virtual X desktop of target pop-up on the client.

Just double confirm, does the issue exists with other images, like qemuarm, on the same host?
Comment 2 Liang Wang 2011-02-28 22:35:58 UTC
1. On the same host, this issue does *not* occur with qemuarm-sato-sdk image.
2. On the other host that qemuarm can pop-up the virtual X desktop, the same issue also occurs. 

So i think this issue is *not* impact by my host.
Comment 3 Ke Yu 2011-03-03 19:19:32 UTC
After tracking the message between vnc server/client, it is finally root caused as word endian issue.

mips  linux is bigendian, while x86 linux is little endian, so there should be endian convention between the vnc client/server.  the code does have the endian convertion logic and the logic works well in most case. the only issue is that in vncserver mips compiling, there is missing flag "-DLIBVNCSERVER_WORDS_BIGENDIAN", thus the vncserver in mips has wrong endian.

Adding the flag can fix this issue. patch is ongoing.
Comment 5 Liang Wang 2011-03-14 22:22:51 UTC
This issue does not occur on current nightly build (20110313-2).

Image location: http://autobuilder.yoctoproject.org/nightly/20110313-2/machines/qemu/qemumips/

commit a33a2cc024f9c9147c92c5da70d8fbb631b968f9