]>
Commit | Line | Data |
---|---|---|
8977bd11 GH |
1 | |
2 | multiseat howto (with some multihead coverage) | |
3 | ============================================== | |
4 | ||
5 | host side | |
6 | --------- | |
7 | ||
8 | First you must compile qemu with a user interface supporting | |
9 | multihead/multiseat and input event routing. Right now this list is | |
10 | pretty short: sdl2. | |
11 | ||
12 | ./configure --enable-sdl --with-sdlabi=2.0 | |
13 | ||
14 | ||
15 | Next put together the qemu command line: | |
16 | ||
17 | qemu -enable-kvm -usb $memory $disk $whatever \ | |
18 | -display sdl \ | |
19 | -vga std \ | |
20 | -device usb-tablet | |
21 | ||
22 | That is it for the first head, which will use the standard vga, the | |
23 | standard ps/2 keyboard (implicitly there) and the usb-tablet. Now the | |
24 | additional 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 | ||
32 | This places a pci bridge in slot 12, connects a display adapter and | |
33 | xhci (usb) controller to the bridge. Then it adds a usb keyboard and | |
34 | usb mouse, both connected to the xhci and linked to the display. | |
35 | ||
36 | The "display=video2" sets up the input routing. Any input coming from | |
37 | the window which belongs to the video.2 display adapter will be routed | |
38 | to these input devices. | |
39 | ||
40 | ||
41 | guest side | |
42 | ---------- | |
43 | ||
44 | You need a pretty recent linux guest. systemd with loginctl. kernel | |
45 | 3.14+ with CONFIG_DRM_BOCHS enabled. Fedora 20 will do. Must be | |
46 | fully updated for the new kernel though, i.e. the live iso doesn't cut | |
47 | it. | |
48 | ||
3503206a GH |
49 | Now we'll have to configure the guest. Boot and login. "lspci -vt" |
50 | should 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 | ||
58 | Good. Now lets tell the system that the pci bridge and all devices | |
59 | below 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 | ||
65 | Reboot. System should come up with two seats. With loginctl you can | |
66 | check 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 | ||
75 | You can use "loginctl seat-status seat-pci-pci-0000_00_12_0" to list | |
76 | the devices attached to the seat. | |
77 | ||
78 | Background info is here: | |
79 | http://www.freedesktop.org/wiki/Software/systemd/multiseat/ | |
8977bd11 GH |
80 | |
81 | Enjoy! | |
82 | ||
83 | -- | |
84 | Gerd Hoffmann <[email protected]> |