Atualização da firmware de bridges/routers baseados no chip RTL8186 via TFTP com o Linux
Bridges e routers baseados no chip RTL8186 seguem sempre o mesmo procedimento para atualização de firmware. Como grande parte dos equipamentos comercializados atualmente são baseados neste chip o procedimento em questão é válido para vários fabricantes e modelos (Zinwell - G120, Edimax - EW7209, Kodama - KOD770, etc).
Para maiores informações sobre o RTL8186: http://www.linux-mips.org/wiki/Realtek_SOC#Realtek_RTL8186
Procedimentos:
1. configure um IP qualquer na rede 192.168.1/24 na estação com Linux utilizado para o procedimento de atualização (não use o host 6, este é o IP padrão da bridge no modo de atualização).
# ip link set dev eth0 up
# ip address add 192.168.1.10/24 brd + dev eth0
2. limpe as regras de firewall existentes (só por segurança, não é essencial, na verdade basta apenas liberar a porta UDP/69 na interface conectada à bridge).
# iptables -F
# iptables -X
3. configure a política padrão:
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
4. desligue a bridge/router, pressione o botão de reset e religue-a (com o reset pressionado).
5. Aguarde alguns segundos e execute o tftp com a seguinte sintaxe:
# tftp 192.168.1.6 -v -m binary -c put firmware.bin
Connected to 192.168.1.6 (192.168.1.6), port 69
putting firmware.bin to 192.168.1.6:firmware.bin [octet]
Sent 1896470 bytes in 6.5 seconds [2324668 bit/s]
-v é o modo interativo
-m o tipo de transferência
-c put, é o comando executado, o argumento (firmware.bin) é o arquivo enviado
A bridge irá rebootar automaticamente após algum tempo (1 a 2min), depois disso será possível acessá-la através da interface web já com o firmware atualizado.
ATENÇÃO: a bridge perderá todas as configurações eventualmente efetuadas.
Geralmente o IP padrão após este procedimento é o 192.168.2.1 ou 192.168.2.254 (G120).
Este procedimento também é válido para equipamentos aparentemente travados (e em alguns casos até mesmo bridges consideradas sem recuperação); caso não funcione, ainda é possível tentar um "reset" mais agressivo, através da memória flash da bridge.
Para tanto é necessário abrí-la (bridge), estudar o datasheet do chip (memória flash) e encontrar a pinagem correta para efetuar o reset via harware diretamente no chip. Quando isto é efetuado com sucesso a bridge entra automaticamente no modo de atualização via tftp,
Alguns fabricantes utilizam chips de memória flash baseados neste chip da Fujitsu:
http://www.jetronic.com.cn/datasheet/fujitsu_flash/MBM29LV800XA.pdf
Basicamente aterra-se determinado pino com o equipamento desligado e segue-se o procedimento descrito acima (tftp, trocando o botão de reset pelo aterramento direto no chip).
Já consegui recuperar duas Edimax EW7209 através deste procedimento, ou seja, resetar o chip e ativar o modo tftp (aterrando o pino 48 - o último do chip - ou o pino 12).
AVISO: atualizações de firmware sempre são perigosas, aterrar chips que trabalham com tensões e correntes muito baixas podem inutilizar o equipamento, portanto, estude bem os datasheet's e efetue os procedimentos descritos por sua conta e risco!
BY Faleiros