|  | .. _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 <shared_memory_object>`. | 
|  |  | 
|  | :: | 
|  |  | 
|  | 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							\ | 
|  | ... |