Mam skonfigurowany multiseat, a mój Xorg ma 2 układy serwerów. Jeden dotyczy karty nVidia, a drugi karty Intel. Oba działają, ale serwer wyświetlania przypisany do karty Intel nie ma przyspieszenia sprzętowego, ponieważ używany moduł DRI i GLX pochodzi ze sterownika nVidia.
Więc moje pytanie brzmi: czy mogę w jakiś sposób skonfigurować układy, aby używać prawidłowego DRI i GLX z każdą kartą?
Mój 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
Plik dziennika dla Intela:
[ 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
Odpowiedzi:
Ok, więc znalazłem rozwiązanie, ale jest błąd, który uniemożliwia przyspieszenie sprzętowe w tym momencie na procesorach graficznych Intela w Ubuntu 12.10 z nową biblioteką Mesa 9.0.1.
Krótko mówiąc, problem polegał na ładowaniu GLX. nVidia pchnie własny moduł GLX i nadepnie na palce Intela.
Znalazłem rozwiązanie, zauważając tę linię:
Mianowicie znajdujące się w nim moduły
/usr/lib/x86_64-linux-gnu/xorg/extra-modules
są specyficzne dla nVidii. Więc skonfigurowałem LightDM do używania dwóchxorg.conf
plików. W Intel One ręcznie ustawiłemModulePath
wykluczanie katalogu nVidia. Spowodowało to załadowanie odpowiedniego modułu GLX.Mój
/etc/lightdm/lightdm.conf
plik wygląda następująco:Linie dodane do
xorg.conf.intel
:źródło
Na mojej stronie, z Ubuntu 14.04, ścieżki są różne i Nvidia zastrzeżone przesłanianie kierowca
libglx.so
w/usr/lib/xorg/modules/extensions/libglx.so
.Aby rozwiązać ten problem, ja powielać
/usr/lib/xorg/modules
w/usr/lib/xorg/modules-nvidia
, a następnie ponownie zainstalować Intel przyjaznelibglx.so
z:sudo apt-get install --reinstall xserver-xorg-core
To przywróci oryginał
libglx.so
. Naxorg.conf.nvidia
dodaję ścieżkę do prawidłowych modułów:Section "Files" ModulePath "/usr/lib/xorg/modules-nvidia" EndSection
Ponadto w
/etc/lightdm/lightdm.conf
muszę dodać:xserver-command=/usr/bin/X -sharevts
w[Seat:1]
sekcji. Ta wskazówka została tu znaleziona .Wielkie podziękowania dla MeanEYE, który wskazuje mi właściwy sposób.
źródło
Przeprowadziłem więc trochę badań i odkryłem, że istnieje wiele różnych sposobów, w jaki można uzyskać konfiguracje wielostanowiskowe (wielostanowiskowe, wielozłączowe itp.).
1) Metodą, którą poleciłbym, ponieważ używa standardowego Xorga i wbudowanego sterownika jądra, jest użycie evdev . Oto przewodnik, jak skonfigurować konfigurację wielopunktową z 4 GPU i 4 monitorami za pomocą evdev. Przewodnik jest przeznaczony dla procesorów graficznych Debian Sarge i SiS, ale myślę, że możesz wyciągnąć wiele bardzo przydatnych informacji z tego przewodnika: https://en.wikibooks.org/wiki/Multiterminal_with_evdev
2) Inną metodą jest użycie Xypher , innego serwera X Windows opartego na KDrive. Nie jestem pewien, czy to jest droga, którą chcesz się udać, jednak tutaj jest ten przewodnik: https://en.wikibooks.org/wiki/en:Multiterminal_with_Xephyr
3) Inną opcją jest użycie narzędzia o nazwie Multiseat Display Manager (MDM), które obiecuje zautomatyzować cały proces instalacji, jednak nie wydaje się być aktualizowane, więc nie polecam go. Można go jednak łatwo znaleźć w Google w ostateczności.
Nie jestem świadomy tego, co masz lub czego jeszcze nie zrobiłeś w swojej konfiguracji, więc najlepiej jest przeczytać przewodnik evdev i spróbować zidentyfikować kroki, których jeszcze nie zrobiłeś. Największe różnice, jakie widzę, to
A) W przykładowym xorg.conf jest tylko 1 sekcja Screen i ServerLayout. Dodatkowe ekrany i ServerLayout są zdefiniowane razem w osobnym conf: xorg.conf.probe
B) Ponadto wszystkie urządzenia są wyraźnie przywoływane przez ich identyfikatory BusID, które zostały uzyskane przy użyciu lspci i
C) Przerwania są wyłączone na IRQ 10.
Mamy nadzieję, że pomoże ci to rozpocząć pracę, powodzenia!
źródło
xorg.conf
plikami i mam nadzieję, że zadziała.W Ubuntu 16.04 musiałem zaktualizować
/usr/local/bin/X
opakowanie za pomocą:/etc/X11/Xsession.d/00ldlibrary
może przetestować$XDG_SEAT
zmienną i zestawyexport LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa:/usr/lib/i386-linux-gnu/mesa/
tylko dla karty Intel.źródło
W 18.04 obsługa glvnd pozwala użytkownikom na bardzo łatwe instalowanie zarówno sterowników Mesa, jak i zastrzeżonych sterowników Nvidia , bez konieczności mieszania się z LD_PRELOAD! Wszystkie zmienne środowiskowe i skrypty opakowania są teraz niepotrzebne.
Ponieważ nie jest to oznaczone konkretną wersją Ubuntu, a istniejące odpowiedzi nie działały w pełni z moim systemem (Ubuntu 15.10), zamieszczam tę odpowiedź, która wykorzystuje
logind
.Zasadniczo, aby GLX i libGL działały, musisz skonfigurować zarówno serwer X, jak i sesję użytkownika, aby korzystały z poprawnej implementacji libGL, w zależności od stanowiska.
Dlatego potrzebujesz skryptu opakowania dla LightDM, aby uruchomić X, oraz skryptu Xsession, aby ustawić
LD_LIBRARY_PATH
tak, aby sesja używała prawidłowego libGL.W
/etc/X11/Xsession.d/00ldlibrary
:(przy założeniu, że seat1 używa nvidia i seat0 mesa)
Podobnie musisz owinąć X server (
/usr/local/bin/X
):Na koniec musisz skonfigurować LightDM, aby używał ich w
/etc/lightdm/lightdm.conf
:Aby uzyskać więcej informacji, zobacz moje repozytorium multiseat-mesa-nvidia, które zawiera więcej szczegółów i zawiera pełne pliki konfiguracyjne i skrypty.
źródło
Korzystam z Arch Linuxa, ale pomogło mi to trochę załadować zarówno mój Intel, jak i moje sterowniki Nvidia z
gl/vaapi/vdpau
funkcjonalnością.Wszystko, co musisz zrobić (pytania i odpowiedzi):
Zainstaluj własność
nvidia-utils
.skopiować
/usr/lib/xorg/modules
do/usr/lib/xorg/modules_nvidia
Pobierz i rozpakuj najnowszy
libva-intel-driver
,mesa-vdpau
,mesa
,mesa-libgl
, ixorg-server
jako pakiety dopasowane swoją architekturę w osobnym katalogu. Następniecp -r
(jako root / sudo) zawartość"separate directory"/usr/lib
do czegoś podobnego/usr/lib_intel
i"separate directory"/usr/lib/xorg/modules/*
do twojego/usr/lib/xorg/modules
katalogu (nadpisanie).I
Uruchom ponownie
X-Servers
, spróbujglxinfo
Spowoduje to samozniszczenie podczas aktualizacji NVIDIA.
Dowiedziałem się, że to nie działa podczas ponownego uruchamiania.
Znacznie lepszy hack:
Nie twórz pliku ld.so.conf.d /. Zamiast tego dodaj do / usr / bin / X:
zmień „vt7” na wszystko, czego używa Twój menedżer wyświetlania, aby uruchomić serwer Intel x-server (: 0,: 2, vt7, vt8, isolatodevice = ...)
Oczywiście możesz także skopiować / usr / bin / X do / usr / bin / Xintel i edytować to, wskazując wm na ten plik (kdm 'ServerCmd').
Następnie edytuj lub utwórz nowy plik sesji, tj. / Usr / bin / startkde (bez sprawdzania DISPLAY #!), Dodając:
W ten sposób nie musisz nawet niczego nadpisywać. rm'owanie katalogu / usr / lib_intel i resetowanie 2 edytowanych plików to wszystko, co musisz zrobić, aby ponownie usunąć ten hack.
źródło
LD_LIBRARY_PATH
), nie będzie działał w systemie Ubuntu.