Spanish keyboard layout with dead keys (tilde ` and ´)

Hello,

I managed two server that are running OpenNebula-6.4. With 6.4 and, also, with older versions, I have found the BIG problem that spanish keyboard layout with tildes (supportting catalan idiom) doesn’t work. It seems there are two keys that are not recognized by OpenNebula. These keys are locate next to “P” and “Ñ” in a spanish keyboard.
spanish keyboard

I have always configured my VMs with keymap “es” and, inside the VM, with a 105-pc keyboard, but after installing “evtest”, I have checked that key are not been detected by system, so key doesn’t sent any information and, of course, tildes are not printed.

However, I have always though this problem was generated by the VNC+Guacamole connection between VM and client PC… but, after some test I have run today (in a OpenNebula 6.8 but, also, tested in my 6.4), I have found that in a Firecracker VM, spanish keyboard are running 100% fine but in a KVM VM, the problem persists, so if the Firecrack VM has also a VNC+Guacamole connection and keyboard is running well, the problem must be other…

In this screenshot, you could see that inside a Firecracker VM, there is NO problem:

Could you help me to solve it?

Thanks a lot!

Hola @Daniel_Ruiz_Molina,

Apologies if I’m not understanding the issue quite well, but just to be clear and do a quick recap:

  1. Firecracker VM (on 6.8 or 6.4) works fine and recognizes the layout of the keyboard, correct?
  2. VNC+Guacamole (on 6.8 and 6.4) doesn’t recognizes it and the “tildes” are like dead keys, correct?

If it’s on both, please indicate it. Also, is not clear if at some point you have the layout (and the keys) working on Firecracker inside OpenNebula (which means that the problem is not in the platform).

If that’s the case, it looks like it’s a miss-configuration with the locale inside the VM (perhaps a VM that doesn’t have all the locales supported, like es-cat?). If you are configuring the locale, can you check if the default keyboard is with “Dead Keys”?. It could happen that the setting on one VM is different from other, and the layout is connected to the OS.

If you can, please include the screenshot of the configuration, so it’s easier to identify if everything is correctly configured, which layout are you using, and other details.

Cheers,

Also, a good resource is our documentation. I think these 2 pages could be useful:

https://docs.opennebula.io/6.8/management_and_operations/references/template.html?highlight=keyboard#i-o-devices-section

https://docs.opennebula.io/6.8/management_and_operations/end-user_web_interfaces/fireedge_sunstone.html?highlight=keyboard#opennebula-vnc-remote-connection

In any case, let us know if the issue is with the config inside the VM.

Cheers,
Francisco.-

Hello,

In my scenario (in 6.4 or in 6.4, in both the result is the same), a Firecracker VM (downloaded from the Apps Market DockerHub and converted automatically by OpenNebula in a raw image) recognizes perfectly spanish (catalan) keyboard layout, so “tildes” located next P and Ñ are printed, so I can write “à” or “á”.
Howerver, in a KVM VM (also downloaded from Apps Market OpenNebula Public and converted automatically by OpenNebula in a qcow2 image) doesn’t recognize spanish (catalan) keyboard and “tildes” are not printed. Also, in the KVM VM, I have been able to install “evtest” and I have checked that tildes “`” (next to P) and “´” (next to Ñ) don’t generate any KEY_SCAN, so in the KVM VM these keys are dead keys. In the Firecracker VM, I can’t run “evtest” because /dev/input doesn’t exists, but that keys are not dead keys.

I have checked, running a “cat /proc/bus/input/devices” that in the Firecracker VM, keyboard appears as a “AT Raw Set 2 keyboard”, while in the KVM VM the keyboard appears as a “AT Translated Set 2 keyboard”. Maybe could be it the problem?

Help, please!

Thanks.

Hello,

I add more information. If a connect using SSH to the KVM VM, keyboard is working fine but, as I said some days ago, if connection is done using a browser and VNC+Guacamole, keyboard has dead keys…

So, now, after this last test, I have:

  • Firecracker VM + VNC + Guacamole → keyboard OK

  • Firecracker VM + SSH → keyboard OK

  • KVM VM + VNC + Guacamole → keyboard BAD

  • KVM VM + SSH → keyboard OK

What could be the problem?

Thanks.

Hey there,

Sorry for the silence. We are testing these options, and check if it’s a thing on how the keyboard layout is configured by default, or if they have all the locales. I’m tempted to say that on Guacamole, there might be a lack of support for several locales, and suggest you to try to use english (unless is a working environment that needs ES-ES or ES-CAT locales).

If the other options works fine, it’s definitely something with the VM, but I’m not quite sure it has to be with the image from the marketplace.

Hello,

I need to work with spanish and catalan locales because of we are located next to Barcelona (Spain) and users writes normally in catalan, so all work inside VM is done in catalan (or spanish) and they need “`” and “´” tildes.

Problem is not inside the VM, because the same VM, but connected through SSH from the OpenNebula server, shows correctly keyboard layout.

Thanks.

Hello, could you pass me a vm template, it is for testing with the keymaps.

Hi @jlobo,

This is a copypaste of the Firecracker VM template:

CONTEXT = [
  NETWORK = "YES",
  PASSWORD = "K+YBqtujbkf4930pOpjS/A==",
  SET_HOSTNAME = "$NAME",
  SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]" ]
CPU = "1"
DISK = [
  IMAGE_ID = "15" ]
GRAPHICS = [
  KEYMAP = "es",
  LISTEN = "0.0.0.0",
  TYPE = "VNC" ]
HOT_RESIZE = [
  CPU_HOT_ADD_ENABLED = "NO",
  MEMORY_HOT_ADD_ENABLED = "NO" ]
HYPERVISOR = "firecracker"
MEMORY = "768"
MEMORY_RESIZE_MODE = "BALLOONING"
MEMORY_UNIT_COST = "MB"
NIC = [
  NETWORK = "Internet",
  NETWORK_UNAME = "oneadmin",
  SECURITY_GROUPS = "0" ]
OS = [
  FIRMWARE = "",
  FIRMWARE_SECURE = "YES",
  KERNEL_CMD = "console=ttyS0 reboot=k panic=1",
  KERNEL_DS = "$FILE[IMAGE_ID=2]" ]
SCHED_DS_REQUIREMENTS = "ID=\"0\""
SCHED_REQUIREMENTS = "ID=\"2\""

And this is the KVM VM template:

CONTEXT = [
  NETWORK = "YES",
  PASSWORD = "K+YBqtujbkf4930pOpjS/A==",
  SSH_PUBLIC_KEY = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCjJPRPmkOjzaEQuEs5oguRq5ijrA8jKo0ZFKtHpgN7UcRdxhlIlX5w9DcE8lexANYvyE81l5ppCSwcY+kG2zaf0A9jLa46JWnT7yfLr2mJ2ZN2YZypc211/ggFxBVas7STJpioeBMrp8FUcGcFVELTKfePSPukPKcW3IH5dYEpgqE6bFp7eX7fscti84GP/2MEQwZuiCJSyKlaXmlOm/+0b6purDf/9OW4OjCVW/p9B3DUpYoh6uVldypUmoWyffvx8Y1CFcdYBqTIN4K19EMh6asOd6zkqHZ3HJC5PiXpw0xJZwiMPeaoH/b2QuPuGilfgQ6ovjS/S4YYIi147BcIFwhKELtxL9CbaqkXi/vKQJkAalyxTOz4YdIXahp2KCwG5OeZAm5eV849ghGdkfGs1JELIKtn1pyeTSBv1dPO1FGKNkfR5E7iG1X87Ti73YMb3cJqG78wVEu9JHDjg8t7IqjAHFDcwgXrDs+mDrSZPCx8K4nt4AkHHv1iUM4d/qU= oneadmin@servidor" ]
CPU = "2"
DISK = [
  IMAGE_ID = "14" ]
GRAPHICS = [
  KEYMAP = "es",
  LISTEN = "0.0.0.0",
  TYPE = "VNC" ]
HOT_RESIZE = [
  CPU_HOT_ADD_ENABLED = "NO",
  MEMORY_HOT_ADD_ENABLED = "NO" ]
HYPERVISOR = "kvm"
LOGO = "images/logos/debian.png"
MEMORY = "2048"
MEMORY_RESIZE_MODE = "BALLOONING"
MEMORY_UNIT_COST = "MB"
NIC = [
  NETWORK = "Internet",
  NETWORK_UNAME = "oneadmin",
  SECURITY_GROUPS = "0" ]
OS = [
  ARCH = "x86_64",
  FIRMWARE = "",
  FIRMWARE_SECURE = "YES" ]
SCHED_DS_REQUIREMENTS = "ID=\"0\""
SCHED_REQUIREMENTS = "ID=\"1\" | ID=\"3\""

If connection is done from the host (OpenNebula server) using SSH to each VM, keyboard runs OK in both VMs. However, if connection is done using Sunstone+VNC+Guacamole (default configuration), keyboard runs OK in Firecracker VM but not in KVM machine.

Tell me if you want me to run some tests or something more.

Thanks.

And by any chance have you tried an external VNC client like realVNC?

The problem I have is that, in my scenario, server has 3 SDNs and only of these has internet connection. A user could have 3 VMs in three “network layers”: one with internet connection, one in the middle and other one in the deepest level. So, if user connects using RealVNC o similar, I (as OpenNebula and host server sysadmin) would need to add several extra iptables rules to allow prerouting… or am i wrong?

Because of this scenario, all users (university studens) connect to theirs VMs using browser+VNC+Guacamole.

Thanks.