Prior to this update, sending the BREAK or PAUSE keys over the VNC or SPICE client was not properly handled and had no effect in the guest. This update adds proper key handlers for these keys, so they trigger appropriate events in the guest. In addition, sending keys for controlling guest audio over VNC or SPICE now works as expected.
Reproducible using qemu-kvm-rhev-2.9.0 (rhevh-rhel-7.4)
works correctly in qemu-kvm-rhev-2.6.0 (rhevh-rhel-7.3)
+++ This bug was initially created as a clone of Bug #1471758 +++
Description of problem:
Some "special" keysymbols (mute, volume up, volume down) are not forwarded to the guest
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. connect to a VM using SPICE
2. press a key to control volume
Nothing happens, the key is not received
Key is received
regression since qemu commit 8c10e0baf0260b59a4e984744462a18016662e3e
--- Additional comment from Cole Robinson on 2017-07-17 12:19:40 EDT ---
That commit is:
Author: Hervé Poussineau <email@example.com>
Date: Thu Sep 15 22:06:26 2016 +0200
ps2: use QEMU qcodes instead of scancodes
Which has #if 0 code like:
[Q_KEY_CODE_POWER] = 0x0e5e,
[Q_KEY_CODE_SLEEP] = 0x0e5f,
[Q_KEY_CODE_WAKE] = 0x0e63,
[Q_KEY_CODE_AUDIONEXT] = 0xe019,
[Q_KEY_CODE_AUDIOPREV] = 0xe010,
[Q_KEY_CODE_AUDIOSTOP] = 0xe024,
[Q_KEY_CODE_AUDIOPLAY] = 0xe022,
[Q_KEY_CODE_AUDIOMUTE] = 0xe020,
[Q_KEY_CODE_VOLUMEUP] = 0xe030,
[Q_KEY_CODE_VOLUMEDOWN] = 0xe02e,
[Q_KEY_CODE_MEDIASELECT] = 0xe06d,
[Q_KEY_CODE_MAIL] = 0xe06c,
[Q_KEY_CODE_CALCULATOR] = 0xe021,
[Q_KEY_CODE_COMPUTER] = 0xe06b,
[Q_KEY_CODE_AC_SEARCH] = 0xe065,
[Q_KEY_CODE_AC_HOME] = 0xe032,
[Q_KEY_CODE_AC_BACK] = 0xe06a,
[Q_KEY_CODE_AC_FORWARD] = 0xe069,
[Q_KEY_CODE_AC_STOP] = 0xe068,
[Q_KEY_CODE_AC_REFRESH] = 0xe067,
[Q_KEY_CODE_AC_BOOKMARKS] = 0xe066,
Gerd, do you know what the issue was here?
--- Additional comment from Gerd Hoffmann on 2017-07-18 02:55:50 EDT ---
> Gerd, do you know what the issue was here?
We don't have Q_KEY_CODES for them
Author: Gerd Hoffmann <firstname.lastname@example.org>
Date: Wed Jul 26 17:29:18 2017 +0200
ps2: enable multimedia keys
Signed-off-by: Gerd Hoffmann <email@example.com>
Reviewed-by: Eric Blake <firstname.lastname@example.org>
Reproduce this issue with qemu-kvm-rhev-2.9.0-16.el7_4.5.x86_64, host & guest kernel 3.10.0-693.5.1.el7.x86_64.
qemu cli used:
/usr/libexec/qemu-kvm -name input-test -m 2G \
-cpu qemu64,check \
-smp 2 \
-vga std \
-drive file=/home/rhel74-64-virtio.qcow2,if=none,id=drive-scsi-disk0,format=qcow2,cache=none,werror=stop,rerror=stop -device virtio-
scsi-pci,id=scsi0,addr=04 -device scsi-hd,drive=drive-scsi-disk0,bus=scsi0.0,scsi-id=0,lun=0,id=scsi-disk0,bootindex=1 \
-uuid 215e11b2-a869-41b5-91cd-6a32a907be7e \
-qmp unix:/tmp/vmmouse-keyboard,server,nowait \
-monitor stdio \
-device virtio-serial-pci,id=virtio-serial1 \
-chardev spicevmc,id=charchannel0,name=vdagent \
-device virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 \
-spice port=5900,disable-ticketing \
My keyboards has volume up/volume down/audio next/audio previous/audio stop/audio play/mail/calculator/home keys
1)Login to guest desktop, open gnome-terminal and run xev -event keyboard
2)press the keys I have
3)launch another gnome-terminal and run xinput test keyboard_id
4)repeat step 2)
After 2), no keyevents prompt. After 4), no events prompt.
Switch display to vnc, get same results as spice.
Test against qemu-kvm-rhev-2.10.0-11.el7.x86_64, after 2) xev will prompt some output, because of some keys have no function defined in gnome, just output.
After 4), the outputs of keys are same after comparing the outputs between host and guest.
Switch display to vnc, I get same results.So bug is fixed
Verified per comment 7
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.