domingo, 12 de julho de 2015

Atualizando o firmware OpenWRT para uma nova versão

Depois de instalar a versão "factory" do firmware do OpenWRT para o TL-WDR4300 da TP-Link (ou do seu roteador), ou seja, a versão que substituiu o firmware original do fabricante, as próximas versões a instalar do firmware OpenWRT são de atualização, as "sysupgrade".
Uma vez que o sistema está funcionando a contento, já temos acesso à Internet, a rede interna funciona etc (ou, temos apenas a rede interna funcionando), podemos atualizar o sistema.

Para atualizarmos o firmware OpenWRT, precisamos copiar o arquivo com o firmware para o diretório /tmp do roteador. Isso pode ser feito através de comandos como scp (caso já tenha baixado o firmware no seu computador, e queira apenas copiar para o roteador).
Um exemplo seria
scp < caminho para o firmware em seu PC > root@openwrt:/tmp/

É possível, também, estar dentro do diretório /tmp, no roteador e utilizar o comando wget para baixar o firmware.

Depois de colocar o firmware no diretório /tmp, pode-se proceder de duas formas:

1) Sobreescrever a memória FLASH (Flash Overwrite)
Para mais instruções sobre este método, siga o link.
Neste método, porém, é preciso reconfigurar a sua rede e a sua conexão com a Internet novamente. Ajuda se tiver backups

2) Procedimento genérico de atualização do sistema (Generic Upgrade)
Este procedimento é descrito no link.
Foi o procedimento que eu segui.
Ele trás a vantagem de incluirmos os arquivos de configuração a preservar (menos os que estiverem em um disco USB) no roteador, e ao fazer a atualização, a rede já volta funcionando quando o novo firmware já estiver rodando, desde que não tenha configurações baseadas em pacotes que você teve de baixar por não estar por padrão dentro do firmware corrente).

Vou relatar aqui, os passos principais para realizar a atualização do modo que eu fiz

2.1) Informe ao OpenWRT quais arquivos de configuração deseja manter
Basicamente, você deve escrever o caminho para eles no arquivo /etc/sysupgrade.conf

2.2) Faça uma lista de pacotes que baixou para reinstalá-los no OpenWRT após a atualização (necessário para que os pacotes trabalhem em sintonia com o kernel mais atual)

Uma maneira de fazer isso é executar o comando proposto no último link:

find /overlay/ | sed s:/overlay::g | while read file; do opkg search $file; done | awk '{print $1}' | sort | uniq

2.3) Uma vez que o firmware, de algum modo, já esteja no diretório /tmp, utilizar o comando

sysupgrade -v /tmp/openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin

No lugar de openwrt-ar71xx-generic-tl-wdr4300-v1-squashfs-sysupgrade.bin, deve ser o firmware do roteador por você possuído.

A saída do comando, deve ser algo parecido com isso:
Saving config files...
root/statistics
etc/sysupgrade.conf
etc/sysctl.conf
etc/rc.local
etc/profile
etc/passwd
etc/firewall.user
etc/dropbear/dropbear_rsa_host_key
etc/dropbear/dropbear_dss_host_key
etc/config/wireless
etc/config/system
etc/config/network
etc/config/firewall
etc/config/dropbear
etc/config/dhcp
Switching to ramdisk...
Performing system upgrade...
Unlocking firmware ...

Writing from to firmware ...
Appending jffs2 data from /tmp/sysupgrade.tgz to firmware...TRX header not found
Error fixing up TRX header

Writing from to firmware ...
Upgrade completed
Rebooting system...

Ou seja, mostrando os arquivos de configuração que você resolveu manter, e depois fazendo o upgrade.

Depois que o sistema rebootar, ele voltará já rodando com o novo firmware, e com a rede básica e a conexão com a Internet funcionando.
Lembre-se, se for o caso, de reinstalar os pacotes que você havia baixado na versão anterior do firmware.

Nenhum comentário:

Postar um comentário