]> git.proxmox.com Git - mirror_qemu.git/commit - vl.c
input: linux evdev support
authorGerd Hoffmann <kraxel@redhat.com>
Fri, 4 Mar 2016 10:25:14 +0000 (11:25 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 8 Mar 2016 11:20:11 +0000 (12:20 +0100)
commite0d2bd5195fdc032c8da566027a35a97aaa0394b
tree23d9aa3398e95b38cb9ac9fd23f57f50f883bb9c
parent91ec41dc3f9cf28f93af0630b20ba8e7dcefa16b
input: linux evdev support

This patch adds support for reading input events directly from linux
evdev devices and forward them to the guest.  Unlike virtio-input-host
which simply passes on all events to the guest without looking at them
this will interpret the events and feed them into the qemu input
subsystem.

Therefore this is limited to what the qemu input subsystem and the
emulated input devices are able to handle.  Also there is no support for
absolute coordinates (tablet/touchscreen).  So we are talking here about
basic mouse and keyboard support.

The advantage is that it'll work without virtio-input drivers in the
guest, the events are delivered to the usual ps/2 or usb input devices
(depending on what the machine happens to have).  And for keyboards
qemu is able to switch the keyboard between guest and host on hotkey.
The hotkey is hard-coded for now (both control keys), initialy the
guest owns the keyboard.

Probably most useful when assigning vga devices with vfio and using a
physical monitor instead of vnc/spice/gtk as guest display.

Usage:  Add '-input-linux /dev/input/event<nr>' to the qemu command
line.  Note that udev has rules which populate /dev/input/by-{id,path}
with static names, which might be more convinient to use.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 1457087116-4379-2-git-send-email-kraxel@redhat.com
include/ui/input.h
qemu-options.hx
ui/Makefile.objs
ui/input-linux.c [new file with mode: 0644]
vl.c