Formulário de contato

Nome

E-mail *

Mensagem *

Imagem

Instalando Python3 no OpenWRT com módulos essenciais

Instalando Python3 no OpenWRT com módulos essenciais

Publicado por em


@CanalQb no YouTube


@CanalQb

Python3 no OpenWRT: Guia de Instalação Completo




ℹ️ Nota: Modificar o roteador via terminal pode causar instabilidade se feito sem cuidado. Teste primeiro em ambiente controlado e certifique-se de ter acesso de recuperação antes de instalar pacotes em massa.


Se você quer instalar Python3 no OpenWRT, a notícia boa é que o processo é direto e funciona bem — desde que você entenda algumas limitações do ambiente embarcado. Já rodei esse setup em roteadores com apenas 16 MB de flash e aprendi na prática que escolher os módulos certos faz toda a diferença entre um roteador rodando scripts Python e um tijolo que não inicializa mais.

O OpenWRT é um Linux compacto feito para hardware com recursos limitados: pouca RAM, pouco armazenamento e processadores ARM ou MIPS modestos. Isso significa que você não vai instalar tudo de uma vez como faria num Ubuntu — aqui cada megabyte conta. Este guia vai te mostrar exatamente quais pacotes instalar, em qual ordem, e como evitar os erros mais comuns que eu mesmo cometi nas primeiras tentativas.


Por que instalar Python3 no seu roteador OpenWRT?

Ter Python disponível no roteador abre uma porta enorme para automações que antes exigiriam um servidor separado. Estes são os seis motivos reais que me levaram a fazer isso:

Automação de rede local

Crie scripts que monitoram dispositivos conectados, bloqueiam IPs suspeitos ou reiniciam serviços automaticamente — direto no roteador, sem servidor externo.

Coleta e análise de dados de rede

Com python3-sqlite3, você consegue armazenar logs de tráfego localmente e consultar por horário, dispositivo ou protocolo — muito mais flexível que os logs nativos do OpenWRT.

Scripts com SSL/TLS nativos

O módulo python3-openssl permite criar scripts que se comunicam com APIs externas de forma segura, sem depender de ferramentas adicionais como curl.

Integração com UCI e LuCI

Python consegue executar comandos uci via subprocess e interagir com as configurações do roteador de forma programática — ótimo para automação de backups de config.

Servidor HTTP leve embutido

Com python3-asyncio e a stdlib, você consegue subir um servidor HTTP minimalista no roteador para dashboards internos ou webhooks — sem instalar nginx ou lighttpd.

Prototipagem rápida no hardware real

Testar scripts diretamente no roteador elimina surpresas de compatibilidade. O que roda no OpenWRT com Python3 vai funcionar igual — sem camadas de emulação no meio.


Como funciona a instalação

O gerenciador de pacotes do OpenWRT é o opkg — pense nele como o apt do Debian, mas para sistemas embarcados. O fluxo é simples e tem exatamente três etapas:

  1. Atualizar o índice de pacotes com opkg update O OpenWRT não mantém o índice localmente de forma permanente — ele é descartado ao reiniciar para economizar RAM. Por isso, sempre que ligar o roteador e quiser instalar algo, rode opkg update primeiro. Sem isso, o opkg vai tentar usar um índice vazio ou desatualizado e você vai levar erros de "pacote não encontrado".

  2. Instalar o Python3 base e os módulos necessários O pacote python3 instala o interpretador principal. Os módulos adicionais (asyncio, sqlite3, openssl etc.) são pacotes separados — o OpenWRT divide assim para economizar espaço em dispositivos que não precisam de tudo. Você instala só o que o seu projeto realmente usa.

  3. Verificar espaço e testar a instalação Antes de instalar tudo de uma vez, cheque o espaço disponível com df -h. Depois da instalação, confirme que está funcionando com python3 --version e um python3 -c "import asyncio; print('ok')" para validar os módulos.


Para quem é este tutorial

Devs que querem automatizar a rede

Se você já escreve scripts Python no PC e quer rodar automações direto no roteador sem depender de um Raspberry Pi, este guia é exatamente o que você precisa.

Entusiastas de home lab

Quem mantém um ambiente de testes em casa e quer aproveitar o hardware do roteador como mais um nó de processamento leve.

Administradores de redes pequenas

Profissionais que gerenciam redes de escritórios ou filiais e querem scripts de monitoramento rodando direto no equipamento de borda, sem servidor dedicado.

Quem está aprendendo Linux embarcado

Estudantes e curiosos que usam o OpenWRT como laboratório prático para aprender sobre sistemas Linux em hardware real com recursos limitados.


Tutorial passo a passo: instalando Python3 no OpenWRT

Passo 1 — Acesse o roteador via SSH

Antes de qualquer coisa, conecte no roteador pelo terminal. O IP padrão do OpenWRT é 192.168.1.1, mas pode variar conforme sua configuração:

ssh root@192.168.1.1

Se for o primeiro acesso, o OpenWRT vai pedir para definir uma senha. Faça isso antes de tentar instalar qualquer pacote.

Passo 2 — Verifique o espaço disponível

Este é o passo que mais gente pula e se arrepende depois. O Python3 com módulos básicos ocupa entre 8 MB e 15 MB dependendo da versão. Verifique antes:

df -h
⚠️ Atenção: Se o /overlay tiver menos de 20 MB livres, considere usar um pendrive via extroot antes de continuar, ou instale apenas os módulos essenciais para o seu projeto.

Passo 3 — Atualize o índice de pacotes

Obrigatório sempre que reiniciar o roteador. O índice é armazenado na RAM e não persiste:

opkg update
💡 Se você receber o erro "Failed to send request", verifique se o roteador tem acesso à internet. Sem conexão WAN ativa, o opkg não consegue baixar o índice.

Passo 4 — Instale o Python3

opkg install python3

Este comando instala o interpretador base. A versão exata depende do feed do OpenWRT para a sua release — o OpenWRT 23.05, por exemplo, já inclui Python 3.11. Após a instalação, confirme:

python3 --version

Passo 5 — Instale os módulos essenciais

Cada módulo é instalado individualmente com opkg install nome-do-modulo. Abaixo estão os módulos recomendados com uma explicação real do que cada um faz:

📦 libc
🐍 python3-light
⚡ python3-asyncio
🔤 python3-codecs
🔗 python3-ctypes
🗄️ python3-dbm
🔢 python3-decimal
📦 python3-distutils
📧 python3-email
🗃️ python3-gdbm
📝 python3-logging
🗜️ python3-lzma
⚙️ python3-multiprocessing
🖥️ python3-ncurses
🔐 python3-openssl
📚 python3-pydoc
🗄️ python3-sqlite3
🧪 python3-unittest
🌐 python3-xml

Para instalar um módulo específico, o comando é sempre o mesmo padrão:

opkg install python3-asyncio

Se quiser instalar todos de uma vez, você pode encadear em uma única linha — mas atenção ao espaço em disco antes de fazer isso:

opkg install python3-asyncio python3-logging python3-openssl python3-sqlite3 python3-xml python3-email python3-codecs

Passo 6 — Validando a instalação dos módulos

Após instalar, sempre teste os módulos críticos para garantir que não houve erro silencioso durante o download. Abra o interpretador e importe:

python3 -c "import asyncio, ssl, sqlite3, logging; print('Todos os módulos OK')"
✅ Se a mensagem "Todos os módulos OK" aparecer sem erros, sua instalação está completa e funcional.

O que cada módulo realmente faz

python3-asyncio — essencial para qualquer script que faça múltiplas operações de rede simultaneamente sem travar. Se você vai monitorar vários hosts ou fazer requests HTTP assíncronos, precisa deste módulo.

python3-openssl — permite conexões SSL/TLS direto do Python. Necessário para qualquer script que consuma APIs HTTPS ou que precise de criptografia. Sem ele, o módulo nativo ssl pode não funcionar completamente no OpenWRT.

python3-sqlite3 — banco de dados embutido sem servidor. Perfeito para armazenar logs de rede, listas de dispositivos ou qualquer dado estruturado diretamente no roteador.

python3-logging — o sistema de logs do Python. Sempre incluo em scripts de produção porque facilita muito o debug de problemas que só acontecem de madrugada quando ninguém está olhando.

python3-xml — se você vai consumir APIs REST que retornam XML (ainda existem muitas) ou processar arquivos de configuração em XML, este módulo é indispensável.

python3-multiprocessing — cuidado com este em hardware embarcado. Criar processos paralelos num roteador com 128 MB de RAM é arriscado. Use asyncio em vez disso sempre que possível — você economiza memória e evita instabilidades.

Erros comuns e como resolver

Erro: "Collected errors: satisfy_dependencies_for: Cannot satisfy the following dependencies..."
Solução: rode opkg update novamente. O índice pode ter expirado ou a conexão caiu durante o download.
Erro: "Not enough space in /overlay"
Solução: libere espaço removendo pacotes não usados com opkg remove nome-do-pacote ou configure extroot com um pendrive USB para ampliar o armazenamento.
💡 Dica de versão: Nem todo módulo está disponível em todas as builds do OpenWRT. Se um módulo não aparecer no opkg update, pode ser que o repositório da sua versão não o inclua. Acesse o buscador oficial em openwrt.org/packages para verificar disponibilidade por arquitetura e versão de firmware.

Recursos e documentação oficial

Para ir além deste tutorial, estas são as fontes que uso no dia a dia para consultar compatibilidade de pacotes, changelogs e configurações avançadas:

🌐 Site oficial OpenWRT openwrt.org

Documentação completa, guias de instalação por hardware e wiki técnico.

📦 Busca de pacotes OpenWRT openwrt.org/packages/pkgdata/python3

Verifique versão disponível, dependências e arquiteturas suportadas.

🐍 Documentação Python3 docs.python.org/3

Referência completa de módulos, sintaxe e APIs da stdlib.

💬 Fórum OpenWRT forum.openwrt.org

Comunidade ativa com threads específicas sobre Python e scripts no OpenWRT.


▶ Assista ao vídeo completo 🐍 Mais tutoriais de Python

ℹ️ Nota Técnica: Os scripts e comandos fornecidos neste post são para fins educacionais. Sempre teste em ambiente controlado antes de aplicar em produção. O autor não se responsabiliza por instabilidades, perda de configuração ou danos causados por uso indevido das instruções aqui descritas.


#OpenWRT #Python3 #Linux #Automação #Roteador

✅ Inscreva-se no @CanalQb

Marcadores: Banco de Dados Blogger Cripto IA OpenWrt Python Script Sistemas Tutorial

© abril 17, 2023 CanalQb — Python, Scripts, Automação, Airdrops e Criptomoedas | Web3 e Tech na Prática

Comentários