MultiHeads no Linux

A idéia é simples, colocar várias placas de vídeo, vários teclados e vários mouses num mesmo computador de forma que diversos usuários usem-o simultaneamente e independentemente a mesma CPU. Solução barata e muito na moda ultimamente.

[ Hits: 59.284 ]

Por: Alexandre Felipe Muller de Souza em 07/12/2005


Colocando as placas e achando elas no sistema



Bom, tanto faz a ordem dos dispositivos USB ou então das placas, só coloque-as em qualquer ordem. Procure não fazer a instalação do Linux com elas plugadas. Em distros como o Mandriva, alguns programas de detecção automática travam ou então tentam configurar automaticamente todas elas e ocorrem problemas.

Agora verifique se está instalado o Xorg, hotplug, udev e tudo configurado no boot. Dentre as formas de fazer escolherei a mais simples. Mais pra frente passarei rapidamente sobre as outras.

Tendo tudo funcionando, entre no shell e dê um lspci:

$ lspci
....
0000:00:09.0 VGA compatible controller: ATI Technologies Inc Rage 128 RK/VR
0000:00:0a.0 VGA compatible controller: ATI Technologies Inc Rage 128 RK/VR
0000:00:0b.0 VGA compatible controller: ATI Technologies Inc Rage 128 RK/VR
0000:01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 661FX/M661FX/M661MX/741/M741/760/M760 PCI/AGP

Anote os endereços que estão ali no primeiro campo, caso saiam muitos dispositivos, um "grep VGA" ajuda. Descubra também quais módulos são carregados pra cada dispositivo.

Agora está na hora de verificar os dispositivos USB. Pode parecer bobagem eu falar isso, mas verifique mesmo se estão plugados um número muito grande assim de dispositivos sempre tem um mal encaixado e você perde um dia inteiro à toa. No shell mesmo dê um cat no /proc:

$ cat /proc/bus/input/devices
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
H: Handlers=kbd event0
B: EV=120013
B: KEY=4 2000000 3802078 f840d001 f2ffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7

I: Bus=0011 Vendor=0002 Product=0005 Version=0000
N: Name="ImPS/2 Generic Wheel Mouse"
P: Phys=isa0060/serio1/input0
H: Handlers=event1 mouse0 ts0
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103

I: Bus=0003 Vendor=0a81 Product=0101 Version=0110
N: Name="CHESEN USB Keyboard"
P: Phys=usb-0000:00:03.0-1/input0
H: Handlers=kbd event2

I: Bus=0003 Vendor=0a81 Product=0101 Version=0110
N: Name="CHESEN USB Keyboard"
P: Phys=usb-0000:00:03.0-1/input1
H: Handlers=kbd event3

I: Bus=0003 Vendor=0566 Product=3002 Version=0100
N: Name="0566:3002"
P: Phys=usb-0000:00:03.0-2/input0
H: Handlers=kbd event4

I: Bus=0003 Vendor=1267 Product=0210 Version=0001
N: Name="PS/2+USB Mouse"
P: Phys=usb-0000:00:03.0-3/input1

.... (e tudo mais lá pra baixo)

Veja que o mesmo teclado "CHESEN USB Keyboard" tem o mesmo endereço físico, mas tem duas entradas. Isso se deve as teclas especiais como desligar, suspender, navegação na internet e "Windows" que o kernel trata como um teclado separado. Aqui iremos só usar o primeiro input. Anote o endereço físico (PHYS) de cada um.

Tendo isso agora vamos para o próximo passo.

Página anterior     Próxima página

Páginas do artigo
   1. Considerações Gerais
   2. Colocando as placas e achando elas no sistema
   3. Começando a por a mão na massa
   4. Configurando o gerenciador de displays (kdm, xdm, gdm)
   5. Testando e usando
   6. Concluindo
Outros artigos deste autor

Jopen, não se preocupe mais em descobrir qual aplicativo usar

Porque Linux não emplaca em desktops

Multi-head usando udev e Xnest

Como montar um pacote RPM

Extreme Programming e sua relação com Software Livre

Leitura recomendada

Ubuntu - configurando dois monitores numa mesma placa de vídeo

Servidor NTP - Configuração e ajuste de data e hora

OpenLdap no Debian Squeeze

Configurando o Fortune

O Guia do Slackware

  
Comentários
[1] Comentário enviado por reimassupilami em 07/12/2005 - 10:26h

cara, muito interessante... eu já tinha lido algo sobre isso, mas achava que era necessário algum sistema especial, e até hardware especial também... mas assim, dá juntar uma turma e tentar quebrar a cabeça pra montar isso...

muito legal mesmo, tá de parabéns...

[2] Comentário enviado por slackdaemon em 07/12/2005 - 11:07h

Muito bom cara, nunca tinha visto isso. Vou dá uma pesquisada a mais e implementar em casa, se achar alguma solução para as pendencias eu posto aqui. Valeu!

[3] Comentário enviado por peregrino em 07/12/2005 - 11:53h

Bom Dia winchester

eu já conhecia e uso essa solução mas seu tutorial esta de parabens mesmo

falow

[4] Comentário enviado por cpolegatojr em 07/12/2005 - 13:05h

Olá,

Ja venho trabalhando nisso há algum tempo (mais de um ano) para ser uma solução viável para as empresas e um grande prolema é quando um usuário abre algum aplicativo que tome todo o processamento, disco, memória ou outro recurso que seja, os outros usuário ficam na mão e botão a boca no trombone... Dae aconcelho no mínimo um 1GHz de processamento cada, 256 MB de RAM para o sistema e 256 MB para cada usuário na máquina... Menos que isso, numa empresa de movimentação constante é dor de cabeça...
Além disso, um grande problem é quando um usuário trava num aplicativo específico (ou numa janela) e não consegue tralhar, dae CTRL+ATL+BS geralmente (99%) trava tudo, dae todo mundo trava... For que quando uma peça queima, seja fonte, drives, rede, etc ou até um mané que tropeça nos cabos, os usuários ficam perdidos...
Acho que até isso ficar tecnologia totalmente madura para empresas (em lan house não vejo problemas) é aconselhável 2 por máquina e um monitoramento constante... Do resto, uso em casa e no trabalho e não volto atrás...
E parabéns por esse seu passo a passo, vai ajudar muita gente. Até então somente indicava o da C3SL, mas agora também vou indicar o seu.

[]'s

Claudio
Um peregrino de problemas; Um pergaminho de soluções!

[5] Comentário enviado por agk em 07/12/2005 - 14:45h

É uma solução interessante do ponto de vista financeiro, pois vai se economizar com hardware.
Parabéns pelo artigo, muito bom.

[6] Comentário enviado por bestlinux em 07/12/2005 - 16:07h

Gostei do artigo.....uma solução bem diferente...e muito util hoje em dia :-)

Parabens...

Falow !

[7] Comentário enviado por anderson_souza em 07/12/2005 - 16:36h

Não tem muito tempo eu estava discutindo com outro profissional da informática, sobre o conceito de terminal, que eu achava que tinha morrido, eu senti pena do fato e o ele disse que tinha que acabar mesmo, e era coisa do passada.

Bom eu sempre achei que era válida, apesar de ser uma idéia antiga. Agora fico contente em ver que tem gente que concorda que as vezes precisamos usar outras alternativas e não só descartar por se algo dos anos 60 ou 70 e inicio dos anos 80, so que na época feito por placa terminal.

Gostei muito do seu artigo, valeu mesmo.

[8] Comentário enviado por danilorlima em 07/12/2005 - 19:45h

que distro você usou ?

[9] Comentário enviado por tiago_herrmann em 07/12/2005 - 23:09h

Cara, já te dei os parabéns pessoalmente, mas dou parabéns de volta..
quando olhei o título do artigo eu já tinha idéia que era você que tinha escrito!
Concordo que o site do cara do patch do backstreet ruby é a melhor fonte sobre multihead da internet. Este cara realmente merece muitos créditos.
Continue sempre compartilhando seus conhecimentos.. valeu

[10] Comentário enviado por removido em 08/12/2005 - 01:05h

Muito bom...
10!

[11] Comentário enviado por pedro0278 em 12/12/2005 - 10:17h

O problema é prase economico demanda algum custo...
Tentei montar com placas simples e nao funcionou, mesmo elas suportando multiplacas. parece que so suporta chipsets ATI ou Radeon. Uma plaquina simples resolveria a vida de muita gente... alem de ser uma boa alternativa ao LTSP. mas parece que nao é tão simles assim.
alguem ja tentou montar com o novo projeto do C3SL com o Xine modificado?
Quanto ao artigo, está claro, mas nao a ponto de ser facil do ponto de vista do usuário menos experiente.
Está de parabéns pela iniciativa.

[12] Comentário enviado por winchester em 12/12/2005 - 10:53h

Ja montei sim com o Xnest modificado.. eu inclusive tenho trabalhando nessa solucao noite e dia.
Quanto a compatibilidade.. da pra se fazer com qualquer placa suportada pelo servidor X xorg. Ate da pra fazer com placas q tem duas saidas de video. Nao precisa ser chipset ati, radeon nem nvidia.. pode ser qualquer um.
Quando ao Xnest modificado.. eu vou ter novidades em breve

[13] Comentário enviado por thiagoaraujo em 19/12/2005 - 18:00h

o winchester, me tira uma duvida, so quero rodar isso ai no console, se eu usar a configuracao feita no X, posso usar isso dai somente no console? ou preciso fazer algo no console?

[14] Comentário enviado por fabermon em 15/02/2006 - 17:28h

Este artigo esta incompleto....

Falta passar parametros para o kernel na inicializacao, acertar o /proc/bus/video, etc....

[15] Comentário enviado por winchester em 15/02/2006 - 18:19h

Não precisa passar parâmetros do kernel na inicialização.. eu mesmo nunca fiz isso

[16] Comentário enviado por flaviocc em 24/05/2006 - 14:42h

Ola winchester, Parabéns pelo seu artigo.
Eu montei aki um 4head, e estou com 3 probleminhas...
1) Quando eu deslogo da estação principal (Layer0), todas as estações caem.
2) Após algum tempo de inatividade, todas as estações apagam, e só retorna a estação principal.
3) Algumas combinações de teclas ou a inserção de algum dispositivo usb (impressora, pendrive), fazem uma rotação na tela dos outros terminais, deixando a metade esquerda na direita e vice e versa.

vc já passou por algum desses problemas? vc conhece alguma solução para eles?

[17] Comentário enviado por rattus em 16/06/2006 - 11:14h

flaviocc,

o caso é que quando você pluga algum dispositivo usb você altera a ordem dos events em /proc/bus/input/devices ai você pode ter por exemplo o que era um teclado em event0 passa a ser um pen drive, logo a estação que usava o event0 fica sem teclado.
A solução é colocar todos dispositivos usb antes de iniciar o sistema, ai você já tem o devices preenchido.

Ralph Liebessohn

[18] Comentário enviado por stremenx em 13/01/2016 - 00:19h

Boa noite, estou no Linux Educacional e estou enfrentando muito problemas estou pensando em mudar de distribuição sendo que tenho que manter multiterminal, qual seria melhor Debian, Ubuntu, EduUbuntu? Sendo que na verdade irei tentar pois sou leigo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts