mirror of
https://github.com/mii443/qemu.git
synced 2025-08-22 15:15:46 +00:00
docs/barrier.txt has a couple of TODO notes about things to be implemented in this device; move them into a comment in the source code. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20210727204112.12579-3-peter.maydell@linaro.org
49 lines
1.7 KiB
Plaintext
49 lines
1.7 KiB
Plaintext
QEMU Barrier Client
|
|
|
|
|
|
* About
|
|
|
|
Barrier is a KVM (Keyboard-Video-Mouse) software forked from Symless's
|
|
synergy 1.9 codebase.
|
|
|
|
See https://github.com/debauchee/barrier
|
|
|
|
* QEMU usage
|
|
|
|
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.
|
|
|
|
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 int 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 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
|
|
|