Multi-head usando udev e Xnest

Uma nova forma de se configurar terminais na mesma máquina usando várias placas de vídeo e vários teclados e mouses. Esta versão é mais adaptável a placas muito diferentes entre si. pois utiliza apenas um servidor X estendido e com camadas adicionais para cada tela.

[ Hits: 24.354 ]

Por: Alexandre Felipe Muller de Souza em 06/03/2006


Plugando e achando tudo



Primeiro precisamos nos certificar que as placas estão devidamente conectadas. Verifique isso executando o comando abaixo como root:

# lspci | grep VGA
00:0a.0 VGA compatible controller: (FABRICANTE / MARCA)
00:0b.0 VGA compatible controller: (FABRICANTE / MARCA)

Cada linha corresponde a uma placa do seu computador. O primeiro campo corresponde a identificação do barramento pci. Anote estes endereços para configurar o servidor X. Agora edite o arquivo /etc/X11/xorg.conf da seguinte maneira:

OBS: Note que os dispositivos recebem endereço BusID em decimal e o lspci mostra em hexa-decimal, para isto, substituir a por 10, b por 11 e assim por diante... preciso também conhecer previamente qual driver adequado para cada placa.

Section "Device"
        Identifier      "Device 1"
        Driver  "vesa" # vai depender do driver da sua placa de vídeo
        BusID   "PCI:0:10:0"
EndSection

Section "Device"
        Identifier      "Device 2"
        Driver  "vesa" # vai depender do drvier da sua placa de vídeo
        BusID   "PCI:0:11:0"
EndSection

Section "Monitor"
        Identifier      "Monitor X"
EndSection


Section "Monitor"
        Identifier      "Monitor Y"
EndSection

Section "Screen"
        Identifier      "Screen X"
        Device  "Device 1"
        Monitor "Monitor X"
        DefaultDepth    16
        SubSection "Display"
                Depth   16
                Modes   "1024x768"
        EndSubSection
EndSection



Section "Screen"
        Identifier      "Screen Y"
        Device  "Device 2"
        Monitor "Monitor Y"
        DefaultDepth    16
        SubSection "Display"
                Depth   16
                Modes   "1024x768"
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "Layout"
        Screen  "Screen X"
        Screen  "Screen Y"      Below   "Screen X"
        InputDevice     "Keyboard1"
        InputDevice     "Mouse1"
        Option  "DontZap"       "on" # evita que o usuário derrube o X com ctrl alt backspace
        Option  "DontVTSwitch"  "on" # evita que o usuário troque os vts
        Option  "BlankTime"     "0"
        Option  "StandbyTime"   "0"
        Option  "SuspendTime"   "0"
        Option  "OffTime"       "0"
EndSection

Aqui a configuração está feita para dois terminais. Para fazer com mais é só usar a mesma coisa, mas com vários devices, vários monitores, vários screens. Se não conseguir editar o arquivo, use o xorgcfg.

Agora execute o X e teste se abre todos os monitores. Se não, volte a configuração do X. Esta parte não deve ser complicada, pois o próprio configurador deve fazer.

Depois renomeie e mova o arquivo com os comandos:

# mv multiXnest-0.1.3 /usr/local/bin/multiXnest
# mv multiXnest.sh /usr/sbin/


Para verificar se os dispositivos estão devidamente conectados, execute:

# cat /proc/bus/input/devices

Então olhe em cada seção se está plugado o dispositivo. Agora vem a parte automática e legal.

Execute o script veevent.sh que está linkado na primeira página e descubra qual o event de cada dispositivo.

Edite o arquivo /etc/X11/gdm/gdm.conf na seção "Servers":

[servers]
0=Principal
1=Xnest1
2=Xnest2

[server-Principal]
name=Principal
command=/usr/X11R6/bin/X
handled=false # faz com que este servidor não seja usado para login
flexible=false

[server-Xnest1]
name=Xnest1
command=/usr/sbin/multiXnest.sh -display :0.0 -xauthority /var/lib/gdm/:0.Xauth -geometry 1024x768+0+0 -kbd /dev/input/event0 -ptr /dev/input/event1 -dpi 92
handled=true
flexible=false

[server-Xnest2]
name=Xnest2
command=/usr/sbin/multiXnest.sh -display :0.1 -xauthority /var/lib/gdm/:0.Xauth -geometry 1024x768+0+0
-kbd /dev/input/event2 -ptr /dev/input/event5 -dpi 92
handled=true
flexible=false

Agora mude event0, event1, event2, event5 pelos valores que você descobriu no veevent.sh. Para cada terminal mude o valor do display 0.X.

Agora é só configurar o GDM no boot e usar.

Página anterior     Próxima página

Páginas do artigo
   1. Idéia inicial
   2. Plugando e achando tudo
   3. Desempenho e problemas
Outros artigos deste autor

Ajude o Linux, use o Linux

Porque Linux não emplaca em desktops

Como montar um pacote RPM

Solução corporativa Expresso Livre, substituto de peso do Notes

MultiHeads no Linux

Leitura recomendada

Criando uma ISO bootável do OpenBSD

Incrementando seus scripts com dialog

Desinstalando todos os programas instalados a partir de uma data específica

Terminal Didático - Shell Script via WEB (PHP + Bootstrap)

Antispam em Shell Script

  
Comentários
[1] Comentário enviado por marcospaiva em 07/03/2006 - 11:09h

Artigo muito bom e util para quem que economizar com PCs
Quero saber qual e a placa de video principal e se posso usar a minha on-bord ou a minha AGP com a placa de video principal da maquina.

Muito Obrigado , e fique com Deus !

[2] Comentário enviado por rattus em 16/06/2006 - 10:28h

Fala Alexandre,


não tinha achado o seu artigo no vol, por isso coloquei o tutorial do C3SL aqui.
Você já usou as placas de vídeo com mais de uma saída? Como você direciona para elas, visto que o direcionamento das saídas de vídeo que estou usando é direcionado para cada slot PCI?
Qualquer coisa vamos usar o fórum que o Ronald deixou para catalogar tudo.

[ ]

Ralph Liebessohn

[3] Comentário enviado por equipelinux em 24/01/2015 - 17:50h


URL não existe.


Desculpe, mas esta página não existe…

Pedimos desculpas pelo inconveniente, mas a página que você estava tentando acessar não existe neste endereço. Você pode usar os links abaixo para encontrar o que está procurando.

Se você está certo que o endereço informado está correto mas está encontrando um erro, por favor contate o Administração do Site.

Obrigado.

Você poderia estar procurando por…
Sistema Multiterminal anuncia versão BETA de LIVE CD


Contribuir com comentário