Atualizando o firmware OpenWRT para uma nova versão
Autor: Diário de Blog - Linux Adventures | Publicado: 2015-07-12T20:21:00-07:00

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 &lt; caminho para o firmware em seu PC &gt; 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 backups2) 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 fiz2.1) Informe ao OpenWRT quais arquivos de configuração deseja manterBasicamente, 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/statisticsetc/sysupgrade.confetc/sysctl.confetc/rc.localetc/profileetc/passwdetc/firewall.useretc/dropbear/dropbear_rsa_host_keyetc/dropbear/dropbear_dss_host_keyetc/config/wirelessetc/config/systemetc/config/networketc/config/firewalletc/config/dropbearetc/config/dhcpSwitching to ramdisk...Performing system upgrade...Unlocking firmware ...Writing from  to firmware ...Appending jffs2 data from /tmp/sysupgrade.tgz to firmware...TRX header not foundError fixing up TRX headerWriting from  to firmware ...Upgrade completedRebooting 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.