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