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