Configurar multiseat com X.org e ONE NVidia card com duas portas de saída? (Ubuntu 14.04)

2

Eu tenho tentado configurar minha placa NVidia para suportar uma instalação de vários itens por dois dias e sinto que não estou fazendo nenhum progresso.

Primeiro, tentei seguir as instruções do Ubuntu encontradas aqui:

link

Isso não é tão ruim, apenas os drivers da NVidia não oferecem uma maneira de selecionar um assento por conector de saída, já que ele define apenas um dispositivo na lista de dispositivos:

udevadm info --export-db

Isso me dá a seguinte entrada para a placa de vídeo da NVidia:

P: /devices/pci0000:00/0000:00:01.0/0000:01:00.0
E: DEVPATH=/devices/pci0000:00/0000:00:01.0/0000:01:00.0
E: DRIVER=nvidia
E: ID_MODEL_FROM_DATABASE=GF108GL [Quadro 600]
E: ID_PCI_CLASS_FROM_DATABASE=Display controller
E: ID_PCI_INTERFACE_FROM_DATABASE=VGA controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible controller
E: ID_VENDOR_FROM_DATABASE=NVIDIA Corporation
E: MODALIAS=pci:v000010DEd00000DF8sv000010DEsd00000835bc03sc00i00
E: PCI_CLASS=30000
E: PCI_ID=10DE:0DF8
E: PCI_SLOT_NAME=0000:01:00.0
E: PCI_SUBSYS_ID=10DE:0835
E: SUBSYSTEM=pci
E: USEC_INITIALIZED=85345

Existem outras entradas para o áudio, mas nenhuma outra entrada para o vídeo. Portanto, não é possível criar dois "assentos de vídeo" (na verdade, nunca vi nada além de "seat0" com loginctl list-seats na lista de assentos, embora tenha marcado o segundo mouse e o teclado como "assento-1". .. Do site freedesktop , parece adicionar qualquer tag chamada "seat - ??? "é o suficiente para criar um assento que loginctl list-seats acabaria mostrando. Não funcionou para mim, mesmo após a reinicialização.)

Um aspecto interessante para esta entrada, não inclui uma marca de assento, como vemos em outras entradas:

E: TAGS=:seat:

Portanto, tenho certeza de que a configuração oferecida pela página do Ubuntu que eu criei acima não funcionará com a NVidia, a menos que você tenha duas ou mais placas de vídeo.

Mais tarde eu tentei o antigo, o que significa criar uma configuração do xorg.conf com 2 telas. A NVidia oferece uma maneira de fazer a configuração automaticamente, o que é ótimo (isto é, a ferramenta nvidia-settings pode ser usada para salvar um xorg.conf válido). Isso funciona no sentido de que temos duas telas independentes, mas não encontrei uma maneira de colocar uma tela de login na segunda tela (Tela 1). Tentei iniciar o X duas vezes, conforme mostrado em vários lugares, mas ao iniciar o X na tela 1, o driver da NVidia me diz que certos recursos não estão disponíveis (bloqueados pela tela 0).

[Seat0]
xserver-command=/usr/bin/X :0
[Seat1]
xserver-command=/usr/bin/X :1

Não tenho tanta certeza que lightdm tentaria iniciar ambos os servidores X, então tentei manualmente a partir de uma sessão ssh e tudo funciona bem ao iniciar a primeira instância X. O segundo gera erros e termina porque não foi possível inicializar o driver (o que faz sentido, pois ambos estariam tentando usar os mesmos recursos de hardware). A linha de comando completa que usei é:

/usr/bin/X -config /etc/X11/xorg.conf -isolateDevice PCI:1:0:0 :0 \
          -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -sharevts -keeptty

E use: 1 para o outro.

Então, estou pensando que a tela 0 e 1 de configuração direta é o que preciso usar e apenas me certifico de que a Tela 1 esteja reservada para um usuário diferente. Alguém saberia como fazer isso funcionar?

Existe uma versão do xorg.conf com a qual eu tentei até agora, mas ainda não encontrei uma maneira de obter a segunda tela de login ...

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 331.20  (buildd@roseapple)  Mon Feb  3 15:07:22 UTC 2014

Section "ServerLayout"
    Identifier     "seat0"
    Screen         "Screen0" 0 0
    #Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    #Option         "Xinerama" "0"
    # Avoid having X add all the devices to all the layouts
    Option         "AutoAddDevices" "False"
    Option         "AutoEnableDevices" "False"
EndSection

Section "ServerLayout"
    Identifier     "seat1"
    Screen       0 "Screen1" 0 0
    InputDevice    "Keyboard1" "CoreKeyboard"
    InputDevice    "Mouse1" "CorePointer"
    #Option         "Xinerama" "0"
    # Avoid having X add all the devices to all the layouts
    Option         "AutoAddDevices" "False"
    Option         "AutoEnableDevices" "False"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    #Option         "Device" "/dev/psaux" -- default setup
    Option         "Device" "/dev/input/mouse0"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse1"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mouse1"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
    # /devices/platform/i8042/serio0/input/input2
    Option         "Device" "/dev/input/event2"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard1"
    Driver         "kbd"
    # /devices/platform/i8042/serio0/input/input2
    Option         "Device" "/dev/input/event7"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Sony SDM-S73"
    HorizSync       28.0 - 65.0
    VertRefresh     57.0 - 75.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro 600"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro 600"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "DVI-I-0: nvidia-auto-select +0+0; DVI-I-0: 1280x1024 +0+0; DVI-I-0: 1024x768 +0+0; DVI-I-0: 800x600 +0+0; DVI-I-0: 640x480 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "DP-0: nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
    
por Alexis Wilke 11.11.2014 / 02:45

0 respostas