Discuta este tópico no fórum

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

sábado, 15 de março de 2014

OpenWRT: Lidando com a versão em desenvolvimento

Este é mais um artigo da série sobre o OpenWRT.

Tenho recebido o pedido de ajuda de pessoas que instalaram, intencionalmente ou por engano, a versão em desenvolvimento do OpenWRT (chamada de trunk). Ela é o que será a próxima versão estável, o Barrier Breaker, que ainda não tem data para lançamento.

Dependendo do roteador, se for um modelo novo, a versão trunk pode ser a única alternativa com suporte. Caso não seja o seu caso, recomendo fortemente sempre usar a versão estável.

OK, já estou rodando a versão trunk. O que eu faço agora?

Você tem algumas opções. A primeira é ficar com a versão trunk e viver com ela. Se estiver funcionando para você, ótimo! A segunda é fazer um downgrade para uma versão estável (12.09 - Attitude Adjustment). Por último, você pode voltar ao firmware original.

Vamos a primeira alternativa.

A versão trunk é, por definição, instável. Pode estar com os recursos que você precisa suficientemente estável. Pode estar com aquele bug que te atrapalha da versão estável corrigido. Pode ter um recurso novo que você não vive sem. Mas pode também resultar em uma firmware que simplesmente não funciona (raramente). Use-a por sua conta e risco.

O problema que mais escuto do pessoal que instalou a versão trunk é a ausência da interface WEB. Você inicia somente com um telnet ativo:
$ telnet 192.168.1.1
Trying 192.168.9.1...
Connected to 192.168.1.1.
 === IMPORTANT ============================
  Use 'passwd' to set your login password
  this will disable telnet and enable SSH
 ------------------------------------------

BusyBox v1.19.4 (2014-03-13 15:14:57 MST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 BARRIER BREAKER (Bleeding Edge, r39913)
 -----------------------------------------------------
  * 1/2 oz Galliano         Pour all ingredients into
  * 4 oz cold Coffee        an irish coffee mug filled
  * 1 1/2 oz Dark Rum       with crushed ice. Stir.
  * 2 tsp. Creme de Cacao
 -----------------------------------------------------
root@OpenWrt:/# 
Note o "BARRIER BREAKER (Bleeding Edge, r39913)". Isto significa que você está rodando uma versão instável ("Bleeding Edge") e na release r39913O aviso logo no começo indica que seria bom você definir uma senha pelo passwd (que desabilitará o telnet e habilitará o SSH), mas nada de interface WEB. O problema é que a versão em desenvolvimento não tem o Luci instalado.
root@OpenWrt:/# opkg list-installed | grep luci
root@OpenWrt:/# 
Mas não impede de você mesmo instalar.
root@OpenWrt:/# opkg update
root@OpenWrt:/# opkg install luci 
root@OpenWrt:/# /etc/init.d/uhttpd start
root@OpenWrt:/# /etc/init.d/uhttpd enable
A partir deste ponto, você já deve ter uma interface web funcional. Só entrar em http://192.168.1.1/. Agora, grande parte dos usuários terão capacidade de lidar com o OpenWRT, mesmo na versão trunk.

Algumas vezes isto não funciona pois o luci não configurou um tema. A interface web vai aparecer uma página de erro. Neste caso, você deve adicionar uma linha em /etc/config/luci (em destaque):

config internal 'themes'

option Bootstrap '/luci-static/bootstrap'

E a interface WEB estará funcionando.

A segunda alternativa é equivalente a um upgrade. Primeiro, localize a URL correta da firmware que você que gravar. Nesta situação, ela deve ter a palavra sysupgrade no nome. Vou usar o modelo TL-WR740N-v1 como exemplo. A URL da versão estável deste modelo na data da publicação deste artigo é:
http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/openwrt-ar71xx-generic-tl-wr740n-v1-squashfs-sysupgrade.bin
O processo pode ser realizado pelo telnet/SSH ou pela interface web (se fez o procedimento da primeira alternativa para ativá-la). Na interface web é só enviar o arquivo pelo navegador. Pelo telnet/SSH, estes são os procedimentos:
root@OpenWrt:/# cd /tmp/
root@OpenWrt:/# wget  http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/openwrt-ar71xx-generic-tl-wr740n-v1-squashfs-sysupgrade.bin
root@OpenWrt:/# sysupgrade -n openwrt-ar71xx-generic-tl-wr740n-v1-squashfs-sysupgrade.bin
O wget é na mesma linha do http://... e o sysupgrade do openwrt-ar... (mas faltou espaço aqui). Os comandos acima baixam a firmware no /tmp do roteador (que fica apenas na memória RAM), e gravam a firmware sem preservar as configurações. Claro, troque a URL e o nome do arquivo para o respectivo do seu modelo.

E se não tiver internet no roteador? Baixe na sua máquina e copie por scp (winscp no windows) para o /tmp do roteador. O scp é a cópia por SSH e, portanto, vai exigir que você defina uma senha no roteador (comando passwd) para ativá-lo antes da cópia. Com o arquivo em /tmp, execute o sysupgrade como mostrado anteriormente.

E para a última alternativa? Já escrevi sobre isto anteriormente. Depende de cada modelo/fabricante.

Se encontrar algum bug, seja na versão em desenvolvimento ou mesmo na versão estável, você pode reportar em https://dev.openwrt.org/newticket (somente em inglês). Só não esqueça de informar a release que você está usando (como r39913).

Até a próxima.