* [Qemu-devel] [PATCH 0/3] docs/multiseat.txt updates
@ 2014-06-02 14:20 Gerd Hoffmann
2014-06-02 14:20 ` [Qemu-devel] [PATCH 1/3] docs/multiseat.txt: use autoseat Gerd Hoffmann
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Gerd Hoffmann @ 2014-06-02 14:20 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
Hi,
Documentation update for multiseat setup.
cheers,
Gerd
Gerd Hoffmann (3):
docs/multiseat.txt: use autoseat
docs/multiseat.txt: gtk joined the party
docs/multiseat.txt: add note about spice
docs/multiseat.txt | 78 ++++++++++++++++++++++++++++++++++++------------------
1 file changed, 52 insertions(+), 26 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH 1/3] docs/multiseat.txt: use autoseat
2014-06-02 14:20 [Qemu-devel] [PATCH 0/3] docs/multiseat.txt updates Gerd Hoffmann
@ 2014-06-02 14:20 ` Gerd Hoffmann
2014-06-02 14:20 ` [Qemu-devel] [PATCH 2/3] docs/multiseat.txt: gtk joined the party Gerd Hoffmann
2014-06-02 14:20 ` [Qemu-devel] [PATCH 3/3] docs/multiseat.txt: add note about spice Gerd Hoffmann
2 siblings, 0 replies; 4+ messages in thread
From: Gerd Hoffmann @ 2014-06-02 14:20 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
When using the autoseat feature of systemd/logind we'll only need
a single udev rule for the pci bridge, which simplifies the guest
setup a bit.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
docs/multiseat.txt | 54 +++++++++++++++++++++++++++++++-----------------------
1 file changed, 31 insertions(+), 23 deletions(-)
diff --git a/docs/multiseat.txt b/docs/multiseat.txt
index a6c71dd..126f39d 100644
--- a/docs/multiseat.txt
+++ b/docs/multiseat.txt
@@ -46,29 +46,37 @@ You need a pretty recent linux guest. systemd with loginctl. kernel
fully updated for the new kernel though, i.e. the live iso doesn't cut
it.
-Now we'll have to configure the guest. Boot and login. By default
-all devices belong to seat0. You can use "loginctl seat-status seat0"
-to list them all (and to get the sysfs paths for cut+paste). Now
-we'll go assign all pci devices connected the pci bridge in slot 12 to
-a new head:
-
-loginctl attach seat-qemu \
- /sys/devices/pci0000:00/0000:00:12.0/0000:01:02.0/drm/card1
-loginctl attach seat-qemu \
- /sys/devices/pci0000:00/0000:00:12.0/0000:01:02.0/graphics/fb1
-loginctl attach seat-qemu \
- /sys/devices/pci0000:00/0000:00:12.0/0000:01:0f.0/usb2
-
-Use "loginctl seat-status seat-qemu" to check the result. It isn't
-needed to assign the usb devices to the head individually, assigning a
-usb (root) hub will automatically assign all usb devices connected to
-it too.
-
-BTW: loginctl writes udev rules to /etc/udev/rules.d to make these
-device assignments permanent, so you need to do this only once.
-
-Now simply restart gdm (rebooting will do too), and a login screen
-should show up on the second head.
+Now we'll have to configure the guest. Boot and login. "lspci -vt"
+should list the pci bridge with the display adapter and usb controller:
+
+ [root@fedora ~]# lspci -vt
+ -[0000:00]-+-00.0 Intel Corporation 440FX - 82441FX PMC [Natoma]
+ [ ... ]
+ \-12.0-[01]--+-02.0 Device 1234:1111
+ \-0f.0 NEC Corporation USB 3.0 Host Controller
+
+Good. Now lets tell the system that the pci bridge and all devices
+below it belong to a separate seat by dropping a file into
+/etc/udev/rules.d:
+
+ [root@fedora ~]# cat /etc/udev/rules.d/70-qemu-autoseat.rules
+ SUBSYSTEMS=="pci", DEVPATH=="*/0000:00:12.0", TAG+="seat", ENV{ID_AUTOSEAT}="1"
+
+Reboot. System should come up with two seats. With loginctl you can
+check the configuration:
+
+ [root@fedora ~]# loginctl list-seats
+ SEAT
+ seat0
+ seat-pci-pci-0000_00_12_0
+
+ 2 seats listed.
+
+You can use "loginctl seat-status seat-pci-pci-0000_00_12_0" to list
+the devices attached to the seat.
+
+Background info is here:
+ http://www.freedesktop.org/wiki/Software/systemd/multiseat/
Enjoy!
--
1.8.3.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH 2/3] docs/multiseat.txt: gtk joined the party
2014-06-02 14:20 [Qemu-devel] [PATCH 0/3] docs/multiseat.txt updates Gerd Hoffmann
2014-06-02 14:20 ` [Qemu-devel] [PATCH 1/3] docs/multiseat.txt: use autoseat Gerd Hoffmann
@ 2014-06-02 14:20 ` Gerd Hoffmann
2014-06-02 14:20 ` [Qemu-devel] [PATCH 3/3] docs/multiseat.txt: add note about spice Gerd Hoffmann
2 siblings, 0 replies; 4+ messages in thread
From: Gerd Hoffmann @ 2014-06-02 14:20 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
docs/multiseat.txt | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/docs/multiseat.txt b/docs/multiseat.txt
index 126f39d..dd3a831 100644
--- a/docs/multiseat.txt
+++ b/docs/multiseat.txt
@@ -6,16 +6,20 @@ host side
---------
First you must compile qemu with a user interface supporting
-multihead/multiseat and input event routing. Right now this list is
-pretty short: sdl2.
+multihead/multiseat and input event routing. Right now this
+list includes sdl2 and gtk (both 2+3):
./configure --enable-sdl --with-sdlabi=2.0
+or
+
+ ./configure --enable-gtk
+
Next put together the qemu command line:
qemu -enable-kvm -usb $memory $disk $whatever \
- -display sdl \
+ -display [ sdl | gtk ] \
-vga std \
-device usb-tablet
@@ -37,6 +41,12 @@ The "display=video2" sets up the input routing. Any input coming from
the window which belongs to the video.2 display adapter will be routed
to these input devices.
+The sdl2 ui will start up with two windows, one for each display
+device. The gtk ui will start with a single window and each display
+in a separate tab. You can either simply switch tabs to switch heads,
+or use the "View / Detach tab" menu item to move one of the displays
+to its own window so you can see both display devices side-by-side.
+
guest side
----------
--
1.8.3.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH 3/3] docs/multiseat.txt: add note about spice
2014-06-02 14:20 [Qemu-devel] [PATCH 0/3] docs/multiseat.txt updates Gerd Hoffmann
2014-06-02 14:20 ` [Qemu-devel] [PATCH 1/3] docs/multiseat.txt: use autoseat Gerd Hoffmann
2014-06-02 14:20 ` [Qemu-devel] [PATCH 2/3] docs/multiseat.txt: gtk joined the party Gerd Hoffmann
@ 2014-06-02 14:20 ` Gerd Hoffmann
2 siblings, 0 replies; 4+ messages in thread
From: Gerd Hoffmann @ 2014-06-02 14:20 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
docs/multiseat.txt | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/docs/multiseat.txt b/docs/multiseat.txt
index dd3a831..67151e0 100644
--- a/docs/multiseat.txt
+++ b/docs/multiseat.txt
@@ -47,6 +47,14 @@ in a separate tab. You can either simply switch tabs to switch heads,
or use the "View / Detach tab" menu item to move one of the displays
to its own window so you can see both display devices side-by-side.
+Note on spice: Spice handles multihead just fine. But it can't do
+multiseat. For tablet events the event source is sent to the spice
+agent. But qemu can't figure it, so it can't do input routing.
+Fixing this needs a new or extended input interface between
+libspice-server and qemu. For keyboard events it is even worse: The
+event source isn't included in the spice protocol, so the wire
+protocol must be extended to support this.
+
guest side
----------
--
1.8.3.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-06-02 14:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-02 14:20 [Qemu-devel] [PATCH 0/3] docs/multiseat.txt updates Gerd Hoffmann
2014-06-02 14:20 ` [Qemu-devel] [PATCH 1/3] docs/multiseat.txt: use autoseat Gerd Hoffmann
2014-06-02 14:20 ` [Qemu-devel] [PATCH 2/3] docs/multiseat.txt: gtk joined the party Gerd Hoffmann
2014-06-02 14:20 ` [Qemu-devel] [PATCH 3/3] docs/multiseat.txt: add note about spice Gerd Hoffmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).