# Multiterminais/Multiterminal com evdev

Esta página ensina como um Multiterminal com evdev funciona, e como fazê-lo. Esse método elimina o uso de patches no kernel, e então, configura o multiterminal utilizando o protocolo evdev.

# Como fazer
## Hardware

Placas de Vídeo:
* 4 placas SiS (outras placas de vídeo também podem ser utilizadas, mas nem todas funcionam)
Teclados e Mouses:
* 1 teclado PS/2
* 1 mouse PS/2
* 3 teclados USB
* 3 mouses USB
Certifique-se de que seu kernel (núcleo do sistema) esteja compilado com suporte ao módulo evdev.
É necessária também a instalação do udev, que provê um diretório /dev dinâmico e atualizado de acordo com os dispositivos conectados:
O udev exige o kernel 2.6.12 ou mais novo.

## Instalação do driver para placa de vídeo SiS

1. Adicione a seguinte linha ao arquivo /etc/apt/sources.list:
2. Atualize as informações de pacotes do sistema e instale o driver x-driver-sis:

## Hotplug

Instale o pacote hotplug:

## Dispositivos de Entrada

Antes de prosseguir, é preciso verificar se os dispositivos de entrada (mouses e teclados) foram detectados. Para isso analise o arquivo /proc/bus/input/devices, que informa detalhes sobre os dispositivos de entrada encontrados pelo kernel. Um exemplo deste arquivo é apresentado abaixo. Apenas dois campos nos interessam: o nome de cada dispositivo, indicado nas linhas que começam com “N: Name=”, e o endereço físico, mostrado nas linhas que começam com “P: Phys”.
Note que o arquivo parece indicar a presença de três teclados, embora no sistema aferido existam apenas dois. A razão do dispositivo adicional é que muitos teclados USB contém teclas especiais (por exemplo, de controle multimídia ou acesso à Internet), detectadas pelo kernel como pertencentes a um teclado secundário, cujo endereço físico termina em “input1”. Configuraremos apenas os teclados primários, com endereço físico terminado em “input0”. Portanto, a seção correspondente ao teclado secundário de endereço físico “usb-0000:00:10.2-1/input1” será ignorada.

## Instalação do servidor XOrg

O próximo passo é a instalação do servidor XOrg.
1. Faça uma cópia de segurança (backup) e remova o arquivo /etc/init.d/xfree-common. 2. Adicione as seguintes linhas ao arquivo /etc/apt/sources.list:
3. Instale o pacote xserver-xorg:
OBS: Caso use o Debian Etch sempre prefira usar o comando aptitude ao invés do apt-get, senão você poderá causar instabilidade em seu sistema de dependências.

## Configuração do servidor XOrg
### xorg.conf

Essa configuração será usada durante o funcionamento do multiterminal. Neste arquivo serão criadas seções adicionais de acordo com o número de terminais que estamos configurando. Para cada terminal, criaremos uma seção para o mouse, teclado, placa de vídeo, monitor, tela (screen) e layout. Por exemplo, no caso de um multiterminal com quatro terminais, o arquivo terá quatro seções de mouse, quatro de teclado, e assim por diante.
Os valores sugeridos para “Identifier” em cada seção não são mandatórios. Eles podem ser alterados, desde que mantida a coerência dos nomes na configuração toda.
O endereço físico (opção “Dev Phys”) de cada dispositivo pode ser obtido através do arquivo /proc/bus/input/devices, como visto anteriormente.
A seguir, um exemplo para cada tipo de seção.

### xorg.conf.probe

Além do arquivo padrão xorg.conf, será necessário criar um segundo arquivo de configuração, o xorg.conf.probe. Durante o uso do multiterminal, desabilitamos as interrupções no canal 10 (IRQ 10) para evitar que chamadas VGA (e VESA VBE) de uma placa interfiram com as demais. Porém, com essas chamadas desabilitadas as placas secundárias não são inicializadas. Para resolver este problema, durante o processo de inicialização do sistema o XOrg será rodado com o arquivo xorg.conf.probe. Ele fará uma checagem (probe) pela presença destas placas, com a IRQ 10 ativa durante o teste, de forma a inicializá-las.
Para criar o xorg.conf.probe, tome o xorg.conf como base, remova as seções relativas à placa de vídeo primária (que é inicializada pela BIOS ao ligar o computador) e troque a opção NoInt10 para "No". Será necessário um único layout, mas incluindo todas as placas secundárias. Como exemplo, alguns trechos do arquivo xorg.conf.probe derivado do xorg.conf acima:
Para rodar o teste (probe) é fornecido o arquivo xorg-multiterminal. Ele executa o servidor X no modo probeonly (apenas testar por dispositivos e encerrar), com o arquivo xorg.conf.probe. Como explicado acima, este passo inicializa as placas de vídeo secundárias. O conteúdo do arquivo é:
Salve-o como um script executável e configure o sistema de inicialização para rodá-lo. No caso do Debian, o caminho deve ser /etc/init.d/xorg-multiterminal, e existem duas maneiras de configurar o sistema:
* Através do comando update-rc.d. Este comando funciona tanto para usuários do sistema padrão do Debian (sysv-rc) quanto para usuários do pacote file-rc.
* Manualmente:
Em um sistema Debian usando o esquema padrão de inicialização, crie um link:
Em um sistema Debian com o pacote file-rc instalado, acrescente a seguinte linha em um lugar apropriado no arquivo /etc/init.d/runlevel.conf:

## GDM

O último passo é configurar o gerenciador de login para iniciar todos os servidores X. Trataremos apenas do GDM. Outros gerenciadores como o XDM e o KDM podem ser configurados por um processo similar.
Deve-se editar a seção “[servers]” do arquivo /etc/gdm/gdm.conf para que contenha múltiplas entradas, como no exemplo seguinte para quatro terminais:

## Solução de Problemas

Problemas na inicialização do multiterminal podem ser analisados nos arquivos em /var/log/Xorg.*.log. O servidor X de cada terminal criará seu próprio arquivo de registro.