Ich habe Multiseat konfiguriert und mein Xorg hat 2 Server-Layouts. Eine ist für die nVidia-Karte und die andere für die Intel-Karte. Beide funktionieren, aber der der Intel-Karte zugewiesene Anzeigeserver hat keine Hardwarebeschleunigung, da das verwendete DRI- und GLX-Modul vom nVidia-Treiber stammt.
Meine Frage ist also, kann ich Layouts so konfigurieren, dass für jede Karte das richtige DRI und GLX verwendet werden?
Meine Xorg.conf:
Section "ServerLayout"
Identifier "Default"
Screen 0 "Screen0" 0 0
Option "Xinerama" "0"
EndSection
Section "ServerLayout"
Identifier "TV"
Screen 0 "Screen1" 0 0
Option "Xinerama" "0"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "DELL E198WFP"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GT 610"
EndSection
Section "Device"
Identifier "Device1"
Driver "intel"
BusID "PCI:0:2:0"
Option "AccelMethod" "uxa"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-1"
Option "metamodes" "DFP-0: nvidia-auto-select +1440+0, DFP-1: nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Protokolldatei für Intel:
[ 18.239]
X.Org X Server 1.13.0
Release Date: 2012-09-05
[ 18.239] X Protocol Version 11, Revision 0
[ 18.239] Build Operating System: Linux 2.6.24-32-xen x86_64 Ubuntu
[ 18.239] Current Operating System: Linux bytewiper 3.5.0-18-generic #29-Ubuntu SMP Fri Oct 19 10:26:51 UTC 2012 x86_64
[ 18.239] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.5.0-18-generic root=UUID=fc0616fd-f212-4846-9241-ba4a492f0513 ro quiet splash
[ 18.239] Build Date: 20 September 2012 11:55:20AM
[ 18.239] xorg-server 2:1.13.0+git20120920.70e57668-0ubuntu0ricotz (For technical support please see http://www.ubuntu.com/support)
[ 18.239] Current version of pixman: 0.26.0
[ 18.239] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[ 18.239] Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 18.239] (==) Log file: "/var/log/Xorg.1.log", Time: Wed Nov 21 18:32:14 2012
[ 18.239] (==) Using config file: "/etc/X11/xorg.conf"
[ 18.239] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[ 18.239] (++) ServerLayout "TV"
[ 18.239] (**) |-->Screen "Screen1" (0)
[ 18.239] (**) | |-->Monitor "Monitor1"
[ 18.240] (**) | |-->Device "Device1"
[ 18.240] (**) Option "Xinerama" "0"
[ 18.240] (==) Automatically adding devices
[ 18.240] (==) Automatically enabling devices
[ 18.240] (==) Automatically adding GPU devices
[ 18.240] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[ 18.240] Entry deleted from font path.
[ 18.240] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[ 18.240] Entry deleted from font path.
[ 18.240] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[ 18.240] Entry deleted from font path.
[ 18.240] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[ 18.240] Entry deleted from font path.
[ 18.240] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[ 18.240] Entry deleted from font path.
[ 18.240] (WW) The directory "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" does not exist.
[ 18.240] Entry deleted from font path.
[ 18.240] (==) FontPath set to:
/usr/share/fonts/X11/misc,
/usr/share/fonts/X11/Type1,
built-ins
[ 18.240] (==) ModulePath set to "/usr/lib/x86_64-linux-gnu/xorg/extra-modules,/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"
[ 18.240] (II) The server relies on udev to provide the list of input devices.
If no devices become available, reconfigure udev or disable AutoAddDevices.
[ 18.240] (II) Loader magic: 0x7f6917944c40
[ 18.240] (II) Module ABI versions:
[ 18.240] X.Org ANSI C Emulation: 0.4
[ 18.240] X.Org Video Driver: 13.0
[ 18.240] X.Org XInput driver : 18.0
[ 18.240] X.Org Server Extension : 7.0
[ 18.240] (II) config/udev: Adding drm device (/dev/dri/card0)
[ 18.241] (--) PCI: (0:0:2:0) 8086:0152:1043:84ca rev 9, Mem @ 0xf7400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64
[ 18.241] (--) PCI:*(0:1:0:0) 10de:104a:1458:3546 rev 161, Mem @ 0xf6000000/16777216, 0xe0000000/134217728, 0xe8000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/524288
[ 18.241] (II) Open ACPI successful (/var/run/acpid.socket)
[ 18.241] Initializing built-in extension Generic Event Extension
[ 18.241] Initializing built-in extension SHAPE
[ 18.241] Initializing built-in extension MIT-SHM
[ 18.241] Initializing built-in extension XInputExtension
[ 18.241] Initializing built-in extension XTEST
[ 18.241] Initializing built-in extension BIG-REQUESTS
[ 18.241] Initializing built-in extension SYNC
[ 18.241] Initializing built-in extension XKEYBOARD
[ 18.241] Initializing built-in extension XC-MISC
[ 18.241] Initializing built-in extension SECURITY
[ 18.241] Initializing built-in extension XINERAMA
[ 18.241] Initializing built-in extension XFIXES
[ 18.241] Initializing built-in extension RENDER
[ 18.241] Initializing built-in extension RANDR
[ 18.241] Initializing built-in extension COMPOSITE
[ 18.241] Initializing built-in extension DAMAGE
[ 18.241] Initializing built-in extension MIT-SCREEN-SAVER
[ 18.241] Initializing built-in extension DOUBLE-BUFFER
[ 18.241] Initializing built-in extension RECORD
[ 18.241] Initializing built-in extension DPMS
[ 18.241] Initializing built-in extension X-Resource
[ 18.241] Initializing built-in extension XVideo
[ 18.241] Initializing built-in extension XVideo-MotionCompensation
[ 18.241] Initializing built-in extension XFree86-VidModeExtension
[ 18.241] Initializing built-in extension XFree86-DGA
[ 18.241] Initializing built-in extension XFree86-DRI
[ 18.241] Initializing built-in extension DRI2
[ 18.241] (II) LoadModule: "glx"
[ 18.241] (II) Loading /usr/lib/x86_64-linux-gnu/xorg/extra-modules/libglx.so
[ 18.247] (II) Module glx: vendor="NVIDIA Corporation"
[ 18.247] compiled for 4.0.2, module version = 1.0.0
[ 18.247] Module class: X.Org Server Extension
[ 18.247] (II) NVIDIA GLX Module 310.19 Thu Nov 8 01:12:43 PST 2012
[ 18.247] Loading extension GLX
[ 18.247] (II) LoadModule: "intel"
[ 18.248] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[ 18.248] (II) Module intel: vendor="X.Org Foundation"
[ 18.248] compiled for 1.13.0, module version = 2.20.13
[ 18.248] Module class: X.Org Video Driver
[ 18.248] ABI class: X.Org Video Driver, version 13.0
[ 18.248] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G, 915G,
E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, Pineview G,
965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, GM45,
4 Series, G45/G43, Q45/Q43, G41, B43, B43, Clarkdale, Arrandale,
Sandybridge Desktop (GT1), Sandybridge Desktop (GT2),
Sandybridge Desktop (GT2+), Sandybridge Mobile (GT1),
Sandybridge Mobile (GT2), Sandybridge Mobile (GT2+),
Sandybridge Server, Ivybridge Mobile (GT1), Ivybridge Mobile (GT2),
Ivybridge Desktop (GT1), Ivybridge Desktop (GT2), Ivybridge Server,
Ivybridge Server (GT2), Haswell Desktop (GT1), Haswell Desktop (GT2),
Haswell Desktop (GT2+), Haswell Mobile (GT1), Haswell Mobile (GT2),
Haswell Mobile (GT2+), Haswell Server (GT1), Haswell Server (GT2),
Haswell Server (GT2+), Haswell SDV Desktop (GT1),
Haswell SDV Desktop (GT2), Haswell SDV Desktop (GT2+),
Haswell SDV Mobile (GT1), Haswell SDV Mobile (GT2),
Haswell SDV Mobile (GT2+), Haswell SDV Server (GT1),
Haswell SDV Server (GT2), Haswell SDV Server (GT2+),
Haswell ULT Desktop (GT1), Haswell ULT Desktop (GT2),
Haswell ULT Desktop (GT2+), Haswell ULT Mobile (GT1),
Haswell ULT Mobile (GT2), Haswell ULT Mobile (GT2+),
Haswell ULT Server (GT1), Haswell ULT Server (GT2),
Haswell ULT Server (GT2+), Haswell CRW Desktop (GT1),
Haswell CRW Desktop (GT2), Haswell CRW Desktop (GT2+),
Haswell CRW Mobile (GT1), Haswell CRW Mobile (GT2),
Haswell CRW Mobile (GT2+), Haswell CRW Server (GT1),
Haswell CRW Server (GT2), Haswell CRW Server (GT2+),
ValleyView PO board
[ 18.248] (++) using VT number 8
[ 18.593] (II) intel(0): using device path '/dev/dri/card0'
[ 18.593] (**) intel(0): Depth 24, (--) framebuffer bpp 32
[ 18.593] (==) intel(0): RGB weight 888
[ 18.593] (==) intel(0): Default visual is TrueColor
[ 18.593] (**) intel(0): Option "AccelMethod" "uxa"
[ 18.593] (--) intel(0): Integrated Graphics Chipset: Intel(R) Ivybridge Desktop (GT1)
[ 18.593] (**) intel(0): Relaxed fencing enabled
[ 18.593] (**) intel(0): Wait on SwapBuffers? enabled
[ 18.593] (**) intel(0): Triple buffering? enabled
[ 18.593] (**) intel(0): Framebuffer tiled
[ 18.593] (**) intel(0): Pixmaps tiled
[ 18.593] (**) intel(0): 3D buffers tiled
[ 18.593] (**) intel(0): SwapBuffers wait enabled
...
[ 20.312] (II) Module fb: vendor="X.Org Foundation"
[ 20.312] compiled for 1.13.0, module version = 1.0.0
[ 20.312] ABI class: X.Org ANSI C Emulation, version 0.4
[ 20.312] (II) Loading sub module "dri2"
[ 20.312] (II) LoadModule: "dri2"
[ 20.312] (II) Module "dri2" already built-in
[ 20.312] (==) Depth 24 pixmap format is 32 bpp
[ 20.312] (II) intel(0): [DRI2] Setup complete
[ 20.312] (II) intel(0): [DRI2] DRI driver: i965
[ 20.312] (II) intel(0): Allocated new frame buffer 1920x1080 stride 7680, tiled
[ 20.312] (II) UXA(0): Driver registered support for the following operations:
[ 20.312] (II) solid
[ 20.312] (II) copy
[ 20.312] (II) composite (RENDER acceleration)
[ 20.312] (II) put_image
[ 20.312] (II) get_image
[ 20.312] (==) intel(0): Backing store disabled
[ 20.312] (==) intel(0): Silken mouse enabled
[ 20.312] (II) intel(0): Initializing HW Cursor
[ 20.312] (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[ 20.313] (**) intel(0): DPMS enabled
[ 20.313] (==) intel(0): Intel XvMC decoder enabled
[ 20.313] (II) intel(0): Set up textured video
[ 20.313] (II) intel(0): [XvMC] xvmc_vld driver initialized.
[ 20.313] (II) intel(0): direct rendering: DRI2 Enabled
[ 20.313] (==) intel(0): hotplug detection: "enabled"
[ 20.332] (--) RandR disabled
[ 20.335] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
[ 20.335] (II) intel(0): Setting screen physical size to 508 x 285
[ 20.338] (II) XKB: reuse xkmfile /var/lib/xkb/server-B20D7FC79C7F597315E3E501AEF10E0D866E8E92.xkm
[ 20.340] (II) config/udev: Adding input device Power Button (/dev/input/event1)
[ 20.340] (**) Power Button: Applying InputClass "evdev keyboard catchall"
[ 20.340] (II) LoadModule: "evdev"
[ 20.340] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
Antworten:
Okay, ich habe eine Lösung gefunden, aber es gibt einen Fehler, der verhindert, dass die Hardwarebeschleunigung derzeit auf Intel-GPUs in Ubuntu 12.10 mit der neuen Mesa 9.0.1-Bibliothek funktioniert.
Kurz gesagt, das Problem war das Laden von GLX. nVidia würde sein eigenes GLX-Modul schieben und Intel auf die Zehen treten.
Ich habe eine Lösung gefunden, indem ich diese Zeile bemerkt habe:
Die Module in
/usr/lib/x86_64-linux-gnu/xorg/extra-modules
sind alle nVidia-spezifischen Module . Also habe ich LightDM so konfiguriert, dass zweixorg.conf
Dateien verwendet werden. In Intel One habe ich dasModulePath
Ausschließen des nVidia-Verzeichnisses manuell festgelegt . Dies führte zum Laden des richtigen GLX-Moduls.Meine
/etc/lightdm/lightdm.conf
Datei sieht folgendermaßen aus:Zeilen hinzugefügt zu
xorg.conf.intel
:quelle
Auf meiner Seite, mit Ubuntu 14.04 sind die Pfade anders und Nvidia proprietäre Treiber Überschreibung
libglx.so
in/usr/lib/xorg/modules/extensions/libglx.so
.Um das Problem zu lösen, ich duplizieren
/usr/lib/xorg/modules
in/usr/lib/xorg/modules-nvidia
und installieren Sie die Intel freundlichlibglx.so
mit:sudo apt-get install --reinstall xserver-xorg-core
Dadurch wird das Original wiederhergestellt
libglx.so
. Auf demxorg.conf.nvidia
füge ich den Pfad zu den gültigen Modulen hinzu:Section "Files" ModulePath "/usr/lib/xorg/modules-nvidia" EndSection
Auch in muss
/etc/lightdm/lightdm.conf
ich hinzufügen:xserver-command=/usr/bin/X -sharevts
unter[Seat:1]
Abschnitt. Dieser Tipp wurde hier gefunden .Vielen Dank an MeanEYE, der mich auf den richtigen Weg weist.
quelle
Ich habe ein bisschen recherchiert und festgestellt, dass es verschiedene Möglichkeiten gibt, Multiseat-Konfigurationen (Multi-Station, Multi-Terminal usw.) zu erzielen.
1) Die Methode, die ich empfehlen würde, da sie Ihr Standard-Xorg und einen integrierten Kerneltreiber verwendet, verwendet evdev . Hier finden Sie eine Anleitung zum Einrichten einer 4-GPU- und 4-Monitor-Multiseat-Konfiguration mit evdev. Das Handbuch ist für Debian Sarge- und SiS-GPUs gedacht, aber ich denke, Sie können aus diesem Handbuch viele sehr nützliche Informationen ableiten: https://en.wikibooks.org/wiki/Multiterminal_with_evdev
2) Eine andere Methode ist die Verwendung von Xypher , einem anderen X Windows-Server, der auf KDrive basiert. Ich bin mir nicht sicher, ob dies der Weg ist, den Sie gehen möchten, aber hier ist sowieso dieser Leitfaden: https://en.wikibooks.org/wiki/en:Multiterminal_with_Xephyr
3) Eine andere Option ist die Verwendung eines Tools namens Multiseat Display Manager (MDM), das verspricht, den gesamten Einrichtungsprozess für Sie zu automatisieren. Es scheint jedoch nicht aktualisiert zu werden, daher empfehle ich es nicht. Sie können es jedoch leicht mit Google als letzten Ausweg finden.
Mir ist nicht bekannt, was Sie an Ihrer Konfiguration getan haben oder noch nicht getan haben. Lesen Sie daher am besten die evdev-Anleitung und versuchen Sie, die Schritte zu identifizieren, die Sie noch nicht getan haben. Die größten Unterschiede, die ich sehe, sind
A) Im Beispiel xorg.conf gibt es nur 1 Bildschirm- und ServerLayout-Abschnitt. Die zusätzlichen Bildschirme und das ServerLayout werden zusammen in einem separaten Conf definiert: xorg.conf.probe
B) Zusätzlich werden alle Geräte explizit durch ihre BusIDs referenziert, die mit lspci und erhalten wurden
C) Interrupts sind in IRQ 10 deaktiviert.
Hoffentlich hilft Ihnen dies, den Betrieb aufzunehmen, viel Glück!
quelle
xorg.conf
Dateien versuchen und es hoffentlich zum Laufen bringen.In Ubuntu 16.04 musste ich den
/usr/local/bin/X
Wrapper aktualisieren mit:/etc/X11/Xsession.d/00ldlibrary
kann die$XDG_SEAT
Variable testen und setztexport LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa:/usr/lib/i386-linux-gnu/mesa/
nur für die Intel-Karte.quelle
In 18.04 können Benutzer dank der glvnd-Unterstützung sowohl Mesa- als auch proprietäre Nvidia-Treiber ganz einfach installieren , ohne sich mit LD_PRELOAD herumschlagen zu müssen! Alle umgebungsvariablen Dinge und die Wrapper-Skripte sind jetzt nicht mehr erforderlich.
Da dies nicht mit einer bestimmten Ubuntu-Version gekennzeichnet ist und die vorhandenen Antworten mit meinem System (Ubuntu 15.10) nicht vollständig funktionierten, veröffentliche ich diese Antwort, die verwendet wird
logind
.Grundsätzlich müssen Sie, damit GLX und libGL funktionieren, sowohl den X-Server als auch die Benutzersitzung so konfigurieren, dass je nach Sitz die richtige libGL-Implementierung verwendet wird.
Daher benötigen Sie ein Wrapper-Skript, damit LightDM X startet, und ein Xsession-Skript, um festzulegen,
LD_LIBRARY_PATH
dass die Sitzung die richtige libGL verwendet.In
/etc/X11/Xsession.d/00ldlibrary
:(unter der Annahme, dass seat1 nvidia und seat0 mesa verwendet)
Ebenso müssen Sie den X-Server (
/usr/local/bin/X
) umschließen :Schließlich müssen Sie LightDM so konfigurieren, dass diese verwendet werden können in
/etc/lightdm/lightdm.conf
:Weitere Informationen finden Sie in meinem Multiseat-Mesa-NVIDIA-Repo, das weitere Details und die vollständigen Konfigurationsdateien und Skripte enthält.
quelle
Ich verwende Arch Linux, aber dies hat mir ein wenig geholfen, sowohl meine Intel- als auch meine Nvidia-eigenen Treiber mit
gl/vaapi/vdpau
Funktionen zu laden .Alles was Sie tun müssen (Fragen und Antworten):
Installieren Sie proprietär
nvidia-utils
.Kopieren
/usr/lib/xorg/modules
nach/usr/lib/xorg/modules_nvidia
Download und entpacken Sie die neuesten
libva-intel-driver
,mesa-vdpau
,mesa
,mesa-libgl
, undxorg-server
als Pakete passend Ihre Architektur in einem separaten Verzeichnis. Danncp -r
(als root / sudo) den Inhalt von"separate directory"/usr/lib
so etwas wie/usr/lib_intel
und"separate directory"/usr/lib/xorg/modules/*
zu deinem eigentlichen/usr/lib/xorg/modules
Verzeichnis (Überschreiben).Und
Starten Sie neu
X-Servers
, versuchen Sie esglxinfo
Dies wird sich natürlich bei nvidia-Updates selbst zerstören.
Ich habe festgestellt, dass dies beim Neustart nicht funktioniert.
Viel besserer Hack:
Erstellen Sie keine ld.so.conf.d / -Datei. Fügen Sie stattdessen Folgendes zu / usr / bin / X hinzu:
Ändern Sie "vt7" in das, was Ihr Display Manager zum Starten Ihres Intel X-Servers verwendet (: 0 ,: 2, vt7, vt8, isolatodevice = ...).
Natürlich können Sie auch / usr / bin / X nach / usr / bin / Xintel kopieren und stattdessen bearbeiten, indem Sie Ihr wm auf diese Datei verweisen (kdm 'ServerCmd').
Bearbeiten oder erstellen Sie dann eine neue Sitzungsdatei, z. B. / usr / bin / startkde (keine Überprüfung auf DISPLAY #!), Und fügen Sie Folgendes hinzu:
Auf diese Weise müssen Sie nicht einmal etwas überschreiben. Das Verzeichnis / usr / lib_intel zu durchsuchen und die 2 bearbeiteten Dateien zurückzusetzen, ist alles, was Sie tun müssen, um diesen Hack wieder zu entfernen.
quelle
LD_LIBRARY_PATH
), funktioniert es auf einem Ubuntu-System nicht.