você está aqui: Home  → Arquivo de Mensagens

x2vnc - Dois PCs, um único teclado e mouse

Colaboração: Carlos E. Morimoto

Data de Publicação: 25 de Junho de 2005

O uso de dois monitores é um recurso já bastante conhecido e cada vez mais popular. É possível também usar um segundo micro remotamente, usando o VNC, SSH ou mesmo se conectando a ele via XDMCP, o protocolo de compartilhamento nativo do X.

Que tal então juntar as duas coisas? Ter ao mesmo tempo dois PCs, com a possibilidade de rodar dois sistemas operacionais diferentes e, ao mesmo tempo, toda a praticidade de um sistema dual monitor, onde basta arrastar o mouse para o canto da tela para que o cursor e o teclado passem a atuar sobre o monitor do segundo micro?

Você pode ter dois PCs rodando Linux, dois PCs com o Windows ou ainda um PC com o Linux com um Mac ao lado. É possível ainda ter três ou até quatro PCs, para literalmente ser "envolvido" pelos monitores :-)

Muita gente usa o VMWare ou o Win4lin para rodar dois sistemas operacionais ao mesmo tempo, mesmo que sacrificando parte do desempenho. Este recurso é um passo adiante por permite ter ao mesmo tempo dois sistemas operacionais completos, sem nenhum tipo de limitação e ao mesmo tempo um aumento de desempenho, já que cada um tem seu próprio PC e você pode distribuir seus aplicativos entre eles.

Gnu Linux + Windows

O primeiro passo é ligar os dois PCs em rede e colocar seus monitores lado a lado. Vamos começar pelo uso mais comum, que é ter um PC com o Linux como principal e um PC com o Windows (ou Mac) como secundário.

O primeiro passo é instalar o servidor VNC no PC com o Windows (ou Mac). Tanto faz utilizar o VNC original, quanto o Tight VNC. Não é preciso fazer nenhuma configuração, apenas manter o servidor ativo.

Você pode baixar o VNC para Windows no: http://www.tightvnc.com/

Esta versão é bem simples de usar. Depois de instalar o programa é criada uma seção dentro do iniciar, com ícones para ativar o servidor ou abrir o cliente VNC. Ao ativar o servidor ele fica residente na forma de um ícone ao lado do relógio. Você é obrigado a definir uma senha de acesso para evitar acessos não autorizados.

Neste caso o VNC não servirá para permitir o acesso remoto, mas sim como uma ponte para que o cursor do mouse chegue à segunda máquina.

Chegamos então à parte B, que é a configuração da máquina Linux, que será usada como PC primário. Tudo o que você precisa fazer é instalar um pequeno programa, o x2vnc, que cuida da parte pesada. Você pode baixa-lo no:

http://fredrik.hubbe.net/x2vnc.html

O programa tem apenas 56 kb, só mais um exemplo de que tamanho não é documento :-). Para instala-lo use os comandos:

  $ tar -zxvf x2vnc-1.4.tar.gz (descompacta o pacote)
  $ cd x2vnc-1.4.tar.gz (acessa o diretório criado)
  $ ./configure (roda o script de configuração)
  $ make (gere o executável)
  $ su <senha> (para virar root)
  # mkdir /usr/local/man/man1/
  # make install (finalmente instala o programa)

Algumas distribuições já incluem este pacote. No Debian por exemplo você pode instala-lo com um: "apt-get install x2vnc"

Feito isso basta acessar (a partir do micro Linux) o servidor VNC ativo na máquina Windows, usando o comando:

  $ x2vnc 192.168.0.3:0

Substituindo naturalmente o 192.168.0.3 pelo endereço IP correto. O ":0" indica que o programa acessará a tela principal do VNC, que é justamente o que queremos.

Pronto, estabelecida a conexão, basta levar o cursor do mouse até o canto direito da tela e ele automaticamente passa para a tela do micro Windows, e levando-o de volta para a esquerda ele volta ao micro Linux. Naturalmente, o teclado acompanha o rastro do mouse, atuando sobre o PC onde estiver o mouse. É exatamente como ter um PC com dois monitores, mas desta vez com dois PCs.

O que o x2vnc faz é criar uma janela invisível, com um único pixel de largura, posicionada no canto esquerdo da tela. Esta janela captura o rastro do mouse, enviando-o para o servidor VNC ativo no segundo micro que se encarrega de controlar o rastro do mouse na máquina Windows.

Se por acaso o segundo monitor for colocado à esquerda do primeiro, basta incluir a opção "-west" no comando e o mouse mudará de PC ao ser levado para o canto esquerdo da tela:

  $ x2vnc -west 192.168.0.3:0

Você pode usar também as opções "-north" e "-south" que capturam o cursor respectivamente no canto superior e inferior da tela. Não é necessário que os dois PCs usem a mesma resolução de tela. Você pode ter um usando 1024x768 e outro usando 800x600, por exemplo, sem problemas. Até a rodinha do mouse funciona normalmente.

Já que você controlará o PC Windows através da outra máquina, não há necessidade de manter nem teclado nem mouse instalados. No caso do teclado basta configurar a opção "halt on" do setup com a opção "no errors" e o BIOS deixará de exibir a mensagem de falta do teclado. No caso do mouse existe um pequeno problema no Windows 2000 e XP que faz com que a seta do mouse suma caso não haja um mouse instalado na máquina. O cursor funciona normalmente, mas sem a setinha fica difícil de controlá-lo. Nestes casos você precisa manter um mouse baratinho qualquer conectado para evitar o problema.

Mais alguns parâmetros que podem ser incluídos no comando são:

-shared : permite que o mesmo PC secundário seja usado por mais de um PC. Serviria por exemplo para ter dois PCs, cada um com o seu operador e um terceiro PC entre os dois para uso comum. Lembre-se também que o servidor VNC na máquina Windows também pode aceitar conexões remotas, exibindo a mesma tela. Isto pode ser usado com uma ferramenta de trabalho em grupo.

-hotkey : se você acha incômodo o mouse ir sozinho para o outro monitor ao chegar ao canto da tela, você pode ativar um atalho de teclado para fazer a mudança. O default é ctrl+F12, mas você pode criar um atalho personalizado, incluindo as teclas desejadas no comando, como em: "-hotkey shift-ctrl-F1".

-scrolllines : serve para ajustar a sensibilidade da roda do mouse. A opção "-scrolllines 5" faz com que a tela role 5 linhas a cada passo e assim por diante.

A partir destas opções, você pode criar um comando personalizado que se ajuste melhor às suas necessidades. Pode ser por exemplo:

  $ x2vnc -west scrolllines 5 shared 192.168.0.3:0

Infelizmente, você precisa repetir o comando a cada vez que reiniciar os PCs, mas você pode criar um atalho para facilitar as coisas. No KDE clique sobre a barra de tarefas e em "Adicionar > Botão especial > Aplicação Não-KDE". Na linha do comando escreva "/usr/local/bin/x2vnc". Na tela de configuração do atalho Marque a opção "roda no terminal" e escreva o restante do comando, incluindo as opções e o endereço da máquina que será contactada. Aproveite para escolher um ícone.

Agora ao clicar sobre o atalho abre-se uma janela de terminal com o comando e você precisa apenas digitar sua senha para se conectar ao segundo micro.

Um aviso importante é que as últimas versões, a partir do 1.4.1, incorporaram alguns recursos que a tornaram incompatíveis com algumas distribuições Linux e algumas combinações de servidores X e versões do Kernel. Se ao tentar ativar o x2vnc você receber uma mensagem de erro qualquer, não esquente a cabeça. Simplesmente baixe a versão 1.3.1 (ou outra anterior) e tente novamente. Por mais azarado que você possa ser, pode ter certeza que uma das versões disponíveis na página irá funcionar com você :-)

Apesar da idéia soar um pouco estranha para muitos, o funcionamento do programa é quase perfeito. A sensibilidade do mouse fica praticamente inalterada e a velocidade em ambos os micros não é prejudicada.

O único grande problema é que a acentuação só funciona no segundo micro caso você esteja utilizando um teclado US Internacional. Ao utilizar um teclado ABNT2 a acentuação não funciona no segundo micro. Isto já foi incluído na lista de bugs em aberto e deve ser corrigido nas próximas versões.

Gnu Linux + Linux

Vamos então à segunda possibilidade, que é ter lado a lado duas máquinas Linux. Neste caso a única mudança é que ao invés de instalar o VNC Server na máquina secundária, você usará o o krfb (Compartilhamento do Desktop), um programa do pacote KDE originalmente destinado a permitir que o desktop principal seja acessado remotamente, seja para usar seu micro a distância, seja para dar suporte remoto.

Este programa faz parte do pacote kdenetwork, que você pode instalar com o comando "urpmi kdenetwork" (no Mandrake), "apt-get install kdenetwork" (Debian e Conectiva), etc. O Kurumin já vem com ele funcionando direto do CD

Este programa emula a funcionalidade do compartilhamento de desktop do Windows XP, permitindo que outra pessoa se conecte na sua máquina e veja o seu desktop usando um cliente VNC. A única diferença entre o vncserver for Linux e o krfb é que ele compartilha a tela :0, a que você está vendo no monitor ao invés de criar uma seção do X separada.

Basta abrir o programa e clicar no "Criar Convite pessoal". Ele abrirá uma tela dando o IP da máquina (do servidor), que o cliente usará para se conectar e uma senha:

Feito isso você já poderá se conectar usando o x2vnc normalmente, da mesma forma que faria ao usar uma segunda máquina com o Windows.

O problema desta configuração default do krfb é que é utilizada uma configuração "segura" e por isso os convites são válidos por apenas uma hora. Não seria muito prático ficar reconectando o x2vnc oito vezes por dia, mas existe uma solução fácil para isso.

Na tela principal do programa, clique no "Configurar". Na tela seguinte, marque as opções "Permite conexões sem convite" e "Permite conexões sem convite para controlar o ambiente de trabalho". Defina uma senha de acesso.

Mesmo configurado desta maneira, o krfb ainda é seguro, pois além da senha de acesso, toda vez que alguém tenta se conectar à sua máquina, ele exibe um aviso, informando o IP da máquina e pedindo sua confirmação.

Para poder se conectar remotamente, é preciso manter o krfb aberto na segunda máquina. Se você quiser que ele seja ativado automaticamente durante o boot, basta arrastar o ícone para dentro da pasta .kde/Autostart dentro do seu diretório home.

Versões antigas do krfb, até o KDE 3.1 ainda não possuíam esta opção. Nelas era preciso fazer uma pequena adaptação para que não fosse necessário ficar gerando convites e os renovando toda hora:

Crie um convite e estabeleça a conexão normalmente. Depois, acesse a pasta ".kde/share/config/" (dentro do home do usuário que estiver utilizando) e abra o arquivo krfbrc.

Aqui ficam a configuração dos convites, incluindo a data de duração em texto puro. Apenas a senha está encriptada e por isso não pode ser alterada:

  [invitations]
  creation0=2005,4,19,12,12,41
  expiration0=2005,4,19,13,12,41
  invitation_num=0
  password0=ï¿ï¿¦ï¾µï¿²ï¾¥ï¿ï¾²

Tudo o que você precisa fazer é alterar o campo "expiration" que indica quando o convite expira. Se você alterar o ano, de 2005 para 2006 por exemplo, o convite poderá ser usado por um bom tempo :-) A única limitação é que o convite é eliminado quando o micro é desligado, por isso você ainda terá o trabalho de abrir o krfb uma vez por dia, a menos que deixe seus micros sempre ligados.

Windows + Windows

Finalmente, caso você queira utilizar duas máquinas Windows, precisará utilizar o Win2VNC. Este programa tem exatamente a mesma função do x2vnc, com a diferença que roda sobre o Windows. Você só precisa instala-lo no PC Windows primário e usá-lo para acessar o VNC Server no PC Windows secundário. Você pode baixa-lo em:

http://fredrik.hubbe.net/win2vnc.html

Windows + Linux

A última possibilidade seria ter um PC Windows como primário e um PC Linux como secundário. Neste caso você utilizaria o Win2VNC no PC primário, com o Windows e o krfb no PC secundário com o Linux.


Gostou da dica? Veja a agenda de cursos presenciais com Carlos E. Morimoto em Porto Alegre e São Paulo

  • Curso: Redes e Servidores Linux (com Carlos E. Morimoto) Em Porto Alegre, início dia 04/07

  • Curso: Programando em Shell Script (com Júlio Cezar Neves) Em Porto Alegre, início dia 11/07



Veja a relação completa dos artigos de Carlos E. Morimoto

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script