Bug 1474464

Summary: Unable to send PAUSE/BREAK to guests in VNC or SPICE
Product: Red Hat Enterprise Linux 7 Reporter: Daniel Berrangé <berrange>
Component: qemu-kvm-rhevAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED ERRATA QA Contact: Guo, Zhiyi <zhguo>
Severity: high Docs Contact:
Priority: high    
Version: 7.4CC: chayang, hhuang, jinzhao, juzhang, kraxel, michen, mrezanin, mtessun, virt-maint
Target Milestone: rcKeywords: Regression, ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.10.0-1.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1482389 (view as bug list) Environment:
Last Closed: 2018-04-11 00:30:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1482389    

Description Daniel Berrangé 2017-07-24 16:57:22 UTC
Description of problem:
In VNC if pressing the PAUSE or BREAK key, nothing will be received by the guest OS

In SPICE if pressing the BREAK key (ie Ctrl + PAUSE), nothing will be received by the guest OS

In SPICE if pressing the PAUSE key, the guest will see Control_L + NumLock instead.

This is a regression introduced in QEMU 2.8.0 in


commit 8c10e0baf0260b59a4e984744462a18016662e3e
Author: Hervé Poussineau <hpoussin>
Date:   Thu Sep 15 22:06:26 2016 +0200

    ps2: use QEMU qcodes instead of scancodes
    
    This fixes problems with translated set 1, where most make code were wrong.
    This fixes problems with set 3 for extended keys (like arrows) and lot of other keys.
    Added a FIXME for set 3, where most keys must not (by default) deliver a break code.
    
    Detailed list of changes on untranslated set 2:
    - change of ALTGR break code from 0xe4 to 0xf0 0x08
    - change of ALTGR_R break code from 0xe0 0xe4 to 0xe0 0xf0 0x08
    - change of F7 make code from 0x02 to 0x83
    - change of F7 break code from 0xf0 0x02 to 0xf0 0x83
    - change of PRINT make code from 0xe0 0x7c to 0xe0 0x12 0xe0 0x7c
    - change of PRINT break code from 0xe0 0xf0 0x7c to 0xe0 0xf0 0x7c 0xe0 0xf0 0x12
    - change of PAUSE key: new make code = old make code + old break code, no more break code
    - change on RO break code from 0xf3 to 0xf0 0x51
    - change on KP_COMMA break code from 0xfe to 0xf0 0x6d
    
    Detailed list of changes on translated set 2 (the most commonly used):
    - change of PRINT make code from 0xe0 0x37 to 0xe0 0x2a 0xe0 0x37
    - change of PRINT break code from 0xe0 0xb7 to 0xe0 0xb7 0xe0 0xaa
    - change of PAUSE key: new make code = old make code + old break code, no more break code
    
    Reference:
    http://www.computer-engineering.org/ps2keyboard/scancodes1.html
    http://www.computer-engineering.org/ps2keyboard/scancodes2.html
    http://www.computer-engineering.org/ps2keyboard/scancodes3.html
    Signed-off-by: Hervé Poussineau <hpoussin>
    Message-id: 1473969987-5890-5-git-send-email-hpoussin
    Signed-off-by: Gerd Hoffmann <kraxel>


It affects x86 guests using the default PS2 keyboard.

If a USB keyboard is present for the guest, everything works correctly.


Version-Release number of selected component (if applicable):
qemu-kvm-rhev-2.9.0-16.el7.3

How reproducible:
Always

Steps to Reproduce:
1. Open a VNC or SPICE client to a RHEL Linux guest
2. Launch 'gnome-terminal' in the guest
3. Launch 'xev' in the guest from the 'gnome-terminal'
4. Press the 'Pause' key
5. Press the 'Control' + 'Pause' keys

Actual results:
The guest sees missing or incorrect keys (see bug description above)


Expected results:
'xev' reports Pause and Break keys pressed respectively

Additional info:

Comment 3 Daniel Berrangé 2017-07-24 18:26:01 UTC
Patch proposed upstream at https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg07415.html

Comment 4 Ademar Reis 2017-08-10 18:29:49 UTC
Fixed upstream:

commit 7c388dbd0b2c54b3d836c23ea43e2cee38de66a4
Author: Daniel P. Berrange <berrange>
Date:   Thu Jul 27 12:32:43 2017 +0100

    ps2: fix sending of PAUSE/BREAK scancodes

Comment 7 Guo, Zhiyi 2017-11-13 09:11:24 UTC
Hi Gerd,

   It's a good news that I have enabled the auto check for the input devices:). The media keys I checked are(using your emulate-key):
'NEXTSONG',
'PREVIOUSSONG',
'STOPCD',
'PLAYPAUSE',
'MUTE',
'VOLUMEUP',
'VOLUMEDOWN',
'MAIL',
'CALC',
'COMPUTER',
'SEARCH',
'HOMEPAGE',
'BACK',
'FORWARD',
'STOP',
'REFRESH',
'FAVORITES'

Check with rhel7.5 guest and qemu-kvm-rhev-2.10.0-5.el7.x86_64, above keys are visible for ps2-kbd in both vnc and spice. But they are all missing for usb-kbd/virtio-keyboard-pci in both vnc and spice. Do I need to report a bug to track mediakey functions for usb-kbd and virtio-keyboard-pci?

BR/
Guo, Zhiyi

Comment 8 Gerd Hoffmann 2017-11-13 09:22:54 UTC
(In reply to Guo, Zhiyi from comment #7)
> Check with rhel7.5 guest and qemu-kvm-rhev-2.10.0-5.el7.x86_64, above keys
> are visible for ps2-kbd in both vnc and spice. But they are all missing for
> usb-kbd/virtio-keyboard-pci in both vnc and spice. Do I need to report a bug
> to track mediakey functions for usb-kbd and virtio-keyboard-pci?

Yes, please (two bugs actually, one for each kbd device).

Comment 9 Guo, Zhiyi 2017-11-13 09:25:59 UTC
Sorry comment 7 is for Bug 1472756 - Keys to control audio are not forwarded to the guest.

For this bug, My test are consist of 104 US keyboard layout plus keycodes 'KATAKANA','HIRAGANA','HENKAN'(through the google, I think these 3 keys are more important to JP input method,if you think other jp keys are important too, please comment), results are:

'KATAKANA','HIRAGANA' are missing in ps2 kbd/usb-kbd/virtio-keyboard-pci with vnc/spice connections

HENKAN is missing in usb-kbd/virtio-keyboard-pci with vnc/spice connections

Do I need to report a bug to track these three keys?

BR/
Zhiyi, Guo

Comment 10 Gerd Hoffmann 2017-11-13 10:22:52 UTC
> Do I need to report a bug to track these three keys?

Again, one bug per device please.  You can list all the non-working keys in the same bug though, no need to have separate bugs for the jp layout keys and multimedia keys.

Comment 11 Guo, Zhiyi 2017-12-14 07:44:31 UTC
Verified per comment 7 - 10. Keycode issues for other input devices like usb-kbd/virtio-keyboard-pci have been tracked by other bugs:
[Bug 1512459] Media keys are missing for qemu virtio-keyboard-pci
[Bug 1512456] Media keys are missing for qemu usb-kbd
[Bug 1512762] ps2 keyboard missing some keys

Comment 13 errata-xmlrpc 2018-04-11 00:30:00 UTC
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.

https://access.redhat.com/errata/RHSA-2018:1104