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.262 ]
Por: Alexandre Felipe Muller de Souza em 07/12/2005
Dentre os problemas que envolvem os multiheads, existem
alguns realmente chatos. As placas não são projetadas pra funcionar
de forma independente. Uma placa sempre derruba a outra, às vezes
aparecem caracteres estranhos em uma delas e a tela misteriosamente
começa a rodar com um simples mount ou swapon.
Por exemplo, uma interrupção pode ser "entendida" por todas elas. Isto
acontece com a int 10. Quando a placa é inicializada. Porém simplesmente
tirando a interrupção 10 faz com que as placas secundárias não tenham
memória suficiente para inicializar (sem modos de tela válidos).
Mas calma, não é o fim do mundo. Para isso dá-se um jeito, colocando um
script simples no boot que chamaremos de "Xorg-multiterminal". Ele só
inicializará as placas sem a interrupção 10 pra que depois elas sejam usadas.
Mas primeiro vamos configurar o xorg.conf, edite o /etc/X11/xorg.conf
mais ou menos com a seguinte configuração, mudando os endereços pelo qual
você anotou:
Aqui omiti várias informações, porém o principal ainda se encontra
aí. Interessante também é desabilitar a aceleração 3D, já que não vai
ser necessário mesmo, coloque Option "NoAccel" em cada device. A
opção Dontzap no layout impede que o usuário feche o X com
Ctrl+Alt+Backspace. Isso faz com que todos os usuários caiam. Atenção!
o BusID usa endereços em decimal.. então converta a =10, b=11, c=12...
Outra coisa muito importante é o driver evdev (event devices),
ele é o responsável pela separação dos dispositivos em distros como
Mandriva e evdev não vem compilado no Xorg. Infelizmente você
vai ter que compilar e o trabalho vai durar semanas. Outra solução é
usar o /dev/input ao invés do endereço físico, mas sua distro deve suportar os protocolos.
Agora precisamos configurar o "Xorgmultiterminal" no boot. Pra isso crie
um arquivo "xorg.conf.probe", que será baseado no xorg.conf. Ele habilita
as placas no boot. Então crie o /etc/X11/xorg.conf.probe começando já
da placa secundária:
O número 80 corresponde a prioridade que esse script tem no boot.
Quando você parar o X, execute sempre ele novamente na mão pra não
precisar reiniciar. Por exemplo:
[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...
[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!
[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!
[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.
[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
[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?
[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.
[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.