Na maioria dos dispositivos, o carregador de inicialização fornecido pelo fornecedor é uma partição separada do firmware real. No caso de um processo flash com falha ou de uma configuração incorreta, o carregador de inicialização do dispositivo geralmente ainda está intocado e totalmente funcionando. O gerenciador de inicialização possui um “modo de recuperação TFTP” embutido, permite recuperar o controle de um dispositivo com uma partição de firmware quebrada, permitindo um processo de recuperação em flash (que também redefinirá sua configuração para os padrões do dispositivo).
Para muitos roteadores, a recuperação funciona iniciando um servidor TFTP no seu computador. Em seguida, o dispositivo com o firmware quebrado deve ser iniciado no modo de recuperação TFTP. Alguns dispositivos puxam o arquivo de firmware fornecido pela rede pelo protocolo de rede TFTP para o OpenWrt e esperam se recuperar com um processo de flash de emergência bem-sucedido.
Alguns dispositivos não possuem a função pull automática e precisam de comandos manuais de cópia TFTP no modo de recuperação para obter o firmware da instalação do TFTP e do firmware.
NOTA: Alguns outros roteadores, por exemplo, muitos roteadores Netgear, possuem servidor TFTP em si mesmos, e o PC precisa atuar como cliente TFTP. O “modo de recuperação TFTP” também pode significar isso; verifique cuidadosamente as informações sobre o seu roteador para descobrir qual método o seu roteador possivelmente suporta.
O artigo abaixo aconselha principalmente sobre a recuperação “Cliente TFTP no roteador”.
A recuperação TFTP pela Ethernet não é suportada por todos os modelos de roteadores. A recuperação TFTP é baseada em um carregador de inicialização específico do dispositivo e do fornecedor que pode ou não estar presente no seu dispositivo. Verifique na página do dispositivo OpenWrt o seu modelo preciso para descobrir se o seu dispositivo possui um carregador de inicialização compatível com a recuperação TFTP. Se o seu dispositivo suportar, essa função de recuperação ainda estará presente no carregador de inicialização do dispositivo, depois que o firmware do OpenWrt tiver sido atualizado no dispositivo.
Nota:
O procedimento a seguir descreve apenas como configurar um servidor TFTP pela Ethernet para o processo de preparação de recuperação/instalação de TFTP, mas não descreve o processo de recuperação/instalação de flash específico do dispositivo. Para o processo de flash real, você deve consultar a documentação fornecida pelo fornecedor, a Internet, o Fórum OpenWrt ou as páginas do dispositivo OpenWrt.
O macOS fornece um servidor tftpd nativo que executa a linha de comando. Também existem aplicativos GUI disponíveis para aqueles que os preferem.
Para versões recentes do macOS, o tftpd fornecido pelo sistema é gerenciado com launchctl. Os usuários devem se sentir confortáveis com o uso da linha de comando e com o sudo para adotar essa abordagem. Conforme confirmado no macOS Sierra 10.12.6 e no macOS Mojave 10.14.2, as etapas gerais envolvidas são
tftpd$ sudo cp path/to/file/to/serve.bin /private/tftpboot/the_name_the_device_is_looking_for.bin $ sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
tfptd está sendo executado, ouvindo o UDP na porta 69, pelo comando abaixo$ netstat -an | fgrep \*.69 udp4 0 0 *.69 *.*
$ sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist
Como exemplo de um servidor tftp controlado por GUI, o TFTPServer.app de http://ww2.unime.it/flr/tftpserver/ fornece um wrapper de GUI agradável em torno do comando nativo que torna o processo menos propenso a erros. Este procedimento foi testado com o TftpServer.app v 3.4.1 no OSX 10.10.5 em dezembro de 2016.
Embora exista um recurso de servidor/cliente TFTP de linha de comando no Windows, é mais fácil usar um software de terceiro que possua uma interface gráfica adequada.
Um aplicativo TFTP simples e gratuito é o Tftpd32, disponível aqui (Tftpd64 é a versão de 64 bits e será usada neste exemplo).
Baixe a versão portátil e descompacte-a em uma pasta. Você deve ver o manual, uma licença em um arquivo PDF, um arquivo de configuração e o próprio aplicativo executável.
Coloque o arquivo que você deseja enviar (normalmente o arquivo de firmware) na mesma pasta em que encontra o arquivo de programa Tftpd64. A pasta exposta através do TFTP pode ser alterada clicando no botão Procurar, mas na maioria das situações você não precisa fazer isso.
Configure sua porta Ethernet de acordo com o método de recuperação do seu dispositivo, conforme detalhado em Recuperação de falha na atualização de firmware, note que, na maioria dos casos, você não pode usar essa porta para conectar-se à Internet até que você a reconfigure como antes.
Clique duas vezes no arquivo de programa Tftpd64 e você deverá receber um pop-up do Firewall do Windows solicitando a concessão de acesso. Marque as duas opções para permitir que o Tftpd64 se comunique em redes domésticas/comerciais e públicas. Isso é muito importante, se o Firewall do Windows bloquear o servidor TFTP, você não poderá acessá-lo pelo dispositivo que deseja recuperar.
Clique no menu suspenso chamado Interfaces do servidor e selecione a porta Ethernet do seu PC.
Agora, o servidor tftp está online e pronto, e os arquivos nele podem ser acessados normalmente.
Instale o atftpd do repositório no Debian/Ubuntu/Mint
# apt install atftpd
Instale o atftpd do repositório no RedHat/Fedora/Centos
# yum install atftpd
Crie um diretório onde você deseja colocar o arquivo de imagem
# mkdir /srv/tftp
Coloque o arquivo de imagem em seu diretório - o nome real variará
# cp ~/tp_recovery.bin /srv/tftp
Alterar a propriedade da pasta e o arquivo nela, com superusuário
# sudo chown nobody:nogroup -R /srv/tftp
Execute o servidor TFTP
# atftpd --daemon /srv/tftp
Verifique se o servidor TFTP está escutando
# netstat -lunp|grep 69
Se não estiver definido, tente executar o servidor TFTP como superusuário.
Verifique se você pode realmente extrair o arquivo do seu servidor tftp. De preferência em outro computador, chame o IP do servidor tftp: (ou, se não for possível, na mesma chamada do servidor IP 0.0.0.0)
# tftp 192.168.0.66 tftp> get tp_recovery.bin Received 8152633 bytes in 0.8 seconds tftp> quit
Se você recebeu o arquivo, parabéns, está pronto.
A transferência de arquivos TFTP não funciona no computador local
A transferência de arquivos TFTP funciona no computador local, mas não em outro computador:
A transferência de arquivos TFTP funciona em outro computador, mas não no roteador: