45 lines
1.6 KiB
ReStructuredText
45 lines
1.6 KiB
ReStructuredText
|
QEMU Barrier Client
|
||
|
===================
|
||
|
|
||
|
Generally, mouse and keyboard are grabbed through the QEMU video
|
||
|
interface emulation.
|
||
|
|
||
|
But when we want to use a video graphic adapter via a PCI passthrough
|
||
|
there is no way to provide the keyboard and mouse inputs to the VM
|
||
|
except by plugging a second set of mouse and keyboard to the host
|
||
|
or by installing a KVM software in the guest OS.
|
||
|
|
||
|
The QEMU Barrier client avoids this by implementing directly the Barrier
|
||
|
protocol into QEMU.
|
||
|
|
||
|
`Barrier <https://github.com/debauchee/barrier>`__
|
||
|
is a KVM (Keyboard-Video-Mouse) software forked from Symless's
|
||
|
synergy 1.9 codebase.
|
||
|
|
||
|
This protocol is enabled by adding an input-barrier object to QEMU.
|
||
|
|
||
|
Syntax::
|
||
|
|
||
|
input-barrier,id=<object-id>,name=<guest display name>
|
||
|
[,server=<barrier server address>][,port=<barrier server port>]
|
||
|
[,x-origin=<x-origin>][,y-origin=<y-origin>]
|
||
|
[,width=<width>][,height=<height>]
|
||
|
|
||
|
The object can be added on the QEMU command line, for instance with::
|
||
|
|
||
|
-object input-barrier,id=barrier0,name=VM-1
|
||
|
|
||
|
where VM-1 is the name the display configured in the Barrier server
|
||
|
on the host providing the mouse and the keyboard events.
|
||
|
|
||
|
by default ``<barrier server address>`` is ``localhost``,
|
||
|
``<port>`` is ``24800``, ``<x-origin>`` and ``<y-origin>`` are set to ``0``,
|
||
|
``<width>`` and ``<height>`` to ``1920`` and ``1080``.
|
||
|
|
||
|
If the Barrier server is stopped QEMU needs to be reconnected manually,
|
||
|
by removing and re-adding the input-barrier object, for instance
|
||
|
with the help of the HMP monitor::
|
||
|
|
||
|
(qemu) object_del barrier0
|
||
|
(qemu) object_add input-barrier,id=barrier0,name=VM-1
|