xref: /qemu/docs/multiseat.txt (revision 3503206a)
1
2multiseat howto (with some multihead coverage)
3==============================================
4
5host side
6---------
7
8First you must compile qemu with a user interface supporting
9multihead/multiseat and input event routing.  Right now this list is
10pretty short: sdl2.
11
12  ./configure --enable-sdl --with-sdlabi=2.0
13
14
15Next put together the qemu command line:
16
17qemu	-enable-kvm -usb $memory $disk $whatever \
18	-display sdl \
19	-vga std \
20	-device usb-tablet
21
22That is it for the first head, which will use the standard vga, the
23standard ps/2 keyboard (implicitly there) and the usb-tablet.  Now the
24additional switches for the second head:
25
26	-device pci-bridge,addr=12.0,chassis_nr=2,id=head.2 \
27	-device secondary-vga,bus=head.2,addr=02.0,id=video.2 \
28	-device nec-usb-xhci,bus=head.2,addr=0f.0,id=usb.2 \
29	-device usb-kbd,bus=usb.2.0,port=1,display=video.2 \
30	-device usb-tablet,bus=usb.2.0,port=2,display=video.2
31
32This places a pci bridge in slot 12, connects a display adapter and
33xhci (usb) controller to the bridge.  Then it adds a usb keyboard and
34usb mouse, both connected to the xhci and linked to the display.
35
36The "display=video2" sets up the input routing.  Any input coming from
37the window which belongs to the video.2 display adapter will be routed
38to these input devices.
39
40
41guest side
42----------
43
44You need a pretty recent linux guest.  systemd with loginctl.  kernel
453.14+ with CONFIG_DRM_BOCHS enabled.  Fedora 20 will do.  Must be
46fully updated for the new kernel though, i.e. the live iso doesn't cut
47it.
48
49Now we'll have to configure the guest.  Boot and login.  "lspci -vt"
50should list the pci bridge with the display adapter and usb controller:
51
52    [root@fedora ~]# lspci -vt
53    -[0000:00]-+-00.0  Intel Corporation 440FX - 82441FX PMC [Natoma]
54               [ ... ]
55               \-12.0-[01]--+-02.0  Device 1234:1111
56                            \-0f.0  NEC Corporation USB 3.0 Host Controller
57
58Good.  Now lets tell the system that the pci bridge and all devices
59below it belong to a separate seat by dropping a file into
60/etc/udev/rules.d:
61
62    [root@fedora ~]# cat /etc/udev/rules.d/70-qemu-autoseat.rules
63    SUBSYSTEMS=="pci", DEVPATH=="*/0000:00:12.0", TAG+="seat", ENV{ID_AUTOSEAT}="1"
64
65Reboot.  System should come up with two seats.  With loginctl you can
66check the configuration:
67
68    [root@fedora ~]# loginctl list-seats
69    SEAT
70    seat0
71    seat-pci-pci-0000_00_12_0
72
73    2 seats listed.
74
75You can use "loginctl seat-status seat-pci-pci-0000_00_12_0" to list
76the devices attached to the seat.
77
78Background info is here:
79  http://www.freedesktop.org/wiki/Software/systemd/multiseat/
80
81Enjoy!
82
83--
84Gerd Hoffmann <kraxel@redhat.com>
85