Bug 1474464 - Unable to send PAUSE/BREAK to guests in VNC or SPICE
Unable to send PAUSE/BREAK to guests in VNC or SPICE
Status: ON_QA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm-rhev (Show other bugs)
7.4
Unspecified Unspecified
high Severity high
: rc
: ---
Assigned To: Gerd Hoffmann
Guo, Zhiyi
: Regression, ZStream
Depends On:
Blocks: 1482389
  Show dependency treegraph
 
Reported: 2017-07-24 12:57 EDT by Daniel Berrange
Modified: 2017-10-03 04:46 EDT (History)
8 users (show)

See Also:
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:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Daniel Berrange 2017-07-24 12:57:22 EDT
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@reactos.org>
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@reactos.org>
    Message-id: 1473969987-5890-5-git-send-email-hpoussin@reactos.org
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>


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 Berrange 2017-07-24 14:26:01 EDT
Patch proposed upstream at https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg07415.html
Comment 4 Ademar Reis 2017-08-10 14:29:49 EDT
Fixed upstream:

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

    ps2: fix sending of PAUSE/BREAK scancodes

Note You need to log in before you can comment on or make changes to this bug.