Discuta este tópico no fórum

Se este conteúdo te ajudou, deixe um presente!

quinta-feira, 2 de março de 2017

OpenWRT/LEDE: atualizando para LEDE 17.01.0

Mais um artigo da série sobre o OpenWRT/LEDE.

Como citei no post anterior, o sucessor do OpenWRT é o LEDE. E este acaba de lançar a sua primeira versão: 17.01.0.

Sim, este artigo repete diversos pontos do artigo de atualização anterior. Afinal, apesar da mudança no nome, ainda é a mesma base.

96,72% dos problemas com instalação/atualização com LEDE que ajudo é em relação a escolha incorreta da imagem da firmware. Como sempre, recomendo a versão squashfs, que possui modo de recuperação. Pegue o arquivo no download da última versão estável e nunca em um endereço qualquer, mesmo que seja na wiki do OpenWRT/LEDE. Normalmente a wiki referencia a versão em desenvolvimento, que não é a que você quer. As versões dentro de "releases", exceto as com o rc (release candidate) são estáveis. Pegue preferencialmente a mais nova (com número maior). Evite qualquer firmware que tenha no caminho palavras como "trunk", "snapshot" ou "rc1", "rc2"... exceto se estiver testando algo. As versõe estáveis também referenciam a versão do LEDE no nome como em "lede-17.01.0-r3205-59508e3-ar71xx-generic-tl-wr2543-v1-squashfs-sysupgrade.bin", ao contrário da versão instável/em desenvolvimento "lede-ar71xx-generic-tl-wr2543-v1-squashfs-sysupgrade.bin".

A nomeclatura da versão é parecida com a adotada pelo OpenWRT: ano.mês.correção. O ano/mês se referem ao momento que foi criado um ramo nos fontes para o lançamento da nova versão. Já o último número é apenas um sequencial de correção. Então, para quem usa uma versão 17.01.x, a próxima 17.01.x+1 conterá apenas bugs resolvidos (em especial, os de segurança) e deve ser considerada como recomendada. Prometeram lançar versões de correções periodicamente. Vamos acompanhar

Em downloads, navegue para releases, a versão desejada (17.01.0 até agora), "targets"  e seguindo o caminho da "arquitetura alvo" em uso no seu roteador. Se você já é um usuário do OpenWRT, você pode vê-la olhando o arquivo /etc/openwrt_release:
root@router:~~# cat /etc/openwrt_release
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='15.05'
DISTRIB_REVISION='r46767'
DISTRIB_CODENAME='chaos_calmer'
DISTRIB_TARGET='ar71xx/generic'
DISTRIB_DESCRIPTION='OpenWrt Chaos Calmer 15.05'
DISTRIB_TAINTS=''
A diferença no LEDE para o OpenWRT é a presença do "targets" e, no mesmo nível, "packages". Comentei esta diferença no post anterior, mas normalmente o "packages" não é para você e será usado quase que exclusivamente pelo opkg de forma transparente.

OK, chegamos a uma lista enorme de firmwares! Vamos entender o que significa cada parte do nome do arquivo. O formato mudou um pouco no LEDE. Tomemos por exemplo "lede-17.01.0-r3205-59508e3-ar71xx-generic-tl-wr2543-v1-squashfs-sysupgrade.bin":
  • lede é o sistema operacional que você está instalando ;-)
  • 17.01.0 é a versão do lede. Em firmwares instáveis, este campo não existe!
  • r3205 é um sequencial do número de mudanças no fonte. Serve para saber se um arquivo é mais velho do que outro.
    • Caso apareça algo a mais como r3205+2, significa que alguém deve ter feito 2 mudanças não oficiais sobre a versão r3205.
  • 59508e3 é a versão resumida do hash da última mudança no git. Você pode usar comandos git sobre ela nos fontes do LEDE como "git log 59508e3".
  • ar71xx é a família do SoC (chip) do seu dispositivo. Você descobre isso na wiki do projeto ou abrindo o seu roteador e lendo os CI.
  • generic é o formato do layout da flash. Normalmente será o "generic", exceto para casos especiais.
  • tl-wr2543-v1 este é o modelo do seu roteador! Observe em especial a versão do HW (v1) pois ela pode mudar completamente o dispositivo, inclusive de família do SoC.
  • squashfs é o tipo do armazenamento da imagem. Nesta, existe uma cópia imutável dos arquivos (ROM) e o resto da flash é usada para, de forma transparente, guardar as modificações (overlay). Tudo parece editável para o usuário. A diferença é que você pode, a qualquer momento, apagar as diferenças e restaurar o sistema pós-instalação. Pode existir também o formato jffs2. Neste, não existe uma ROM e tudo pode ser realmente apagado. Alterou o arquivo errado? Vai ter que recuperar pela serial, JTAG ou arrancando a flash. Não recomendo!\
  • sysupgrade é a função da firmware. Esta é para atualizar de um OpenWRT/LEDE para outro (e, em alguns casos, de outros firmwares alternativos como DD-WRT). Porém, não deve ser reconhecido pela firmware original do roteador. Para primeira instalação, ainda com a firmware original, use a variante "factory".
Finalmente, é muito importante ler a wiki do seu roteador independente se ele já funcionava na versão anterior! São poucos minutos de leitura que podem salvar horas de trabalho ou mesmo seu roteador. Durante esta fase de OpenWRT e LEDE, sugiro que procurem na wiki de ambos os projetos.

Bem, se eu simplesmente ir na interface, fornecer a nova imagem, ele vai funcionar? Provavelmente, mas talvez não é a maneira que dê menos trabalho. A atualização pode preservar as configurações mas não os programas instalados. Se você tem raiz expandida em unidade externa, a encrenca é ainda maior.

Mas eu nunca instalei um programa! OK, use a interface web e provavelmente todas as configurações serão migradas sem problemas. Já testei isto em mais de um roteador e funcionou sem problemas. Mas faça o backup antes! Caso tenha instalado algum pacote, continue lendo.

Em primeiro lugar, precisamos do plano de retorno caso a nova versão não se comporte como o esperado. Faça sempre um backup geral do seu sistema. No processo de upgrade, eu sugiro que sejam feitas as três formas diferentes de backup que eu comento no artigo sobre o temabackup gerado pelo sistema, lista de pacotes instalados e todos os arquivos do overlay. Este último serve apenas para o plano de retorno caso algo importante não funcione para você na nova versão (e para recuperar algo que não entrou no backup do sistema).

Agora, finalmente, você está pronto para enviar a nova firmware. Se você usa um armazenamento externo para expandir a raiz, leia até o final deste post antes de iniciar o processo! Faça o upgrade pela interface web ou pelo terminal. Inclusive, você pode baixar o arquivo diretamente no roteador. Ex:

# cd /tmp
# wget http://downloads.lede-project.org/releases/17.01.0/targets/.../generic/lede-17.01.0-r3205-59508e3-....-squashfs-sysupgrade.bin
# sysupgrade lede-17.01.0-r3205-59508e3-....-squashfs-sysupgrade.bin

Só cuidado ao colar a URL. O downloads.lede-project.org usa HTTPS por padrão mas o wget do OpenWRT não tem suporte para HTTPS (por padrão). Contudo, o downloads.lede-project.org aceita http sem problemas, só tirar o "s" se tiver problemas.

E pode fazer pela Wifi? Os fabricantes não recomendam usar sempre um computador "conectado por cabo"? Sim, e já tive problemas com atualização a partir da firmware do fabricante por não escutar isto. Mas não com OpenWRT/LEDE. Se estiver atualizando (e não instalando a primeira vez!), pode fazer pela Wifi sem problemas. Quando a gravação for iniciada, todo o processo já está independente do computador cliente. Só não pode faltar energia ;-)

E depois do "Enter"/"Gravar", é a hora que você reza. Sempre dá um frio na barriga.

Se optar por preservar as configurações, tudo que seria guardado em um backup do sistema (listado pelo "sysupgrade -l") será restaurado. Se você instalou algum pacote e guardou a lista do que foi instalado (lembra que eu sugeri há alguns parágrafos atrás?), esta é a hora que você reinstala os pacotes desejados. Se for instalar manualmente, procure instalar os pacotes de mais alto nível (ex: "luci-app-minidlna" antes de "minidlna"), pois eles irão, por dependência, baixar os pacotes requeridos. No final do processo, é bom refazer a listagem do que está instalado e comparar com o que você tinha na versão anterior.

Podem ser criados arquivos sufixados com "-opkg" em /etc/. Este são arquivos de configuração originais do pacote e são criados pois você modificou algo na configuração. Sugiro que verifique se não existe alguma coisa introduzida neste pacote que deveria ser adicionada no seu arquivo de configuração. Eu gosto do diff ou do "vim -d" para este trabalho comparando o arquivoconf com arquivoconf-opkg. Ao final do processo, eu gosto de apagar qualquer -opkg para deixar claro que apliquei tudo que queria.

As atualizações de segurança serão disponibilizadas por meio de atualização de pacotes (exceto as que exijam mudar o kernel). Para listar os pacotes atualizáveis:

# opkg update
# opkg list-upgradable

O maior problema é que estas atualizações de segurança, quando de pacotes embutidos oriundas na firmware instalada, ocuparão o espaço duas vezes no roteador pois ao substituir arquivos existentes na firmware inicial, ainda será preservado a versão em somente leitura para recuperação. Se for um problema para seu caso, a alternativa é esperar a próxima versão com a correção ou gerar uma nova firmware com o pacote atualizado.

Por fim, faça um novo backup geral. É sempre bom preservar o seu trabalho.

Se precisar retornar a versão anterior do OpenWRT, realize a gravação da firmware antiga, entre no modo de recuperação e restaure a overlay.

Se você não usa uma unidade externa para expandir o espaço interno, seu trabalho acabou. Para os demais, o processo é um pouco mais complicado... Ao atualizar o sistema, você terá um kernel novo que é incompatível com os módulos de kernel ou mesmo com as bibliotecas existentes na unidade externa, que ainda pertencentes à versão anterior. Você precisaria reinstalá-los. Esta é a sugestão de como proceder:

Em primeiro lugar, gere todos os backups sugeridos anteriormente. É importante preservar seu trabalho anterior. Ainda sem instalar a nova firmware, reinicie o sistema sem a unidade externa. Se você seguiu minha sugestão de manter uma configuração básica na flash interna, você ainda terá um ambiente funcional. Com isto, ele vai usar somente a flash interna (com a configuração que você tinha antes de usar a unidade externa).

Ainda com a unidade externa desconectada, faça o procedimento de atualização descrito neste artigo para quem não usa raiz expandida, inclusive com a etapa de backups. Você terá que preservar os dois conjuntos de backups: com e sem a unidade externa em uso. Ao final do processo, você deverá ter a sua configuração básica restabelecida. Caso tenha optado por não preservar as configurações na gravação, você pode aproveitar o backup gerado quando a unidade externa estava desconectada (o segundo) para restaurar as configurações.

Neste momento, a unidade externa ainda está com os programas da versão anterior, que são geralmente incompatíveis com a nova versão (os módulos de kernel sempre o são). Por isto, precisamos nos livrar de todos os arquivos da versão anterior do OpenWRT presentes na unidade externa. Na unidade externa, na partição usada como overlay, remova todo o conteúdo ou mova tudo para um subdiretório (ou para outra unidade se não estiver com espaço livre) afim de que este não seja usado. Como sugestão, crie um "openwrt-versao-xxx" e mova tudo para lá. Refaça a configuração de uso de uma unidade externa (que no mínimo será reinstalar os pacotes necessários). Reinicie o sistema. Você deve estar agora com mais espaço na raiz.

Neste ponto, você ainda terá as mesmas configurações que tinha quando usou o sistema sem a unidade externa. Envie o primeiro backup da versão anterior feito com a unidade externa conectada (primeiro backup). Na sequência, reinstale os pacotes extras, assim como é feito para ambientes sem a raiz expandida. Complete o trabalho com aquele backup final.

Espero que apreciem a nova versão. De agora em diante, vou apenas focar em configurações específicas para LEDE 17.01.0, que ainda podem funcionar nas versões OpenWRT 15.05, 14.07, 12.09 e 10.03.1.

Se pintar um problema, tem sempre o fórum deste blog. Até a próxima.

35 comentários:

  1. Excelente!! Justamente hoje reinstalei tudo no router pq a pendrive foi pro céu e nao tinha bkp.
    Só tem um porem, na versao CC do openwrt ja nao tinha espaco suficiente pra instalar o suporte USB para o extroot no meu TP-LINK MR3420 v2. Sabe se nessa versao nova ja vem com esse suporte? Ou o router vai morrer com a BB mesmo?
    Parabens pelo blog, novamente.

    ResponderExcluir
    Respostas
    1. Como você tem USB, nada está perdido. Se não tem espaço para instalar os módulos, sugiro criar uma firmware customizada
      http://luizluca.blogspot.com.br/2012/01/openwrt-turbine-seu-roteador_25.html

      Assim você pode remover coisas que não são necessárias (até a interface web) até conseguir instalar o suporte a USB. Depois você reinstala o que foi removido.

      Excluir
  2. Olá Luiz obrigado pelo post! Como você esta instalando pacotes? Tem dado o seguinte erro:
    Collected errors:
    * xsystem: wget: vfork: Out of memory.
    * opkg_download: Failed to download http://downloads.lede-project.org/releases/17.01.0/packages/mips_24kc/luci/luci-i18n-base-pt-br_git-17.062.72323-0d555e5-1_all.ipk, wget returned -1.
    * opkg_install_pkg: Failed to download luci-i18n-base-pt-br. Perhaps you need to run 'opkg update'?
    * opkg_install_cmd: Cannot install package luci-i18n-base-pt-br.

    Procurei no forum do LEDE e a promessa é que na próxima versão estará corrigido.

    ResponderExcluir
    Respostas
    1. Elias, tá complicado mesmo para quem tem 32mb de RAM.

      Instalei baixando o pacote manualmente e instalando sem rodar o opkg update antes (ou, se tiver feito, apagando os aquivos respectivos em /tmp). O problema é assim o opkg que ele perde a função de gerenciador de pacotes.

      Excluir
  3. Fala Luiz!

    A versão LEDE Reboot 17.01.1 já está disponível.

    Estou tentando instalar o HPLIP e usar o SANE porém ao instalar o HPLIP do seu repositório do LEDE 17.01.0 eu sou bombardeado com esse erro no systemlog (quando uso o WIAScanner no Windows para se conectar/instalar a Scanner)

    Fri May 5 16:36:28 2017 daemon.debug saned[6647]: saned (AF-indep+IPv6) from sane-backends 1.0.25 starting up
    Fri May 5 16:36:28 2017 daemon.debug saned[6647]: check_host: access by remote host: 192.168.1.134
    Fri May 5 16:36:28 2017 daemon.debug saned[6647]: init: access granted to Diego@192.168.1.134
    Fri May 5 16:36:28 2017 daemon.info saned[6647]: io/hpmud/musb.c 427: Found interface conf=0, iface=0, altset=0, index=1
    Fri May 5 16:36:28 2017 daemon.info saned[6647]: io/hpmud/musb.c 389: Active kernel driver on interface=0 ret=0
    Fri May 5 16:36:28 2017 daemon.info saned[6647]: io/hpmud/musb.c 535: claimed 7/1/2 interface
    Fri May 5 16:36:28 2017 daemon.info saned[6647]: io/hpmud/musb.c 780: read actual device_id successfully fd=1 len=150
    Fri May 5 16:36:28 2017 daemon.info saned[6647]: io/hpmud/musb.c 561: released 7/1/2 interface
    Fri May 5 16:36:28 2017 daemon.info saned[6647]: io/hpmud/musb.c 960: new HP-MARVELL-SCAN channel=21 clientCnt=1 channelCnt=1
    Fri May 5 16:36:28 2017 daemon.info saned[6647]: io/hpmud/musb.c 427: Found interface conf=0, iface=2, altset=0, index=7
    Fri May 5 16:36:28 2017 daemon.info saned[6647]: io/hpmud/musb.c 389: Active kernel driver on interface=2 ret=0
    Fri May 5 16:36:28 2017 daemon.info saned[6647]: io/hpmud/musb.c 535: claimed ff/ff/ff interface
    Fri May 5 16:36:28 2017 daemon.err saned[6647]: common/utils.c 69: unable to open /var/lib/hp/hplip.state: No such file or directory
    Fri May 5 16:36:28 2017 daemon.err saned[6647]: common/utils.c 119: validate_plugin_version() Failed to get Plugin version from [/var/lib/hp/hplip.state]
    Fri May 5 16:36:28 2017 daemon.err saned[6647]: common/utils.c 157: Plugin version is not matching
    Fri May 5 16:36:28 2017 daemon.err saned[6647]: common/utils.c 220: Invalid Library hanlder pLibHandler = NULL.
    Fri May 5 16:36:28 2017 daemon.info saned[6647]: io/hpmud/musb.c 561: released ff/ff/ff interface
    Fri May 5 16:36:28 2017 daemon.info saned[6647]: io/hpmud/musb.c 975: removed HP-MARVELL-SCAN channel=21 clientCnt=0 channelCnt=0
    Fri May 5 16:36:29 2017 daemon.debug saned[6647]: saned exiting

    Já o sane-find-scanner apresenta:
    found USB scanner (vendor=0x03f0 [Hewlett-Packard], product=0x042a [HP LaserJet Professional M1132 MFP]) at libusb:001:003

    scanimage -L
    device `hpaio:/usb/HP_LaserJet_Professional_M1132_MFP?serial=000000000SS17TR2PR1a' is a Hewlett-Packard HP_LaserJet_Professional_M1132_MFP all-in-one

    Agora o ScanImage -T me retorna erro também:
    scanimage: open of device hpaio:/usb/HP_LaserJet_Professional_M1132_MFP?serial=000000000SS17TR2PR1a failed: Error during device I/O


    Pelo que entendi do systemlog, o HPLIP não é compatível. Provavelmente porque seu repositório é para o LEDE 17.01.0 e não 17.01.1.
    Será que se você atualizar, vai funcionar?

    Eu tinha tentado no OpenWRT e sempre tinha esse problema de Error during device I/O no Scanimage -T, porém é a primeira vez que no systemlog ele fala que o HPLIP está "corrompido", ou melhor, "incompatível".

    ResponderExcluir
    Respostas
    1. Olá Diego,

      17.01.0 e 17.01.1 devem ser compatíveis. Talvez você tenha algo sobrando da sua tentativa de instalar os pacotes da versão 15.05.1.

      Eu nunca enfrentei esse problema nos meus testes. Você pode tentar criar o diretório /var/lib/hp/ e rodar novamente. Se funcionar, posso incluir no pacote.

      Excluir
    2. Então, sobrar não sobrou pois eu fiz factory reset antes e depois de flashear o LEDE.

      Amanhã eu tento novamente no escritório.

      Excluir
  4. olá Luiz e Leitores!
    primeiramente, parabéns pelo blog, o li quase que completamente durante esta semana.
    há 15 dias tive meu primeiro contato com o OpenWRT, eu costumava utilizar o DD-WTR, e pensei que fossem ser parecidos rsrs, nem preciso dizer o quanto tenho apanhado durantes estes 15 dias.
    bem, o que estou há muito tentando fazer são 2 funções... por favor, veja a possibilidade de me ajudar?
    1. acessar o modem com OpenWRT remotamente. (tenho IP Estático, e já acesso outros computadores remotamente, mas quero acessar o roteador e não tenho conseguido)
    2. percebi que há milhares de formas de limitar a banda de acesso, qual seria a melhor delas?
    muito obrigado!

    ResponderExcluir
    Respostas
    1. Rodrigo,

      1) O roteador, por padrão, bloqueia acessos pela WAN. Isso é uma medida de segurança pois a interface web expõe uma superfície de ataque muito maior do que outros protocolos. Se quiser abrir, só ir na configuração do firewall e abrir a porta 80.
      Entretanto, eu sempre recomendo que seja usado o acesso por um túnel, seja um SSH ou uma VPN.

      2) Sim, existem diversas formas. Esse controle no OpenWRT/LEDE é feito pelo tc do Linux. Você pode praticamente fazer qualquer coisa com isso. Não existe uma melhor genericamente, mas uma para cada caso. A conf padrão já tenta reduzir a latência ao máximo mesmo sobre carga, que melhora em muito a sensação de velocidade de coisas interativas. Mas isso não vai melhorar a taxa de transferência. Porém, se seu objetivo é limitar "comercialmente" a velocidade, tem exemplos em: https://wiki.openwrt.org/doc/howto/packet.scheduler/packet.scheduler como: https://wiki.openwrt.org/doc/howto/packet.scheduler/packet.scheduler.example2
      Pode ser um pouco complicado mas cortar taxa de transferência de algum dos usuários não é algo que atraiu o interesse dos desenvolvedores do OpenWRT/LEDE. Você sempre pode fazer um novo pacote ;) Se quiser buscar na internet, o termo é "traffic shaping", que você pode combinar com OpenWRT ou, genericamente, Linux.

      Excluir
    2. muito obrigado!
      consegui sucesso ambas necessidades!

      Excluir
  5. Luiz, estou com o OpenWRT 15.05.1, minha dúvida é se posso atualizar o mesmo diretamente com a versão sysupgrade do lede?. Ou tenho que instalar a factory do lede?.

    ResponderExcluir
    Respostas
    1. Anônimo,

      Use a versão sysupgrade. OpenWRT/LEDE são intercambiáveis. Por sinal, já fizeram as pazes e creio que em poucos meses será lançado uma nova versão do LEDE mas agora com o nome OpenWRT.

      Excluir
    2. Opa, obrigado. Como sou leigo no assunto (Pois estou me aventurando no OpenWRT pela primeira vez) e gostaria que você resolvesse mais esta dúvida, neste momento estou com o lede agora, mas eu posso voltar ao OpenWRT 15.05.1 usando o firmware factory sem problemas?.

      Excluir
    3. Não, use sempre a sysupgrade. A factory é apenas para mudar da firmware original para a alternativa. Entre OpenWRT e LEDE é sempre sysupgrade

      Excluir
  6. Luiz você teve algum problema para acessar o samba remotamente depois de instalar o LEDE, eu não estou conseguindo, ja revisei toda configuração, nem mesmo do Linux eu consigo. Tem alguma dica.

    ResponderExcluir
    Respostas
    1. Fabiano, não tive problemas (que eu lembre). Uso diariamente.
      Veja os logs. Se não ajudar, vai aumentando o log level do samba.
      Por último, use o wireshark. No limite, ele resolve quase tudo.

      Excluir
  7. TP-Link TL-WR841N/ND v9
    Espaço: 450kb

    obviamente com problemas de espaço...
    preciso de espaço para instalar WShaper e Luci-app-WShaper
    serviços utilizados: DDNS, Wi-Fi (principal+guest), Static IP, Controle de DHCP, Firewall.

    tem algum destes serviços que posso remover para ganhar espaço?
    Package name Version
    Remove base-files 173-r3435-65eec8bd5f
    Remove busybox 1.25.1-4
    Remove ddns-scripts 2.7.6-13
    Remove dnsmasq 2.77-1
    Remove dropbear 2017.75-1
    Remove firewall 2017-05-27-a4d98aea-1
    Remove fstools 2016-12-04-84b530a7-2
    Remove fwtool 1
    Remove hostapd-common 2016-12-19-ad02e79d-3
    Remove ip6tables 1.4.21-2
    Remove iptables 1.4.21-2
    Remove iw 4.9-1
    Remove iwinfo 2016-09-21-fd9e17be-1
    Remove jshn 2017-02-24-96305a3c-1
    Remove jsonfilter 2016-07-02-dea067ad-1
    Remove kernel 4.4.71-1-840c23c3f9dc..94d
    Remove kmod-ath 4.4.71+2017-01-31-2
    Remove kmod-ath9k 4.4.71+2017-01-31-2
    Remove kmod-ath9k-common 4.4.71+2017-01-31-2
    Remove kmod-cfg80211 4.4.71+2017-01-31-2
    Remove kmod-gpio-button-hotplug 4.4.71-2
    Remove kmod-ip6tables 4.4.71-1
    Remove kmod-ipt-conntrack 4.4.71-1
    Remove kmod-ipt-core 4.4.71-1
    Remove kmod-ipt-nat 4.4.71-1
    Remove kmod-lib-crc-ccitt 4.4.71-1
    Remove kmod-mac80211 4.4.71+2017-01-31-2
    Remove kmod-nf-conntrack 4.4.71-1
    Remove kmod-nf-conntrack6 4.4.71-1
    Remove kmod-nf-ipt 4.4.71-1
    Remove kmod-nf-ipt6 4.4.71-1
    Remove kmod-nf-nat 4.4.71-1
    Remove kmod-ppp 4.4.71-1
    Remove kmod-pppoe 4.4.71-1
    Remove kmod-pppox 4.4.71-1
    Remove kmod-slhc 4.4.71-1
    Remove lede-keyring 2017-01-20-a50b7529-1
    Remove libblobmsg-json 2017-02-24-96305a3c-1
    Remove libc 1.1.16-1
    Remove libgcc 5.4.0-1
    Remove libip4tc 1.4.21-2
    Remove libip6tc 1.4.21-2
    Remove libiwinfo 2016-09-21-fd9e17be-1
    Remove libiwinfo-lua 2016-09-21-fd9e17be-1
    Remove libjson-c 0.12.1-1
    Remove libjson-script 2017-02-24-96305a3c-1
    Remove liblua 5.1.5-1
    Remove libnl-tiny 0.1-5
    Remove libpthread 1.1.16-1
    Remove libubox 2017-02-24-96305a3c-1
    Remove libubus 2017-02-18-34c6e818-1
    Remove libubus-lua 2017-02-18-34c6e818-1
    Remove libuci 2016-07-04-e1bf4356-1
    Remove libuci-lua 2016-07-04-e1bf4356-1
    Remove libuclient 2016-12-09-52d955fd-1
    Remove libxtables 1.4.21-2
    Remove logd 2017-03-10-16f7e161-1
    Remove lua 5.1.5-1
    Remove luci git-17.152.82987-7f6fc16-1
    Remove luci-app-ddns 2.4.8-2
    Remove luci-app-firewall git-17.152.82987-7f6fc16-1
    Remove luci-base git-17.152.82987-7f6fc16-1
    Remove luci-lib-ip git-17.152.82987-7f6fc16-1
    Remove luci-lib-jsonc git-17.152.82987-7f6fc16-1
    Remove luci-lib-nixio git-17.152.82987-7f6fc16-1
    Remove luci-mod-admin-full git-17.152.82987-7f6fc16-1
    Remove luci-proto-ipv6 git-17.152.82987-7f6fc16-1
    Remove luci-proto-ppp git-17.152.82987-7f6fc16-1
    Remove luci-theme-bootstrap git-17.152.82987-7f6fc16-1
    Remove mtd 21
    Remove netifd 2017-01-25-650758b1-1
    Remove odhcp6c 2017-01-30-c13b6a05-1
    Remove odhcpd 2017-04-28-9268ca65-1
    Remove opkg 2017-03-23-1d0263bb-1
    Remove ppp 2.4.7-11
    Remove ppp-mod-pppoe 2.4.7-11
    Remove procd 2017-02-15-5f912410-1
    Remove rpcd 2016-12-03-0577cfc1-1
    Remove swconfig 11
    Remove uboot-envtools 2015.10-1
    Remove ubox 2017-03-10-16f7e161-1
    Remove ubus 2017-02-18-34c6e818-1
    Remove ubusd 2017-02-18-34c6e818-1
    Remove uci 2016-07-04-e1bf4356-1
    Remove uclient-fetch 2016-12-09-52d955fd-1
    Remove uhttpd 2016-10-25-1628fa4b-1
    Remove uhttpd-mod-ubus 2016-10-25-1628fa4b-1
    Remove usign 2015-07-04-ef641914-1
    Remove wpad-mini 2016-12-19-ad02e79d-3

    ResponderExcluir
    Respostas
    1. obs.. não sei manipular sem o Luci-app

      Excluir
    2. Os pacotes relacionados a ppp (se seu provedor entregar IP pelo DHCP).
      Fora isso, não tem muito mais que remover. Teria o Luci, mas você adiantou que ele é fundamental.

      Só lembrando que a remoção do pacote deve ser feito na firmware antes de gravar usando o ImageBuilder. Não adianta nada remover o pacote depois de instalado pois ele não irá liberar espaço. Aproveitando, adicione também os pacotes extra com o ImageBuilder pois a compressão de tudo junto é melhor.

      Excluir
  8. Ótimo blog, Luiz! Tenho tido dificuldade em encontrar roteadores mais acessíveis que sejam compatíveis com o LEDE. Não queria gastar mais de 400 reais no equipamento. O que vocês recomendam?

    ResponderExcluir
    Respostas
    1. Qualquer um de https://lede-project.org/toh/views/toh_available_864

      Só observe (ou mesmo confirme) a versão do hardware antes de comprar. Faz toda a diferença. Ex: TP-link WR841N v13 é outro equipamento, com outra arquitetura, tamanho de flash e memória. Para meus usos, a USB também é fundamental, mas meu caso não é exemplo.

      Acho que todos os modelos de roteadores que eu já testei estão agora fora do mercado. Eu ficaria feliz em avaliar novos modelos de roteador e postar os resultados. Porém, não é algo que vale a pena eu bancar por conta.

      Excluir
    2. Pegando como exemplo o Archer C9. Não tem link para fórum LEDE e no link do Openwrt diz que não está 100% funcional (sem WiFi!). Alguém confirma que ele está 100% funcional com o LEDE?

      Excluir
    3. Vejo várias postagens de falta de suporte ao WiFi e queda de desempenho na transferência de dados relacionados ao LEDE em TP-Link. Porém TP-Link domina o mercado e é até difícil encontrar outras marcas. Por isso queria recomendações do que o pessoal do fórum tem comprado e que nível de suporte LEDE oferece.

      Excluir
    4. Sim, c9 não tem wifi mesmo. https://forum.lede-project.org/t/tp-link-archer-c9-ac1900/3362
      Pode ter mudado agora mas desconheço.

      Broadcom é problemática no Linux desde sempre. Melhorou muito, com vários modelos funcionando 100%, mas atheros ainda funciona melhor.

      Quanto a desempenho, normalmente é o contrário. Geralmente é melhor. O que ele não tem é aceleração da Nat por hardware. Isso só será importante se usar NAT em uma internet de alta velocidade. Os mips de 400mhz normalmente aguentam 200mbps. Se sua internet é mais do que isso, compre um roteador melhor (ela merece). O c9, por exemplo, parece que tem dois core 1Ghz ARM. Acho que esse aguenta várias centenas de Mbps. Lembre-se: é NAT, não interfere a taxa de transferência dentro da LAN ou internet via ipv6.

      Excluir
    5. Obrigado pelo retorno, Luiz. Essa é a questão que busco resposta, quais roteadores da Toh, de médio custo, você ou os demais leitores usam e recomendam, e que estejam à venda no mercado brasileiro? Abraços!

      Excluir
    6. É uma pergunta recorrente que, infelizmente, não consigo responder de forma satisfatória.

      Minhas últimas compras foram anos atrás, um lote grande de tp-link tl-wdr4300 v1 (descontinuado em 2015). Tenho até um tl-wr740n v1 (de 2009, já é quase adolescente) que teima em não estragar.

      Sem testar o equipamento, não tenho como recomendar. https://lede-project.org/toh/views/toh_available_864 é o começo, pois já filtra os com, no mínimo, 8MB de RAM e 64MB de flash. Meus usos "não roteador" exigem também uma USB. O mais importante: sempre leia as wiki, tanto do OpenWrt como do LEDE e busque nos fóruns por casos de sucesso antes de apertar o "confirmar o pagamento".

      Seria legal montar um "mural da fama" com roteadores atuais testados, inclusive com link para buscape/bondfaro. Só não é vantagem eu bancar a compra de roteadores para teste.

      Excluir
  9. Olá Luiz,

    Estou querendo Personalizar o firmware OWRT, pesquisei muito mas não entendi direito como fazer isso, o que quero fazer é:
    Nos valores Default do wifi ter estas configurações:

    1- lan= ip:192.168.2.2, Masc:255.255.255.0, gtw:192.168.1.1, dns:192.168.1.1
    2- DHCP= desativado
    3- WiFI= ligado
    4- SSID= CGTXXX (XXX= 3 primeiros dígitos do Mac)
    5- Criptografia= wpa+psk aes
    6- Criptografia= xxxxxxxxxx (mesmo Mac do dispositivo)
    7- Password= Personalizado
    8- Wan, Lan, Wifi todo em bridge

    Basicamente é isso. Técnico não tem necessidade de acessar as configurações e simplesmente trocando o firmware original já esta configurado e pronto.

    ResponderExcluir
    Respostas
    1. Tranquilo Douglas.

      Configurar o roteador já na firmware é o caso mais comum de personalização. Tem até exemplo pronto.
      https://lede-project.org/docs/user-guide/imagebuilder#files_variable

      Neste, ele copia as configurações de um roteador existente para o diretório files e cria uma nova imagem.
      Isso funciona bem quando são valores fixos. Você quer dinâmico, em função do mac.

      No LEDE/Openwrt, existe um diretório /etc/uci-defaults com scripts que rodarão uma vez quando o roteador ligar. Se retornarem sem erro, eles serão apagados. Isso funciona bem para fazer novas configurações. Caso o roteador seja zerado, o script volta a vida e executa novamente.

      Você pode ver os scripts do seu roteador abaixo de /rom (ex: /rom/etc/uci-defaults). Não deve ter nada em /etc/uci-defaults/ pois já foram apagados.

      Seu script pode até simplesmente editar os arquivos em /etc/config, mas o mais correto seria
      usar o comando uci. Recomendo um 'set -e' no começo para abortar tudo se um comando falhar. Ex:

      #! /bin/sh
      set -e
      uci set network.lan.ipaddr='192.168.2.2'
      uci set ....
      uci commit

      De resto, é o bom e velho shell script. Só cuida para não usar coisas específicas do bash (bashismo).

      Insira isso em /etc/uci-defaults/99-meuscript que vai funcionar. Teste antes rodando manualmente em um roteador zerado para evitar ficar regravando a firmware toda hora.

      Por fim, construir uma firmware com o imagebuilder, inserindo seu script no local.

      Excluir
  10. Estou passando para deixar uma dúvida e um elogio :
    Elogio : com a ajuda do seu blog e dessa postagem , estou indicando a leitura a muito colega , com isso , quero dizer , parabéns, é de muita utilidade o seu blog , inclusive para propagação das novidades sobre o projeto LEDE!
    Dúvida : caso tenha tempo e a quem questionar , tentei usar o asterisk e junto desse o modulo para o luci (luci-app-asterisk) , mas todas as alterações , não parecem refletir no asterisk , somente por arquivos de texto estou conseguindo , caso tenha alguma dica sobre o modulo para o luci (luci-app-asterisk) seria de muita utilidade pra mim .

    ResponderExcluir
    Respostas
    1. Carlos, obrigado pelo elogio. Essa é a ideia do blog.

      Quanto ao asterisk: Nunca configurei o asterisk, mas vou responder de forma genérica para tentar te ajudar a identificar o problema. As configurações do Luci normalmente alteram as configurações do UCI, que são guardadas em /etc/config/. Deve ter algo como /etc/config/asterisk no seu caso. Esse arquivo é lido pelo script de inicialização (/etc/init.d/asterisk?), que gerará uma configuração temporária (em /var/tmp ou algo assim) ou passada por linha de comando na chamada do asterisk.

      Então, ao alterar algo no Luci e clicar em "aplicar" (importante!), ele deve alterar /etc/config/asterisk. As boas implementações iriam reiniciar o serviço afetado, mas pode ser esse seu problema. Tente reiniciar na mão.
      Veja na configuração ou na chamada do asterisk (use o comando ps), onde o arquivo de configuração temporário é inserido.
      Se for na configuração do asterisk, veja se você não apagou acidentalmente essa entrada.
      Tente também disparar o asterisk com:

      sh -x /etc/init.d/asterisk start (ou equivalente)

      para entender o que ele está fazendo.

      Por fim, instale o asterisk e o módulo do luci em uma instalação limpa e configure apenas pela interface para ver se funciona. Uma sugestão é rodar em uma máquina virtual. O LEDE roda muito bem em um virtualbox, vmware (ou qualquer outro).

      Excluir
  11. Este comentário foi removido pelo autor.

    ResponderExcluir
  12. Amigo o meu apresentou o seguinte erro:

    Package libubus version 2017-02-18-34c6e818-1 has no valid architecture, ignoring.
    Installing luci-app-wshaper (git-18.118.20919-cfba791-1) to root...
    Downloading http://downloads.lede-project.org/releases/17.01.4/packages/mips_24kc/luci/luci-app-wshaper_git-18.118.20919-cfba791-1_all.ipk

    Collected errors:
    * parse_from_stream_nomalloc: Missing new line character at end of file!
    * satisfy_dependencies_for: Cannot satisfy the following dependencies for luci-app-wshaper:
    * kernel (= 4.4.92-1-45d282495a15974d60f8edb091d0e2a9) *
    * opkg_install_cmd: Cannot install package luci-app-wshaper.

    O que fazer? Me ajude por favor!

    ResponderExcluir
    Respostas
    1. Parece erro de download. Se ainda ocorrer, você pode tentar baixar manualmente o arquivo (wget -O /tmp/luci-app-wshaper_git-18.118.20919-cfba791-1_all.ipk http://downloads.lede-project.org/releases/17.01.4/packages/mips_24kc/luci/luci-app-wshaper_git-18.118.20919-cfba791-1_all.ipk) e instalar com "opkg install /tmp/luci-app-wshaper_git-18.118.20919-cfba791-1_all.ipk"

      Excluir
  13. Ola Luiz,

    estou tentando instalar o OpenWRT em um TL-WR840N v4, https://openwrt.org/toh/hwdata/tp-link/tp-link_tl-wr840n_v4, porem o roteador me retorna erro, lendo seu artigo, percebi que só tenho a opção de download sysupgrade, mas como quero trocar o firmware original preciso de um factory, como posso proceder nesse caso, é possivel instalar de alguma forma?

    Obrigado.

    ResponderExcluir
    Respostas
    1. Pelo que eu li, esse roteador só aceita pela web firmware assinada digitalmente pela TP-Link. Obviamente, não será uma firmware do OpenWrt. A instrução é instalar pelo TFTP com essa firmware http://downloads.openwrt.org/releases/18.06.1/targets/ramips/mt76x8/openwrt-18.06.1-ramips-mt76x8-tl-wr840n-v4-squashfs-tftp-recovery.bin:

      Flash instruction:

      Until (if at all) TP-Link fixes described problem, the only way to flash
      LEDE image in these devices is to use tftp recovery mode in U-Boot:

      1. Configure PC with static IP 192.168.0.66/24 and tftp server.
      2. Rename "lede-ramips-mt7628-tl-wr84...-squashfs-tftp-recovery.bin"
      to "tp_recovery.bin" and place it in tftp server directory.
      3. Connect PC with one of LAN ports, press the reset button, power up
      the router and keep button pressed for around 6-7 seconds, until
      device starts downloading the file.
      4. Router will download file from server, write it to flash and reboot.

      https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=24043a0d2e01b9843c0dc529205b3b0bc7ecbbf9

      Excluir