Discuta este tópico no fórum

Se este conteúdo te ajudou, deixe um presente!

sábado, 24 de agosto de 2013

OpenWRT: Conectando um modem 3g no seu roteador

Este é mais um artigo da série sobre o OpenWRTDentre os diversos usos de uma USB em um roteador com OpenWRT, um dos mais interessantes é a possibilidade de utilizá-la para conectar um modem 3g.

A rede de dados móvel já possui uma cobertura bem interessante, ao menos nos grandes centros. Em alguns casos, já contamos com a disponibilidade até de redes 4g. Já não é raro a situação onde a conexão de dados móvel tem maior velocidade de transferência do que a conexão cabeada. Contudo, em geral, a latência da rede de dados móvel é bem pior.

Os modem 3g tem um caráter individualista: você conecta diretamente no seu PC e somente ele usa a conexão de dados. Claro que existe a possibilidade de compartilhar a internet através de um outro computador, mas não é nada prático. Um roteador para esta função seria o ideal. É ótimo! Na infraestrutura, você só precisa de uma tomada e pode fornecer internet para um grupo PEQUENO de pessoas. Existe alguns produtos no mercado com o slogan de "roteador 3g" ou "roteador para modem 3g". Eles são roteadores wireless com uma porta USB ou mesmo, nos casos de um modem embutido, uma entrada para SIM Card. Alguns até contam com uma porta Ethernet para aumentar as possibilidades.

Mas qual a diferença destes roteadores "3g" e o que eu tenho aqui? Ele também tem uma porta USB! Por que não funciona conectar um modem 3g nele? A diferença é somente software. Os fabricantes, por ser interessante para seu negócio, limitam as funcionalidades do software do seu roteador. Com OpenWRT, o que você vai fazer com a USB é problema seu. Não temos qualquer limitação artificial.

O primeiro passo para a utilização do modem é a instalação dos drivers e programas para seu modem. Sempre tome cuidado no uso de disco pois colocar muitas funções no seu roteador irá acabar com o seu limitado espaço em disco (que você pode resolver com uma unidade externa USB). Se precisar de mais de uma porta USB, para usá-las também para conectar HD, impressora, você pode precisar de um Hub USB. Só lembre-se que, se for usar um Hub USB, seu modem 3g pode necessitar de um Hub com alimentação externa. O roteador, normalmente, não tem potência suficiente para alimentar mais dispositivos em conjunto com um dispositivo pesado como um modem 3g. Sem o Hub  normalmente, o roteador dá conta.

Considerando que você tem espaço, os pacotes necessários são:
  • comgt
  • kmod-usb-serial
  • kmod-usb-serial-option
  • kmod-usb-serial-wwan ou kmod-usb-acm (depende do seu modem)
  • usb-modeswitch
  • usb-modeswitch-data (Atualizando 3: não necessário para versão BB ou superior)
  • luci-proto-3g (para permitir a configuração pela interface WEB)
Atualizando 4: Atualmente existe uma nova classe de modems 3g que não são CDC-ACM. Usam o padrão QMI. São outros pacotes e a configuração é ainda apenas via arquivo de configuração. Atualizarei sobre estes modens no futuro.

Para instalar, pode ser feito pela interface gráfica (sempre rodando um update antes para baixar a lista de pacotes) ou pela linha de comando:
opkg update

opkg install comgt kmod-usb-serial ...
Se estiver com dúvidas quando ao uso do kmod-usb-serial-wwan ou kmod-usb-acm, você pode instalar todos os pacotes (se tiver espaço). Se quiser descobrir qual é o correto, pode também conectá-lo em um desktop Linux e ver qual módulo é carregado (acm ou wwan). Algo como:
linuxdesktop:$ lsmod | grep acm
Vai listar se o módulo cdc-acm foi carregado.

Atualizando 3: Para a versão BB, é necessário ativar o serviço usbmode.

Instalado os módulos e programas, ao conectar o modem, você encontrará alguns dispositivos novos em /dev/. Eles podem ser /dev/ttyUSB{0,1,3} ou /dev/ttyACM. Isto indicará que seu modem foi reconhecido. Se não aparecer, tende reiniciar ou remover/reconectar o modem. Depois do dispositivo presente, basta adicionar uma nova interface. Você também poderá ver a criação destes dispositivos pelos logs na interface WEB.

Vou limitar a configuração pela interface WEB, que é mais simples e atende um público maior. Em "Rede/Interfaces", clique para adicionar uma nova interface. Escolha o nome que quiser, mas costumo seguir um padrão como wwan (wireless wan). No protocolo  escolha "UMTS/GPRS/EV-DO". Ao prosseguir, você poderá configurar os demais parâmetros.

Nesta configuração, o dispositivo do modem vai ser um dos dispositivos que apareceram com o modem (/dev/ttyUSB0 ou /dev/ttyACM). O tipo de serviço, APN, e usuário e senha depende do seu provedor mas, se não souber, pergunte para quem sabe. O PIN só é necessário se seu cartão foi protegido por senha. Se não souber o que é isso, provavelmente não precisa. Por padrão, o roteador irá conectar pelo modem assim que o roteador ligar ou quando o modem for conectado. Se quiser fazer isto manualmente, desative a opção de conexão na inicialização em "Opções Avançadas". Ainda falta a configuração da zona do firewall, que é fundamental para o funcionamento. O mais simples é simplesmente configurar esta nova interface na zona WAN. Assim, a mesma conectividade que você teria pela porta WAN, você terá na conexão 3g. Se tudo der certo, após aplicar as configurações, seu modem irá conectar em breve.

Sentiu falta de alguma coisa? Ah, não tem opção de configurar o número do telefone pela configuração do OpenWRT. :-( E, para alguns casos, isto é fundamental (Vivo). Para mudar o número de discagem, edite o arquivo /etc/chatscripts/3g.chat e mude o número do comando ATDT. Ex:
/etc/chatscripts/3g.chat:

OK      "ATDT*99#"
No roteador, você tem o editor vi. Para novatos ele é bem estranho mas fundamental saber trabalhar com ele para se virar neste mundo UNIX. Também pode copiar o arquivo, editar no desktop e copiar de volta. Só cuidado para usar um editor que não troque o "nova linha" de UNIX para Windows. Não use o notepad!

Atualizando 1: a versão Barrier Breaker (14.07) já consta com uma opção na configuração para definir o número de discagem: dialnumber. Entretanto, ela não está ainda disponível na interface Luci (WEB). Desta forma, ainda será necessário editar um arquivo de configuração (/etc/config/network) ou usar comandos uci.

Atualizando 2: a futura versão do Luci que acompanhará o OpenWRT Caos Calmer (em desenvolvimento) terá suporte a configuração do dialnumber pela interface web.

Mas ainda não funcionou! Observe as mensagens do sistema (pela interface WEB ou comando logread). Lá estará o motivo de não ter funcionado.

Se a conexão 3g é a sua "segunda conexão", você pode estar interessado também no artigo sobre balanceamento de conexões.

Até a próxima.

PS: Depois que acabar alguns projetos prioritários que estão em fase de conclusão, vou ver se gasto um tempo para adicionar a opção do número de discagem na interface WEB.