domingo, 15 de maio de 2016

Transforme um roteador 3G/4G em um servidor de impressora wifi

Se você ainda tem aquela impressora velhinha, porém funcional, principalmente se ela tem uma adaptação bulkink, mas ela não tem conexão de rede ou wifi, não desanime, ainda é possível adaptar um servidor de impressão nela. E eu não to falando em deixar um PC ligado só pra você imprimir, eu to falando em um hardware ligado à ela que fará esse trabalho. O problema disso é o preço, um servidor meia boca (sem conexão wifi) você paga na casa de R$100,00 e um com wifi chega a custar quase R$300,00. Isso é praticamente o preço da impressora !

Esses dispositivos não são nada demais, a unica coisa em especial que eles tem é o software interno que faz o serviço de impressão, sendo assim se o software é o problema, vamos altera o software ! Pra começar, temos que escolher um roteador que tenha uma conexão USB, e temos esse modelo: Wireless N 150Mbps 3G/4G TL-MR3220 da TP-Link , parece ser perfeito. Eu achei no mercado livre por em média R$100,00. Eu escolhi um TP-Link não atoa, ele é amplamente compatível com a nossa velha amiga Open WRT, e é justamente pra ela que vamos recorrer para fazer esse serviço. Antes de comprar pergunte ao vendedor o modelo de Hardware e veja se o modelo e o hardware que você vai fazer a modificação, tem uma firmware compatível com o modelo. Esse roteador em específico que eu citei aqui (MR3220) tem compatível para a versão de hardware V1 e V2.

Eu não vou reescrever todo o processo de instalação da firmware do Open WRT, pois este já está em outro post:

http://danrtavares.blogspot.com.br/2016/02/transforme-seu-velho-roteador-em-um.html

Agora com o OpenWRT instalado no roteador, é hora de começar a configuração do servidor de impressão. Neste caso eu vou usar o p910nd que devido às limitações de hardware do roteador, é perfeito, pois é um servidor de impressão simples e sem spool , ou seja, ao mandar imprimir ele vai mandar diretamente pra impressora, sem armazenar a impressão localmente, pois o dispositivo não tem memória interna nem memória RAM para isso. Com isso, ele acaba virando apenas um middleware entre a rede e a porta USB.

Pra começar, vamos ter que fazer uma conexão SSH, e se você usa o windows, uma forma fácil de fazer isso é com o software Putty. É importante definir aqui, como esse equipamento estará funcionando na rede, ele pode ser o roteador principal, um repetidor de sinal, ou apenas um servidor de impressão. Seja como for, ele terá que ter um IP Fixo , sendo assim, se ele não for o roteador principal, você terá que definir manualmente o IP dele dentro da rede de forma visível e sem conflito com o principal, por exemplo, se o roteador principal tem o IP: 192.168.1.1 você poderá definir o seu servidor de impressão como 192.168.1.2, deixando o pool do dhcp a partir do 192.168.1.10 por exemplo, assim não haverá conflito entre IP fixo e IP dinâmico. Lembre-se que essa conexão pode ser feita tanto via cabo, como via Wireless.

Definido o IP fixo, conecte via SSH no seu dispositivo (lembre-se de definir uma senha de acesso antes) e abra uma janela de console.
Edite o arquivo entre na pasta /etc/config e edite o arquivo firewall você pode usar o comando "vim" para isso. Adicione o seguinte texto no final deste arquivo:

config 'rule'
        option 'src' 'lan'
        option 'proto' 'tcp'
        option 'dest_port' '9100'
        option 'target' 'ACCEPT'
Depois de salvo, isso vai permitir que o firewall do dispositivo aceite conexões na porta 9100, que é onde virá a impressão via rede. Agora vamos instalar o suporte à impressão via USB, para isso, o dispositivo já terá que ter acesso a internet. Tendo acesso a internet, execute os comando abaixo:

opkg update
opkg install kmod-usb-printer
E agora o servidor de impressão propriamente dito:

opkg install p910nd
Instalado o serviço de impressão, vamos acertar seu arquivo de configuração, para isso abra o arquivo p910nd na pasta /etc/config ele deverá ficar desta forma:

config p910nd                  
        option device        /dev/usb/lp0
        option port          0           
        option bidirectional 1 
        option enabled       1 
Repare que a linha "option enabled" deve estar como "1".

Respira fundo que está quase acabando ! O Serviço já está funcionando, agora temos que garantir que ele vá iniciar automaticamente ao ligar o dispositivo. Para isso, agora saia do console e entre na configuração gráfica via WEB, vá em "Sistem / Startup" procure em initscript (se ele não estiver ai, reinicie o dispositivo) e deixe como "Enabled", se já estiver, por garantia, coloque "Disabled" e novamente "Enabled". Reinicie o dispositivo, e tudo deverá estar funcionando.

Agora é a vez de configurar a impressora no PC, para isso, siga esse passo a passo:
  • Vá em adicionar uma nova impressora
  • No assistente, diga que é uma impressora local
  • Ele vai perguntar pela porta da impressora, vá em criar uma nova porta e defina como porta TCP/IP
  • Em nome da impressora ou endereço IP, digite o endereço IP do seu servidor de impressora, e em nome da Impressora, coloque o que quiser.
  • O próximo passo poderá dar um erro, isso é normal.
  • Em tipo de dispositivo, marque Personalizado e clique em Configurações
  • Deixe o protocolo como RAW e clique em OK
  • A partir de agora, instale o driver da impressora normalmente
Mande uma pagina de teste, tudo deverá estar funcionando normalmente, você deverá reinstalar a impressora em todas os PCs da rede, ou simplesmente altere a porta, e crie uma porta TCP/IP como mostrado acima.

É claro que algumas funcionalidades da impressora não deverão funcionar, assim como o Scanner, comando de limpeza de cabeçote, medição de nível de tinta etc, mas de uma forma geral funciona muito bem, e depois de configurado, pessoas leigas (como minha mãe), imprime normalmente, sem dificuldade alguma.