.. _vhost_user_input: QEMU vhost-user-input - Input emulation ======================================= This document describes the setup and usage of the Virtio input device. The Virtio input device is a paravirtualized device for input events. Description ----------- The vhost-user-input device implementation was designed to work with a daemon polling on input devices and passes input events to the guest. QEMU provides a backend implementation in contrib/vhost-user-input. Linux kernel support -------------------- Virtio input requires a guest Linux kernel built with the ``CONFIG_VIRTIO_INPUT`` option. Examples -------- The backend daemon should be started first: :: host# vhost-user-input --socket-path=input.sock \ --evdev-path=/dev/input/event17 The QEMU invocation needs to create a chardev socket to communicate with the backend daemon and access the VirtIO queues with the guest over the :ref:`shared memory `. :: host# qemu-system \ -chardev socket,path=/tmp/input.sock,id=mouse0 \ -device vhost-user-input-pci,chardev=mouse0 \ -m 4096 \ -object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on \ -numa node,memdev=mem \ ...