Bug 815702

Summary: RFE: generate man pages to describe valid keycodes
Product: Red Hat Enterprise Linux 7 Reporter: Daniel Berrangé <berrange>
Component: libvirtAssignee: Daniel Berrangé <berrange>
Status: CLOSED ERRATA QA Contact: Lili Zhu <lizhu>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: cwei, dyuan, jchaloup, laine, lmiksik, mzhan, pschiffe, rbalakri, veillard, weizhan, xuzhang
Target Milestone: rcKeywords: FutureFeature, ManPageChange
Target Release: 7.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-3.7.0-1.el7 Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 10:33:22 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:

Comment 3 Gunannan Ren 2012-09-07 13:57:38 UTC
patch sent to upstream
https://www.redhat.com/archives/libvir-list/2012-September/msg00454.html

Comment 10 Daniel Berrangé 2017-04-25 20:22:18 UTC
Merged upstream in:

commit e6c3b59c193ec1d17d72b65d460a951227c12a72
Author: Daniel P. Berrange <berrange>
Date:   Fri Mar 3 12:43:51 2017 +0000

    Add ability to generate man page describing key code names & values
    
    Signed-off-by: Daniel P. Berrange <berrange>

will get it for free in 7.5 if we rebase.

Comment 12 Lili Zhu 2017-12-04 02:36:05 UTC
Verified this bug with libvirt-3.9.0-4.el7.x86_64:

There are 10 kinds of codesets,
linux, xt, atset1, atset2, atset3, os_x, xtkbd, win32, usb, rfb.
Furthermore, symbolic names of linux, osx and win32 codesets are also privides

The verfication steps are arranged as follows
(I) man virkeycode-* (* represents all the 10 codesets)
The man pages of all the codesets exist

(II) man virkeyname-* (* represents linux, osx, win32)
The man pages all the above 3 codesets exist

(III) Select some of the key code values, send them to the vm, check whether it
can behave just as the man pages noted.
A. linux
# virsh send-key rhel74 --codeset linux 33 34 35
In guest, 'fgh' are printed

B. xt
# virsh send-key rhel74 --codeset xt 7 8 9
In guest, '678' are printed

C. atset1
# virsh send-key rhel74 --codeset atset1 54 17
In guest, 'W' are printed

D. atset2
# virsh send-key rhel74 --codeset atset2 42 41 43
In guest, 'v f' are printed

E. atset3
# virsh send-key rhel74 --codeset atset3 99
In the terminal of guest, the last command line can be shown

F. os_x
# virsh send-key rhel74 --codeset os_x 30 33
In guest, '][' are printed

G. xtkbd
# virsh send-key rhel74 --codeset xt_kbd 327
In the terminal of guest, cursor will shift to the beginning of the cmdline

H. win32
# virsh send-key rhel74 --codeset win32 96 97 98
In guest, '012' are printed

J. usb
1. Add a panic device into the guest
...
 <panic model='isa'>
      <address type='isa' iobase='0x505'/>
 </panic>
...
2. In guest,open the magic SysRq keys:
# echo 1 > /proc/sys/kernel/sysrq

3. Send alt-sysrq-c
# virsh send-key rhel74 --codeset usb 230 70 6

4. check the guest status
# virsh domstate rhel74 --reason
shut off (crashed)

K. rfb
# virsh send-key rhel74 --codeset rfb 56 2
In guest, the cursor will be on the 1st tab of terminal

All the selected key code values behave just as the man pages noted after sending them to the vm. 

Automation is the only way to verify all the key code values and their combinations. And it is our next step.
For now, we are going to move this bug to verified.

Comment 16 errata-xmlrpc 2018-04-10 10:33:22 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/RHEA-2018:0704