Next revision | Previous revision |
it_best_practise:multiseat:linux [2017/06/12 12:55] – created Frank Knoben | it_best_practise:multiseat:linux [2024/02/27 11:41] (current) – external edit 127.0.0.1 |
---|
**Versionsinformationen:** | **Versionsinformationen:** |
| |
* Betriebssystem: CentOS 7.3 und höher / OpenSUSE 42.1 und höher | * Betriebssystem: CentOS 7.3 und höher / OpenSUSE 42.1 und höher |
* Mindestvoraussetzung:xorg-x11-server-Xorg Version 1.16 und höher | * Mindestvoraussetzung:xorg-x11-server-Xorg Version 1.16 und höher |
| |
Weitere Betriebssysteme: Ubuntu 16.04 und höher | Weitere Betriebssysteme: Ubuntu 16.04 und höher |
| |
* CentoOS 7.3 / gdm | * CentoOS 7.3 / gdm |
| <code> |
Installiere das Basissystem, den NVIDIA Treiber, sowie den Gnome Desktop | Installiere das Basissystem, den NVIDIA Treiber, sowie den Gnome Desktop |
yum -y install epel-release | yum -y install epel-release |
yum -y install dkms | yum -y install dkms |
yum -y groupinstall "KDE Plasma Workspaces" "KDE desktop" "X Window System" "Fonts" "GNOME desktop" | yum -y groupinstall "KDE Plasma Workspaces" "KDE desktop" "X Window System" "Fonts" "GNOME desktop" |
| </code> |
| |
**Konfiguration:** | **Konfiguration:** |
**lspci | grep VGA** | **lspci | grep VGA** |
Output bei drei eingebauten Grafikkarten z.B.: | Output bei drei eingebauten Grafikkarten z.B.: |
| <code> |
01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2) | 01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2) |
02:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2) | 02:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2) |
03:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2) | 03:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2) |
| </code> |
| |
| Suche die exakte Device Bezeichnung mit: **cd /sys; find . -name \*01:00.0\*** |
| |
| Ausgabe z.B: |
| <code> |
| ./bus/pci/devices/0000:05:00.0 |
| ./bus/pci/drivers/nvidia/0000:05:00.0 |
| ./devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:10.0/0000:05:00.0 |
| </code> |
| Die letzte Zeile ist die exakte Bezeichnung der ersten Grafikkarte. |
| Suche diese für die anderen Grafikkarten auch. |
erstelle drei login sessions durch anlegen der Datei **/etc/udev/rules.d/10-nvidia.conf** mit: | erstelle drei login sessions durch anlegen der Datei **/etc/udev/rules.d/10-nvidia.conf** mit: |
| <code> |
DEVPATH=="/devices/pci0000:00/0000:00:02.0/0000:01:00.0", TAG+="master-of-seat" | DEVPATH=="/devices/pci0000:00/0000:00:02.0/0000:01:00.0", TAG+="master-of-seat" |
DEVPATH=="/devices/pci0000:00/0000:00:02.0/0000:01:00.0", TAG+="graphics0" | DEVPATH=="/devices/pci0000:00/0000:00:02.0/0000:01:00.0", TAG+="graphics0" |
DEVPATH=="/devices/pci0000:00/0000:00:03.0/0000:02:00.0", TAG+="master-of-seat", TAG+="graphics1", ENV{ID_SEAT}="seat1" | DEVPATH=="/devices/pci0000:00/0000:00:03.0/0000:02:00.0", TAG+="master-of-seat", TAG+="graphics1", ENV{ID_SEAT}="seat1" |
DEVPATH=="/devices/pci0000:00/0000:00:04.0/0000:03:00.0", TAG+="master-of-seat", TAG+="graphics2", ENV{ID_SEAT}="seat2" | DEVPATH=="/devices/pci0000:00/0000:00:04.0/0000:03:00.0", TAG+="master-of-seat", TAG+="graphics2", ENV{ID_SEAT}="seat2" |
| </code> |
Aktiviere die Konfiguration mit dem Befehl **udevadm trigger** | Aktiviere die Konfiguration mit dem Befehl **udevadm trigger** |
| |
lösche die Standardkonfigurationsdatei /etc/X11/xorg.conf und erstelle | lösche die Standardkonfigurationsdatei /etc/X11/xorg.conf und erstelle |
die Konfigurationsdatei **/etc/X11/xorg.conf.d/99-nvidia.conf ** mit folgendem Inhalt | die Konfigurationsdatei **/etc/X11/xorg.conf.d/99-nvidia.conf ** mit folgendem Inhalt |
| <code> |
# /etc/X11/xorg.conf.d/99-nvidia.conf provided by http://elrepo.org | # /etc/X11/xorg.conf.d/99-nvidia.conf provided by http://elrepo.org |
| |
MatchSeat "seat2" | MatchSeat "seat2" |
EndSection | EndSection |
| </code> |
| |
| **Achtung: Sollte die VGA Karte eine Devicenummer zwischen 0A:00.0 und 0F:00.0 haben, so muss die BusID |
| dezimal codiert werden, also PCI:10:00:0 für Devicenummer 0A:00.0** |
| |
| Wenn der **gdm** Windowmanager genommen wird, so sollte jetzt nach einem Neustart auf allen drei Monitoren ein login Bildschirm erscheinen. |
| |
| **Zuordnung von Tastatur und Maus** |
| |
| Als nächstes muss jede Tastatur und jede Maus einem Seat zugeordnet werden. Wenn keine Zuordnung vorgenommen |
| wird, so werden die USB Geräte dem Seat-0 zugeordnet, d.h. alle Tastaturen und Mäuse gehen auf einen Monitor. |
| |
| Die Zuordnung geht wie folgt: |
| |
| Zuordnung zu Seat-X (mit X>0): |
| |
| Tastatur und Maus in den PC einstecken. |
| Auf Seat-0 ein Terminal öffnen und als root Benutzer den Befehl **dmesg** eingeben. |
| Ausgabe z.B.: |
| <code> |
| [93688.852557] input: Logitech USB Optical Mouse as /devices/pci0000:00/0000:00:1d.2/usb6/6-2/6-2:1.0/0003:046D:C046.0002/input/input17 |
| [93688.908122] hid-generic 0003:046D:C046.0002: input,hidraw0: USB HID v1.10 Mouse [Logitech USB Optical Mouse] on usb-0000:00:1d.2-2/input0 |
| </code> |
| |
| Die dort angegebene Device-ID muss man jetzt dem entsprechenden Seat zuordnen. |
| Dies kann man in der Datei **/etc/udev/rules.d/72-seat.rules** wie folgt machen (hier wird die Maus dem Seat-1 zugegordnet). |
| |
| <code> |
| SUBSYSTEM=="input", DEVPATH=="/devices/pci0000:00/0000:00:1d.2/usb6/6-2/6-2:1.0/0003:046D:C046.0002/input/input17", ENV{ID_INPUT.tags}="X1" |
| SUBSYSTEM=="input", DEVPATH=="/devices/pci0000:00/0000:00:1d.2/usb6/6-2/6-2:1.0/0003:046D:C046.0002/input/input17", ENV{ID_SEAT}="seat1" |
| SUBSYSTEM=="input", DEVPATH=="/devices/pci0000:00/0000:00:1d.2/usb6/6-2/6-2:1.0/0003:046D:C046.0002/input/input17", ENV{ID_VENDOR_ID}="seat1" |
| </code> |
| |
| Dies muss für alle Eingabegeräte gemacht werden. |
| Die Aktivierung der Regel erfolgt wieder mit dem Befehl **udevadm trigger** |
| Bei der Zuordnung der USB-Geräte sind auch Wildcards erlaubt, das ist hilfreich, wenn man mit USB-Hubs arbeitet, an denen Tastatur und Maus angeschlossen werden. |
| |