Eu tenho multiseat configurado e meu Xorg tem 2 layouts de servidor. Um é para placa nVidia e outro é para placa Intel. Ambos funcionam, mas o servidor de vídeo atribuído à placa Intel não possui aceleração de hardware, pois o módulo DRI e GLX usado é do driver da nVidia.
Portanto, minha pergunta é: posso configurar layouts de alguma forma para usar o DRI e GLX corretos em cada placa?
Meu 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
Arquivo de log para 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
Respostas:
Ok, encontrei uma solução, mas há um erro que impede a aceleração de hardware de funcionar nas GPUs da Intel no momento no Ubuntu 12.10 com a nova biblioteca Mesa 9.0.1.
Em suma, o problema estava no carregamento do GLX. A nVidia pressionaria seu próprio módulo GLX e pisaria nos dedos da Intel.
Encontrei uma solução observando esta linha:
Ou seja, os módulos localizados
/usr/lib/x86_64-linux-gnu/xorg/extra-modules
são todos específicos da nVidia. Então eu configurei o LightDM para usar doisxorg.conf
arquivos. No Intel, eu configurei manualmente,ModulePath
excluindo o diretório nVidia. Isso resultou no carregamento do módulo GLX adequado.Meu
/etc/lightdm/lightdm.conf
arquivo fica assim:Linhas adicionadas a
xorg.conf.intel
:fonte
Do meu lado, com o Ubuntu 14.04, os caminhos são diferentes e Nvidia override driver proprietário
libglx.so
em/usr/lib/xorg/modules/extensions/libglx.so
.Para resolver o problema, eu duplicar
/usr/lib/xorg/modules
em/usr/lib/xorg/modules-nvidia
e reinstalar o Intel amigávellibglx.so
com:sudo apt-get install --reinstall xserver-xorg-core
Isso restaura o original
libglx.so
. Noxorg.conf.nvidia
, adiciono o caminho aos módulos válidos:Section "Files" ModulePath "/usr/lib/xorg/modules-nvidia" EndSection
Além disso, em
/etc/lightdm/lightdm.conf
eu tenho que adicionar:xserver-command=/usr/bin/X -sharevts
na[Seat:1]
seção. Esta dica foi encontrada aqui .Muito obrigado a MeanEYE, que me aponta da maneira certa.
fonte
Então, pesquisei um pouco e descobri que existem várias maneiras diferentes de obter as configurações Multisseat (Multi-estação, Multi-Terminal etc.).
1) O método que eu recomendaria, pois usa seu Xorg padrão e um driver de kernel embutido, está usando evdev . Aqui está um guia sobre como configurar uma configuração multiseat de 4 GPU e 4 monitores usando evdev. O guia é destinado às GPUs Debian Sarge e SiS, mas acho que você pode deduzir muitas informações muito úteis deste guia: https://en.wikibooks.org/wiki/Multiterminal_with_evdev
2) Outro método é usar o Xypher , um servidor X Windows diferente baseado no KDrive. Não sei se esse é o caminho que você deseja seguir, mas aqui está o guia: https://en.wikibooks.org/wiki/en:Multiterminal_with_Xephyr
3) Outra opção é usar uma ferramenta chamada Multiseat Display Manager (MDM), que promete automatizar todo o processo de instalação para você; no entanto, ela não parece ser atualizada, por isso não a recomendo. No entanto, você pode encontrá-lo facilmente com o Google como último recurso.
Não sei o que você fez ou ainda não fez na sua configuração. Portanto, sua melhor aposta é ler o guia evdev e tentar identificar as etapas que você ainda não fez. As maiores diferenças que estou vendo é
A) No exemplo xorg.conf, há apenas 1 seção Screen e ServerLayout. As telas adicionais e o ServerLayout são definidos em um conf separado, todos juntos: xorg.conf.probe
B) Além disso, todos os dispositivos são explicitamente referenciados por seus BusIDs, que foram obtidos usando lspci e
C) As interrupções estão desabilitadas na irq 10.
Espero que isso ajude você a começar a trabalhar, boa sorte!
fonte
xorg.conf
arquivos diferentes e espero que funcione.No Ubuntu 16.04, eu precisava atualizar o
/usr/local/bin/X
wrapper com:/etc/X11/Xsession.d/00ldlibrary
pode testar a$XDG_SEAT
variável e os conjuntosexport LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa:/usr/lib/i386-linux-gnu/mesa/
apenas para a placa Intel.fonte
Na versão 18.04, o suporte ao glvnd permite que os usuários tenham os drivers Mesa e proprietários da Nvidia instalados com muita facilidade , sem ter que mexer no LD_PRELOAD! Todas as variáveis de ambiente e os scripts do wrapper agora são desnecessários.
Como isso não está marcado com uma versão específica do Ubuntu e as respostas existentes não funcionaram totalmente com meu sistema (Ubuntu 15.10), estou postando esta resposta que é usada
logind
.Basicamente, para que o GLX e o libGL funcionem, é necessário configurar o servidor X e a sessão do usuário para usar a implementação correta do libGL, dependendo do local.
Portanto, você precisa de um script de wrapper para que o LightDM inicie o X e um script do Xsession para configurar,
LD_LIBRARY_PATH
para que a sessão use a libGL correta.Em
/etc/X11/Xsession.d/00ldlibrary
:(supondo que seat1 use nvidia e seat0 mesa)
Da mesma forma, você precisa agrupar o servidor X (
/usr/local/bin/X
):Por fim, você precisará configurar o LightDM para usá-los em
/etc/lightdm/lightdm.conf
:Para obter mais detalhes, consulte meu repo multiseat-mesa-nvidia, que possui mais detalhes e possui os arquivos e scripts de configuração completos.
fonte
Estou usando o Arch linux, mas isso me ajudou um pouco a carregar os drivers proprietários da Intel e da Nvidia carregados com
gl/vaapi/vdpau
funcionalidade.Tudo o que você precisa fazer (perguntas e respostas):
Instale proprietário
nvidia-utils
.Copiar
/usr/lib/xorg/modules
para/usr/lib/xorg/modules_nvidia
Baixar e descompactar o mais recente
libva-intel-driver
,mesa-vdpau
,mesa
,mesa-libgl
, exorg-server
como pacotes montagem sua arquitetura em um diretório separado. Entãocp -r
(como root / sudo) o conteúdo de"separate directory"/usr/lib
algo como/usr/lib_intel
e"separate directory"/usr/lib/xorg/modules/*
para o/usr/lib/xorg/modules
diretório atual (sobrescrevendo).E
Reinicie
X-Servers
, tenteglxinfo
Isso se autodestruirá nas atualizações da nvidia, é claro.
Eu descobri que isso não está funcionando ao reiniciar.
Hack muito melhor:
Não crie um arquivo ld.so.conf.d /. Em vez disso, adicione o seguinte a / usr / bin / X:
mude "vt7" para o que o gerente de exibição usar para iniciar o servidor intel x (: 0,: 2, vt7, vt8, isolatodevice = ...)
Obviamente, você também pode copiar / usr / bin / X para / usr / bin / Xintel e editá-lo, apontando sua wm para esse arquivo (kdm 'ServerCmd').
Em seguida, edite ou crie um novo arquivo de sessão, por exemplo, / usr / bin / startkde (sem verificar o DISPLAY #!), Adicionando:
Dessa forma, você nem precisa sobrescrever nada. Rm 'no diretório / usr / lib_intel e redefinindo os 2 arquivos editados é tudo o que você precisa fazer para remover esse hack novamente.
fonte
LD_LIBRARY_PATH
), não funcionará em um sistema Ubuntu.