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.