Atenção [31/01/16]: comentários que estejam fora do assunto que está claramente delineado no título deste post não serão mais publicados ou respondidos.
Todos os procedimentos a seguir foram testados no Windows 8.1 64 bits. No Windows XP deve ser ainda mais fácil.
Se seu roteador não está “morto” você não precisa seguir esse procedimento. É mais fácil fazer a instalação do firmware via setup do roteador. No meu caso eu tinha duas unidades com firmware corrompido que só ficavam com dois LEDs acesos, Internet e Power, e mais nada funcionava.
Você precisa:
- De uma conexão serial TTL com o roteador, além da conexão de rede – Veja também meu post onde descrevo o pinout e parâmetros da porta serial do DSL2740e;
- De um software terminal serial como o Tera Term, PuTTY ou o SSCOM – Os três funcionaram nessa tarefa. Essencialmente o que você precisa é de um software serial que envie caracteres imediatamente para o dispositivo à medida que você os digita. Existem softwares muito bons por aí que não deixam você enviar um ESC simplesmente teclando ESC no teclado e por isso são de uso difícil nesta aplicação;
- Do software TFTPD32 – A versão de 32bits funciona mesmo no Windows 64 bits (testado no Windows 8.1 x64);
- Do arquivo de firmware. Você pode usar:
- O firmware original GVT, que só faz PPPoE em linhas GVT (exceto se desbloqueado);
- O firmware do DSL2740e retail – Deveria ser o melhor firmware a usar nesse aparelho, mas segundo testes feitos por terceiros ele não alcança as mesmas velocidade de upload que o firmware GVT. Segundo obervação feita por DuoLED, aparentemente a versão retail tem metade da memória RAM da versão GVT. Isso não pôde ser confirmado ainda porque no DSL2740e a RAM fica dentro do SOC e portanto não pode ser identificada visualmente;
- O firmware do Netis DL4322 – Completamente experimental ainda;
- O firmware do TotoLink ND300 – Ainda experimental
Descrição resumida do processo
O DSL2740e tem um bootloader que (geralmente) ainda fica ativo quando o firmware está corrompido e está programado para, via comando pela porta serial, buscar um novo arquivo de firmware em um servidor TFTP indicado pelo usuário. TFTPD32 vai fazer o papel de servidor DHCP e TFTP onde o roteador vai pegar um endereço IP e o arquivo com o firmware.
O processo
Por precaução, desconecte a sub-rede onde você está fazendo isso da rede com o servidor DHCP “oficial” da sua casa. É recomendável que o roteador pegue um IP apenas no TFTPD32.
Conecte seu computador e o roteador ao seu switch ethernet (leia as NOTAS no fim do texto);
Conecte o roteador via porta serial ao PC e use um dos softwares indicados para comunicação. Enquanto você não estiver vendo o boot do roteador no programa, não adianta prosseguir;
Configure o seu PC para o endereço IP 192.168.0.100.
no TFTPD32
Coloque o arquivo de firmware “router.img” no mesmo diretório de tftp32d.exe;
Defina “base directory” como o diretório do tftpd32.exe;

habilite os servidores DHCP e TFTP:

Configure o servidor DHCP:
IP Pool start: 192.168.0.10
Size of pool: 10
Def. router: 10.0.0.1 (eu coloquei qualquer coisa aqui, porque o programa exigia, mas o valor é irrelevante para esse processo)
Mask: 255.255.255.0

IMPORTANTE: TFTPD32 não aplica a nova configuração imediatamente ao clicar em OK. Por precaução, após mudar qualquer configuração feche o programa e abra de novo para que os servidores reiniciem com os novos parâmetros.
12/01/2016 – Se ao fechar e abrir o programa a configuração tiver sido perdida, você provavelmente colocou o programa em um diretório onde ele não tem permissão para escrever, como “Program Files” e “Arquivos de Programas”. Crie um diretório para ele na raiz de um dos drives, como indicado na primeira imagem, que deve funcionar.
No Terminal Serial (PuTTY, Tera Term ou SSCOM)
Você precisa estar no prompt do roteador (boot console), que inicia com “<RTL867X>”. Exemplo de quando você entra no prompt com um firmware não totalmente corrompido carregado:
Start to decompress!
Booting
Press ‘ESC’ to enter BOOT console…
Ext. phy is not found.
Boot from NOR/SPI flash
(c)Copyright Realtek, Inc. 2012
Project RTL8676S LOADER (LZMA)
Version 00.01.02a-rc (Apr 24 2014 13:41:19)
<RTL867X>
Exemplo com firmware completamente corrompido:
Start to decompress!
Booting
Press ‘ESC’ to enter BOOT console…
Ext. phy is not found.
Boot from NOR/SPI flash
support multicast tool
time out ……
Decompress file… uncompress fail
try secondfailed!
(c)Copyright Realtek, Inc. 2012
Project RTL8676S LOADER (LZMA)
Version 00.01.02a-rc (Apr 24 2014 13:41:19)
<RTL867X>
Em vários casos de firmware corrompido você cairá no prompt automaticamente ao ligar, mas em outros casos você precisara teclar ESC no terminal quando o bootloader começar a carregar. Você tem poucos segundos para fazer isso após energizar o aparelho. Se passar do ponto, terá que desligar o aparelho e ligar de novo.
No prompt do roteador, digite “tftp” e [ENTER]
O roteador deverá responder com uma mensagem de que pegou o endereço 192.168.0.10. Exemplo de resposta:
BOOTP request sent
BOOTP: get IP 192.168.0.10, file from server 192.168.0.100
Se isso for acompanhado de novo processo de boot, tecle ESC quando isso for sugerido;
digite “tftp 192.168.0.10 192.168.0.100 router.img” e [ENTER] (assumindo que o nome do arquivo de firmware seja “router.img”);
O roteador deverá responder que pegou o firmware e está gravando. Exemplo da resposta:
<RTL867X>tftp 192.168.0.10 192.168.0.100 router.img
TFTP request: server 192.168.0.100, file ‘router.img’ buffer 0x80000000
#########################################################################################################################################################################################################
TFTP: Up/Down-loaded 6586532 bytes
Writing file…
Isso vai levar alguns segundos. Quando o processo terminar desligue o roteador e ligue de novo. Você deverá ver no PuTTY o processo de carga do novo firmware e as luzes de operação normal do roteador devem acender. O roteador deverá estar pronto para ser configurado.
Por precaução, aperte o botão RESET no fundo do modem para carregar a configuração de fábrica antes de fazer qualquer outra configuração. Ao instalar o firmware você escreveu na memória flash, mas muitas vezes a configuração fica em outro lugar na flash (ou em uma memória EEPROM) e o novo firmware poderá carregar valores de parâmetros que só fazem sentido para o firmware anterior. A restauração “de fábrica” (esse nome é enganador) comanda o firmware atual a gravar a EEPROM com os valores default dos seus parâmetros (e não os realmente “de fábrica”).
Notas:
- Você pode tentar evitar o uso do switch e conectar seu PC diretamente ao roteador, mas em geral nesse tipo de tarefa usar um switch é “mais garantido”. Isso porque, principalmente nas versões do Windows depois do XP, o SO pode demorar a detectar que existe uma conexão mais do que o tempo limite do roteador para esperar por ela. No caso específico do DSL2740e isso pode não ocorrer (não testei ainda), mas leve isso em conta se a conexão direta não funcionar;
- Os endereços IP que você configura no seu PC e no tftpd não precisam ser os citados no texto. Desde que você saiba o que está fazendo pode usar quaisquer outros, desde que na mesma sub-rede. Por exemplo, eu testei definindo o meu IP como 10.0.0.120 e o inicial do DHCP como 10.0.0.222 e o roteador pegou o IP no TFTPD32;
- Não confunda “tftp” com “tftpd”. O primeiro é o nome do comando que você vai rodar no modem (cliente). O segundo é o nome do programa que você vai rodar no Windows (servidor). Os nomes não são parecidos por coincidência. Ambos implementam o Trivial File Transfer Protocol;
- TFTPD32 vai gatilhar um aviso do firewall do Windows ao ser executado pela primeira vez. Certifique-se de dar permissão a ele. Se houver qualquer dúvida de que você deu a permissão correta, mova o diretório TFTPD32 para outro lugar e o firewall perguntará novamente. Melhor ainda: considere desligar antivirus e firewall enquanto estiver rodando esta recuperação;
- Nem sempre os comandos enviados para o roteador funcionam na primeira tentativa. Se o roteador não responder imediatamente, envie o comando de novo. No PuTTY eu conseguia isso facilmente clicando com o botão direito no terminal;
- Se o roteador responder com erro ao comando tftp, experimente insistir uma ou duas vezes. Por alguma razão aconteceu várias vezes de eu não mexer em nada e um comando tftp que deu erro funcionar quando insisti.
- O programa TFTPD32 é também um servidor DHCP. Se você executá-lo com o seu computador ligado a uma rede qua já tenha um servidor DHCP, enquanto ele estiver rodando qualquer dispositivo que solicite um IP na sua sub-rede poderá receber uma resposta primeiro de TFTPD32 e isso criará problemas de conectividade geral;
- Se após o texto Writing file… o roteador voltar imediatamente ao prompt, algo deu errado. Repita o último comando. Se o problema persistir é possível que o firmware que você está tentando instalar seja incompatível com o DSL-2740e. O roteador não dá nenhuma mensagem de erro pela serial nesse caso;
- Se após instalar um novo firmware você não conseguir acessá-lo, aperte o botão de reset. É comum isso acontecer principalmente quando o firmware novo tem um IP padrão diferente do firmware antigo;
Descrição simplificada do processo de boot do ponto de vista dos LEDs:
- LED Internet acende – Roteador energizado;
- LED Power acende Vermelho – Bootloader foi carregado e está fazendo a leitura do firmware na flash;
- LED internet apaga – Inicio da execução do firmware;
- LEDs LAN1 a LAN4 acendem – Firmware inicializando o chip Ethernet (mensagem Probing RTL8186 10/100 NIC… na serial);
- LEDs LAN1 a LAN4 apagam segundos depois (se não houver nada ligado às portas);
- LED Wi-Fi Acende verde – Wi-fi inicializado;
- LED Sincronismo começa a piscar;
- LED Power muda de vermelho para verde – Fim do boot.
Créditos
Como fazer o flash dump via porta serial
O procedimento a seguir faz o backup de todo o conteúdo da memória flash do 2740e, incluindo bootloader e parâmetros de operação, e provavelmente qualquer outro baseado no mesmo chipset Realtek.
O procedimento é o mesmo usado para gravar um firmware, com uma única diferença. Você vai substituir o último comando tftp por tftpbk.
Por exemplo, para fazer um backup de nome dsl2740e.dump no diretório de TFTP32 dê o seguinte comando:
tftpbk 4194304 192.168.0.10 192.168.0.100 dsl2740e.dump
4194304 é o tamanho da flash (4MB) em bytes
A estrutura do dump é mais ou menos a seguinte:
- Os primeiros 64K – Bootloader e configurações default;
- Do fim do booloader até a primeira grande região vazia (com muitos FF FF FF FF) o firmware, exatamente como apresentado em arquivo
- A terceira e última região do firmware contém, em endereços variados (depende do firmware instalado), a configuração salva pelo usuário. Contém informações pessoais como SSID e senha wireless
Para criar um arquivo usável de firmware a partir de um flash dump, use um editor hexadecimal para selecionar tudo do endereço 0x010000 (64KB) até a região onde começa uma grande quantidade de FFFFFFF (não selecione os FF) e salve essa região como um novo arquivo.
Endereços úteis
Os endereços citados no log serial (entre parênteses) são os reais acrescidos de 0xBFC00000
- 0x004000 – flash hw config addr
- 0x006000 – flash sw default config addr
- 0x010000 – Fim da região do bootloader e inicio do firmware
- 0x1AD4F0 – Fim aproximado da região do firmware (~1.7MB)
- 0x1F0000 (bfdf0000) – flash sw backup config addr – Netis e GVT
- 0x1F8000 (bfdf8000) – flash sw config addr – Netis e GVT
- 0x3F0000 (bfff0000) – flash sw backup config addr – TotoLink ND300
- 0x3F8000 (bfff8000) – flash sw config addr – TotoLink ND300
Note que os firmwares GVT e Netis colocam a configuração no finalzinho da região dos 2MB (0x200000). Isso confere com a observação feita no outro post sobre o comando “show version”. Está claro que o Totolink ND300 realmente espera que a flash tenha 4MB. Outra hora eu preciso checar o que diz o “show version” quando o firmware da Totolink está instalado no DSL2740e.
Aparelhos onde já tenham sido testados vários firmware diferentes podem apresentar múltiplas regiões gravadas com parâmetros. A instalação de um firmware e o hard reset somente apagam as regiões da flash que vão usar, deixando o resto intocado.
Jefferson, toda vez que dá um problema na sua Oi, vocÊ faz algo?
Digo, abre uma reclamação, pede desconto dos dias sem acesso?
Aqui eu tenho GVT, sempre que acontece qualquer coisa, e eu digo qualquer coisa mesmo, a primeira cosia que eu faço é abrir um chamado na Anatel. Peço os descontos e técnicos para vir resolver o problema. Já fizeram manutenções gerais, já mudaram aparelhos, já mudaram fios, tudo sem custos e descontos, já tive varias mensalidades cortadas.
Onde abrir chamado da Anatel? Aqui: http://focus.anatel.gov.br/focus/
Eu “pago” para não ter que passar pelo suplício de discutir com o suporte da OI.