Como posso configurar multiseatos com apenas uma placa gráfica física?

13

Eu tenho um computador Ubuntu rodando 16.04 e tenho apenas uma placa gráfica.

Meu irmão e eu constantemente brigamos sobre quem pode usá-lo, então estou tentando fazer um favor a todos e instalar multiseat.

  • Eu seria seat0 , com a porta VGA, um mouse, um teclado e os conectores de fone de ouvido na parte traseira do computador.

  • Ele seria seat1 , com a porta DVI-D, um mouse, um teclado e os conectores de fone de ouvido na parte frontal do computador.

  • Compartilharíamos o dongle Wi-Fi para se conectar à Internet.

Eu estou completamente em uma perda de como fazer isso. Quais arquivos eu crio, onde eles vão e o que eu coloco neles? Uma resposta bem formatada (não um guia on-line) seria boa.

A saída de lspci :

00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5)
00:1c.1 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 (rev d5)
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation C220 Series Chipset Family H81 Express LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
01:00.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
01:00.1 System peripheral: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:01.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:05.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:07.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
02:09.0 PCI bridge: PLX Technology, Inc. PEX 8609 8-lane, 8-Port PCI Express Gen 2 (5.0 GT/s) Switch with DMA (rev ba)
03:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
04:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
05:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
06:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
08:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)

A saída de ls /dev/input/by-path/ :

pci-0000:00:14.0-usb-0:1:1.2-event-kbd
pci-0000:00:14.0-usb-0:2:1.0-event-kbd
pci-0000:00:14.0-usb-0:7:1.0-event-mouse
pci-0000:00:14.0-usb-0:1:1.2-event-mouse
pci-0000:00:14.0-usb-0:3.1:1.0-event-mouse
pci-0000:00:14.0-usb-0:7:1.0-mouse
pci-0000:00:14.0-usb-0:1:1.2-mouse
pci-0000:00:14.0-usb-0:3.1:1.0-mouse
platform-eeepc-wmi-event
    
por TsundereBug 29.08.2016 / 00:29

3 respostas

4

Portanto, este é um guia antigo, mas ainda pode funcionar. MultiSeatOneCard .

Algumas notas antes de começar a trazer instruções:

  • Toda a configuração de gdm que você deseja fazer pode nem ser necessária. Se você tem o GNOME, você já tem gdm (e uma versão muito mais recente). Unity usa lightdm , o que parece não funcionar. Você deve instalar o gdm e usá-lo para experimentar este guia.

  • Apenas outro aviso: GUIA ANTIGO. Pode não funcionar, pode quebrar o Ubuntu, pode explodir sua máquina (não é claro). Por favor, tenha cuidado e volte as coisas.

Agora para o guia

O wiki sugere desativar a tela inicial com o seguinte. Não sei se o procedimento ainda funciona ou não.

  

Muita coisa pode dar errado com essa configuração e a tela inicial sofisticada durante a inicialização não ajuda. Para desabilitá-lo (talvez temporariamente) edite / etc / default / grub e mude a designação GRUB_CMDLINE_LINUX_DEFAULT de respingo silencioso para nomodeset noplymouth. Em seguida, execute sudo update-grub.

A próxima parte, sobre "área de trabalho expandida", provavelmente também pode ser ignorada. Basta conectar os dois monitores e configurá-los para o "modo estendido" nas configurações do monitor.

Agora, para alguma configuração.

  

Primeiro, encontre em /etc/gdm/gdm.conf, na seção [servers], uma linha começando com 0 = .... (sem # no início da linha). Coloque um # na frente dele.

Isso deve ser possível sem muitos problemas.

  

Em seguida, edite /etc/gdm/gdm.conf-custom. Encontre a seção [security] e adicione uma linha PamStack = gdm-2.20.

Aqui é onde você pode ter um problema. Em vez de 2.20, você pode precisar experimentar 3.18 (isto é para 16.04).

  

encontre a seção [xdmcp] e adicione uma linha Enable = true.

Isso não deve causar problemas.

  

O XDMCP não é um protocolo particularmente seguro, por isso é uma boa idéia fazer com que o gdm refute conexões de outros computadores. Adicione uma linha gdm: 127. * em /etc/hosts.allow e uma linha gdm: ALL em /etc/hosts.deny.

Isso, você pode optar por não fazer. Se você se preocupa com segurança, eu sugiro que você faça isso, mas caso contrário, eu acho que você pode deixar isso.

Agora reinicie o gdm reinicializando (provavelmente da maneira mais fácil). Se você vir a tela de login do GDM, alguma coisa está acontecendo. Verifique o guia original e ajuste algumas configurações.

Se você não tiver uma tela de login, acesse um TTY e execute X -query 127.0.0.1 . Se o GDM aparecer, mate-o (volte para o TTY e o mate lá).

Crie um novo usuário chamado monitor :

addgroup --gid 983 monitor
adduser --uid 983 --gid 983 monitor

Crie um arquivo (o guia não possui especificações de nome) em /etc/udev/rules.d/my.rules e insira o seguinte:

SUBSYSTEM=="input", OWNER="monitor", GROUP="monitor"

Algumas instalações de pacotes:

apt-get install x11-utils xserver-xephyr

Precisamos separar os monitores com alguns aliases:

ln -s xmessage /usr/bin/xmessage0
ln -s xmessage /usr/bin/xmessage1

Faça login no usuário monitor no TTY e crie ~/.xsession .

Coloque isso dentro:

runscreen () {
    #  = number
    #  = geometry
    local xpid winid k
    while :; do
        xmessage -geometry  "Window " &
        xpid=$!
        k=10
        while \
            winid='xwininfo -name xmessage|grep 'Window id'|cut -d' ' -f4' \
            && [ $k -gt 0 -a ! "$winid" ]
        do
            sleep 1
            k=$(($k - 1))
        done
        if [ "$winid" ]; then
            Xephyr :1 -parent "$winid" -dpms -keybd "evdev,,device=,$xkb" -mouse "evdev,,device=" -query 127.0.0.1 
        fi
        kill $xpid
        sleep 3
        kill -9 $xpid
    done 
}

# For some reason I was unable to set the following in xorg.conf
# We need to turn off power management of the main X server because it doesn't
# see either of the keyboards and the mice so it will enter power-saving mode
# after 10 minutes
xset s off
xset dpms 0 0 0
xset -dpms

xkb='xkbrules=xorg,xkbmodel=evdev,xkblayout=us'

# PS/2 keyboard and mouse
kbd1='ls /dev/input/by-path/platform-*-event-kbd'
mouse1='ls /dev/input/by-path/platform-*-event-mouse'

# USB keyboard and mouse
kbd2='ls /dev/input/by-path/pci-*-event-kbd'
mouse2='ls /dev/input/by-path/pci-*-event-mouse'

runscreen 1 1280x1024+1920+0 "$kbd2" "$mouse2" &
runscreen 0 1920x1080+0+0 "$kbd1" "$mouse1"

Lembre-se de editá-lo para refletir suas resoluções.

Execute startx como o usuário monitor e veja se funciona.

Isso precisa ser feito para iniciar na inicialização se funcionar, então adicione isso ao final de ~/.profile (para a conta do monitor):

if [ "'tty'" = /dev/tty6 ]; then
    exec startx
fi

Mate a GUI e vá para TTY6. Faça o login como monitor e ele deve ser iniciado.

Se isso funcionar, edite o arquivo /etc/init/tty6.conf como root e substitua a linha que começa com /sbin/getty por

exec /bin/login -f monitor tty6 </dev/tty6 >/dev/tty6 2>&1

Se funcionar, mas você também quiser separar o áudio, o guia MultiSeatX vinculado tem algumas coisas para você.

Lembre-se de que isso pode não funcionar. Eu digitei isso rapidamente e espero editá-lo para ser um pouco mais claro, se necessário. Eu adaptei partes do guia para estar mais atualizado e aumentar a chance de sucesso.

Boa sorte!

    
por TheWanderer 07.09.2016 / 23:24
1

Eu não acho que isso seja possível porque você não pode ter dois conjuntos de dispositivos de entrada. É possível que uma ferramenta como sinergia possa ajudar aqui, mas será confusa.

Você pode pegar outra máquina e usá-la como X Terminal, isso só precisa ser rápido o suficiente para atualizar a tela, então peça aos seus amigos pelo computador antigo. Se você configurar sua máquina original para executar o XDMCP, ela permitirá que a outra máquina faça login em sua própria área de trabalho.

Esta funcionalidade está programada para ser removida do ubuntu quando o X windows for substituído pelo Mir, provavelmente estará por volta da data da próxima versão do LTS.

Aqui está o guia do ubuntu para o XDMCP - link

    
por Amias 02.09.2016 / 13:14
1

Parece muito legal, então naveguei e encontrei esta entrada na wiki como link de esta entrada da Wikipedia . Ele basicamente usa uma ferramenta chamada xephyr para organizar entradas / saídas.

A entrada é bem antiga e atualizada apenas para o Ubuntu 12.04, mas o xephyr ainda está nos repositórios padrão (acabou de testar sua presença no meu computador). As edições de configuração parecem complexas, mas bastante simples, ainda podem funcionar. Aqui é um blog que data de 2014, o que também o torna esperançoso.

Por favor, deixe-nos saber como você se sai!

    
por Jeroen 07.09.2016 / 10:15