e0d2bd5195
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
54 lines
1.6 KiB
Makefile
54 lines
1.6 KiB
Makefile
vnc-obj-y += vnc.o
|
|
vnc-obj-y += vnc-enc-zlib.o vnc-enc-hextile.o
|
|
vnc-obj-y += vnc-enc-tight.o vnc-palette.o
|
|
vnc-obj-y += vnc-enc-zrle.o
|
|
vnc-obj-y += vnc-auth-vencrypt.o
|
|
vnc-obj-$(CONFIG_VNC_SASL) += vnc-auth-sasl.o
|
|
vnc-obj-y += vnc-ws.o
|
|
vnc-obj-y += vnc-jobs.o
|
|
|
|
common-obj-y += keymaps.o console.o cursor.o qemu-pixman.o
|
|
common-obj-y += input.o input-keymap.o input-legacy.o
|
|
common-obj-$(CONFIG_LINUX) += input-linux.o
|
|
common-obj-$(CONFIG_SPICE) += spice-core.o spice-input.o spice-display.o
|
|
common-obj-$(CONFIG_SDL) += sdl.mo x_keymap.o
|
|
common-obj-$(CONFIG_COCOA) += cocoa.o
|
|
common-obj-$(CONFIG_CURSES) += curses.o
|
|
common-obj-$(CONFIG_VNC) += $(vnc-obj-y)
|
|
common-obj-$(CONFIG_GTK) += gtk.o x_keymap.o
|
|
|
|
ifeq ($(CONFIG_SDLABI),1.2)
|
|
sdl.mo-objs := sdl.o sdl_zoom.o
|
|
endif
|
|
ifeq ($(CONFIG_SDLABI),2.0)
|
|
sdl.mo-objs := sdl2.o sdl2-input.o sdl2-2d.o
|
|
ifeq ($(CONFIG_OPENGL),y)
|
|
sdl.mo-objs += sdl2-gl.o
|
|
endif
|
|
endif
|
|
sdl.mo-cflags := $(SDL_CFLAGS)
|
|
|
|
ifeq ($(CONFIG_OPENGL),y)
|
|
common-obj-y += shader.o
|
|
common-obj-y += console-gl.o
|
|
common-obj-y += egl-helpers.o
|
|
common-obj-y += egl-context.o
|
|
ifeq ($(CONFIG_GTK_GL),y)
|
|
common-obj-$(CONFIG_GTK) += gtk-gl-area.o
|
|
else
|
|
common-obj-$(CONFIG_GTK) += gtk-egl.o
|
|
endif
|
|
endif
|
|
|
|
gtk.o-cflags := $(GTK_CFLAGS) $(VTE_CFLAGS)
|
|
gtk-egl.o-cflags := $(GTK_CFLAGS) $(VTE_CFLAGS) $(OPENGL_CFLAGS)
|
|
gtk-gl-area.o-cflags := $(GTK_CFLAGS) $(VTE_CFLAGS) $(OPENGL_CFLAGS)
|
|
shader.o-cflags += $(OPENGL_CFLAGS)
|
|
console-gl.o-cflags += $(OPENGL_CFLAGS)
|
|
egl-helpers.o-cflags += $(OPENGL_CFLAGS)
|
|
|
|
gtk-egl.o-libs += $(OPENGL_LIBS)
|
|
shader.o-libs += $(OPENGL_LIBS)
|
|
console-gl.o-libs += $(OPENGL_LIBS)
|
|
egl-helpers.o-libs += $(OPENGL_LIBS)
|