aboutsummaryrefslogtreecommitdiff
path: root/docs/barrier.txt
blob: 54cb5fd8efcd5c3ae6c65915c2943b177fce5a9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
                                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