Meu objetivo é ter dois assentos para minha máquina Ubuntu. Um dos monitores é uma tela sensível ao toque USB da Mimo com chip displaylink. Já consegui fazê-lo funcionar como tela principal apenas reconfigurando o xorg.conf. Até a interface de toque funciona.
Mas para multiseats, não é suficiente apenas alterar o xorg.conf, porque telas de login adicionais também precisam ser iniciadas. Isso deve entrar na configuração do lightdm.
Ao configurar o lightdm para multiseats (lightdm.conf), consegui inicializar duas instâncias X, uma para cada ServerLayout (xorg.conf). Um está sendo executado no Terminal Virtual 7 (VT7) e outro no VT8. Como é comumente conhecido, você pode alternar entre Terminais Virtuais com os atalhos Ctrl + Alt + Fx (onde x é o número do terminal).
Agora o problema é este: por padrão, o VT7 está habilitado e o VT8 está desabilitado. Mas quando mudo para o VT8, ele fica habilitado, mas o VT7 fica desabilitado.
Como posso fazer com que ambos os terminais/servidores do X Server rodem em paralelo?
Obrigado.
Aqui está meu lightdm.conf
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
[Seat:0]
xserver-layout=default
[Seat:1]
xserver-layout=displaylink
Aqui estão apenas as partes relevantes do meu xorg.conf:
# Two Server Layouts
Section "ServerLayout"
Identifier "default"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "ServerLayout"
Identifier "displaylink"
Screen "DisplayLinkScreen"
InputDevice "Mouse1"
EndSection
# Two Screens
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "DisplayLinkScreen"
Device "DisplayLinkDevice"
Monitor "DisplayLinkMonitor"
SubSection "Display"
Depth 24
Modes "800x480"
EndSubSection
EndSection
# Two Monitors
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Monitor"
Identifier "DisplayLinkMonitor"
EndSection
# Two Graphics Cards/Interfaces
Section "Device"
Identifier "Card0"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
Section "Device"
Identifier "DisplayLinkDevice"
driver "displaylink"
Option "fbdev" "/dev/fb1"
EndSection
# Three Input Devices (the last is touchscreen of the USB monitor)
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Device" "/dev/input/by-path/pci-0000:00:1d.7-usb-0:1.3:1.0-event"
EndSection
Responder1
Relendo a entrada do wiki emhttps://help.ubuntu.com/community/MultiseatX, acho que você deveria dar uma olhada em como o X é invocado; por exemplo, as opções de linha de comando -sharevts
e -novtswitch
devem ser passadas de alguma forma para X no seu arquivo lightdm.conf
.
Se você estiver funcionando, considere atualizar a entrada do wiki para 11.10.
Responder2
Obrigado pela dica. A opção -sharevts foi a chave. Não é adicionado por padrão pelo Lightdm. Eu olhei /var/log/lightdm/lightdm.log e adicionei uma opção xserver-command personalizada e agora finalmente funciona! Obrigado pela ajuda.
Meu lightdm.conf final:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
[Seat:0]
xserver-layout=default
xserver-command=/usr/bin/X :0 -layout default -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -sharevts
[Seat:1]
xserver-layout=displaylink
xserver-command=/usr/bin/X :1 -layout displaylink -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -novtswitch -sharevts
Responder3
Eu acho que deveria haver um conjunto separado de ttys para o segundo assento, e que o segundo servidor X deveria ser executado em um deles. Depois de observar o código do console do kernel, parece que ele foi escrito com a suposição de que existe apenas um console. Ele usa variáveis globais para multiplexar os consoles virtuais em um único monitor e lê a entrada do teclado de todos os teclados conectados.
Parece que o código do console Linux precisará ser refatorado significativamente para suportar vários assentos.