Re: Unknown keycode mapping '(null)'.



On Tue, Oct 07, 2014 at 04:59:26PM +0000, Eduardo Juan wrote:
Hi Daniel

Yes, I have a Spanish keyboard.

I'm not too familiar with patching  ...
Which of the machines should I patch, the Solaris system
I've accessed via Citrix, the Ubuntu host or the VM I try to
connect to ?

The machine that you're running virt-viewer on, which IIUC is
the Ubuntu host.

How do I put that patch in ?

Basically you'd need to get the GTK-VNC source, save that patch
to a file and then run 'patch -p1 < file.patch'.

Alternatively since the patch is literally just a single line
change you could just open vncdisplaykeysyms.c in an editor
and change that one line. 

Regards,
Daniel


Regards, Eduardo

-----Original Message-----
From: Daniel P. Berrange [mailto:dan berrange com] 
Sent: martes, 07 de octubre de 2014 18:51
To: Eduardo Juan
Cc: gtk-vnc-list gnome org
Subject: Re: Unknown keycode mapping '(null)'.

On Tue, Oct 07, 2014 at 04:17:56PM +0000, Eduardo Juan wrote:
Hi

I have the following problem when accessing the console of a VM.

root openstack1115:~# virt-viewer controller
(virt-viewer:25949): gtk-vnc-WARNING **: Unknown keycode mapping '(null)'.
Please report to gtk-vnc-list gnome org including the following 
information:

  - Operating system
  - GDK build
  - X11 Server
  - xprop -root
  - xdpyinfo



The environment is as follows:

I have a Solaris Unix environment.
SunOS xbete1 5.10 Generic_147441-01 i86pc i386 i86pc

From a shell I do "ssh -X" to a server with  Ubuntu.

                I have set the DISPLAY variable to the Solaris environment with
                export DISPLAY=159.107.31.149:21.0

I have created some VMs on the Ubuntu host and the warning appears when I try to connect to the VM's 
console.

The problem is my keymap is quite wrong and it does not allow me to work.

So the situation with VNC and key handling is quite horrible

If you want to know the nasty details you can read

  
https://www.berrange.com/posts/2010/07/04/more-than-you-or-i-ever-wanted-to-know-about-virtual-keyboard-handling/
  
https://www.berrange.com/posts/2010/07/04/a-summary-of-scan-code-key-codes-sets-used-in-the-pc-virtualization-stack/


Basically with standard VNC protocol, the keyboard layout configured on your local X server, the QEMU 
process and the guest operating system must be identical. If they are not identical key handling will be 
mangled. 

To solve this we invented an extension to VNC that passes raw hardware scan codes to the VNC server. With 
this extension you only need to have the same layout configured on your X server and guest operating system.
ie we have taken QEMU out of the loop to avoid it screwing things up.

Unfortunately for this extension to work we need to understand what scancodes your build of GTK + X server 
is using. We've figured this out for Xorg based servers, and Windows and OS-X, but it seems that Solaris 
has a different X server and we don't have support for that.

So in this case we disable the scancode extension and you get the plain VNC protocol. Presumably you are 
not using a US keybord layout, since you say the keymap handling is broken when this happens.

The only real long term solution is to figure out how scancodes are reported on Solaris X server and add 
support to GTK-VNC for this.

root openstack1115:~# xdpyinfo
name of display:    159.107.31.149:21.0
version number:    11.0
vendor string:    Citrix Systems Inc
vendor release number:    60423

If you are comfortable patching & building software, I'd be interested in what happens if you apply the 
following patch:

diff --git a/src/vncdisplaykeymap.c b/src/vncdisplaykeymap.c index 7f11e7c..4823cc6 100644
--- a/src/vncdisplaykeymap.c
+++ b/src/vncdisplaykeymap.c
@@ -186,7 +186,7 @@ const guint16 *vnc_display_keymap_gdk2rfb_table(size_t *maplen)
                       "  - xprop -root\n"
                       "  - xdpyinfo\n",
                       keycodes);
-            return NULL;
+            return keymap_xorgkbd2rfb;
         }
     }
 #endif


This is just a quick hack to try using standard x86 scan codes. If we are lucky it might work for you. If 
not we'll need to do more detailed investigations.

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]