Hi Daniel The file does not seem to exist on my Ubuntu server # find / -mount -name vncdisplaykeysyms.c And the only file starting by vnc is the following # find / -mount -name vnc* /usr/share/bash-completion/completions/vncviewer # ls -lrt /usr/share/bash-completion/completions/vncviewer -rw-r--r-- 1 root root 3231 Apr 7 2014 /usr/share/bash-completion/completions/vncviewer Which I have attached in case it's of any use. Regards, Eduardo -----Original Message----- From: Daniel P. Berrange [mailto:dan berrange com] Sent: miƩrcoles, 08 de octubre de 2014 0:17 To: Eduardo Juan Cc: gtk-vnc-list gnome org Subject: 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-c odes-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: 60423If 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 :|
Attachment:
vncviewer.txt
Description: vncviewer.txt