|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Access to raw keycodes in xen domU
Keyboard is owned by dom0. There's not really an easy way to propagate the
raw keycodes to a pv domU. For an hvm domU we reverse-map to the raw
keycodes in qemu-dm and send those via the emulated pckeyboard.
-- Keir
On 14/8/08 14:58, "Maxim Gorbachyov" <maxim.gorbachyov@xxxxxxxxx> wrote:
> Hi.
>
> There is a need to have access to raw keycodes in xen domU (like
> showkey (1)). Using xen-hypervisor-3.2 and linux-2.6.18-xen-3.2.0 with
> these parameters:
>
> kernel = "/my/vmlinuz"
> memory = 128
> name = "dn1"
> vif = [ '' ]
> disk = [ 'tap:aio:/my/img,hda1,w' ]
> root = "/dev/hda1 ro"
> extra = "2 xencons=tty"
>
> I run "# strace showkey" inside domU and get this:
> ...
> open("/dev/tty", O_RDWR) = 3
> ioctl(3, KDGKBTYPE, 0x7fff91e9da17) = -1 EINVAL (Invalid argument)
> ...
>
> Indeed there is no ioctl() implementation assigned to
> xencons_ops.ioctl in
> linux-2.6.18-xen-3.2.0/drivers/xen/console/console.c
>
> I've tried assigning xencons_ops.ioctl to something like that:
>
> static int xencons_ioctl(struct tty_struct *tty, struct file * file,
> unsigned int cmd, unsigned long arg)
> {
> unsigned char ucval;
> long val;
>
> switch (cmd) {
> case KDGKBTYPE:
> ucval = KB_101;
> return put_user(ucval, (char __user *)arg);
>
> case KDGKBMODE:
> val = K_UNICODE;
> return put_user(val, (long __user *)arg);
>
> case KDSKBMODE:
> return 0;
> }
> return -ENOIOCTLCMD;
> }
>
> It's enough to make showkey run, but it does not report correct
> keycodes. I think I have to do something like
>
> HYPERVISOR_console_io(CONSOLEIO_ioctl, ... )
>
> but there is no CONSOLEIO_ioctl.
>
> Could you please suggest what can I do to access raw keycodes?
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|