Liberte ainda mais potência do seu roteador doméstico com o DD-WRT Mod-Kit

Sep 15, 2025
Hardware
CONTEÚDO NÃO CHEGADO


Já mostramos como modificar seu roteador doméstico com o firmware alternativo DD-WRT para um desempenho bastante aprimorado e hoje vamos mostrar como levá-lo ainda mais longe com o Mod-Kit DD-WRT.

Se você ainda não fez isso, verifique os dois artigos anteriores da série:

Supondo que você esteja familiarizado com esses tópicos, continue lendo. Lembre-se de que este guia é um pouco mais técnico e os iniciantes devem ter cuidado ao fazer modificações em seus roteadores.

Visão geral

Este guia fornecerá um resumo passo a passo de como criar seu próprio firmware DD-WRT com modificações e adições usando o “ kit de modificação de firmware “.

O kit de modificação de firmware permite fazer modificações no firmware sem compilá-lo da fonte. Fazer alterações desta forma, com a ajuda dos scripts fornecidos, torna-se uma simples questão de baixar, substituir e excluir alguns arquivos.

A razão mais predominante para usar este método é porque ultimamente o suporte DD-WRT para Openwrt Os pacotes IPKG mudaram para roteadores que possuem discos rígidos (via USB), o que torna o mod-kit a única maneira consistente de instalar os pacotes IPKG com sucesso para casos onde um HD não está disponível. Além disso, esse método tem a vantagem adicional de liberar você da dependência JFFS para instalação de pacotes, o que para roteadores com apenas 4 MB de flash é um problema real.

Foto por publicenergy

Metas

Embora as instruções para este procedimento, sejam detalhadas em Wiki DD-WRT e no site do desenvolvedor , pretendemos tornar este guia um procedimento de copiar e colar que qualquer pessoa pode usar para atingir os seguintes objetivos:

  • Instale o pacote knockd e suas dependências.
  • Instale o pacote ssmtp com configurações geradas com base em NVRAM.
    • Opcionalmente, com suporte para TLS smtp (também conhecido como suporte do Gmail).

Uma vez que você tenha seguido este procedimento, deve ser simples adaptá-lo para outras instalações de pacotes.

Atenção : Pise com cuidado ... tenha em mente que o uso incorreto do kit de modificação pode deixá-lo com um roteador que precisa de-brick-ing (como por sua vez em um tijolo inútil ) No entanto, se você é um verdadeiro geek, provavelmente concorda com a ideologia de que, aquele que pode destruir algo, controla algo , e apenas verdadeiros geeks fazem isso

Pré-requisitos

  1. Usando este procedimento pode tijolo seu roteador, como em fazer seu roteador inutilizável, não nos responsabilizamos por quaisquer danos que possam ser causados ​​diretamente ou de outra forma devido ao uso dos procedimentos abaixo.
  2. Este procedimento foi realizado em sistemas baseados em Debian (Lenny, Squeeze e Mint) e as instruções abaixo assumem que você também está usando um.
  3. Este procedimento só é recomendado para pessoas com experiência em atualizar seu roteador com DD-WRT, com todos os pré-requisitos, advertências e limitações que se aplicam à configuração de seu hardware. um bom lugar para começar seria nosso Transforme seu roteador doméstico em um roteador com superpotência com DD-WRT guia.
  4. Seu roteador deve suportar pelo menos a versão “mini” do DD-WRT.
  5. Este procedimento foi criado e testado em roteadores Linksys WRT54GS / L, se você estiver usando roteadores de outros fornecedores, sua milhagem pode variar.

Configuração

Instalando os pacotes necessários

O kit de modificação de firmware possui algumas dependências para compilar e funcionar. Para instalar / atualizar todos de uma vez, execute este comando em um terminal:

sudo aptitude install gcc g ++ binutils patch bzip2 flex bison make gettext unzip zlib1g-dev libc6 subversion

Baixe o mod-kit

Crie uma subpasta e obtenha o kit do SVN oficial:

mkdir firmware_mod_kit
cd firmware_mod_kit
svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-read-only
cd firmware-mod-kit-read-only / trunk /

Baixe um firmware para trabalhar

A primeira coisa a considerar é qual versão você deseja usar?
A regra é: em caso de dúvida, use “mini”. Isso ocorre porque, contanto que seu roteador suporte pelo menos a versão “mini”, usá-lo fornece todos os recursos mais comumente usados ​​sem nenhum bloatware. deixando espaço para os procedimentos e até mesmo algum espaço JFFS para outros usos na maioria dos casos.

Depois de decidir sobre uma versão, é recomendado usar a revisão mais recente do firmware disponível, pois eles tendem a ter muitas correções de bugs em comparação com suas contrapartes "estáveis".
No momento em que este artigo foi escrito, o mais recente era “03-17-11-r16454” e esta revisão é usada nos comandos a seguir.

wget http://www.dd-wrt.com/dd-wrtv2/downloads/others/eko/BrainSlayer-V24-preSP2/2011/03-17-11-r16454/broadcom/dd-wrt.v24_mini_generic.bin

Para facilitar o controle da versão que estamos usando, renomeie o arquivo baixado para representar o número da versão:

mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin

Obviamente, isso é opcional, mas os comandos a seguir presumem que você renomeou o arquivo.

Extraindo o firmware

Para poder alterar os arquivos dentro do firmware, precisamos extrair seu conteúdo em um diretório temporário.
A sintaxe deste comando é:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
Em nosso caso, isso se traduziria em:

./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin ./working_dir_mini1

Nota: A primeira vez que você executa este comando, ele cria as ferramentas do mod-kit em seu sistema. isso acontece apenas uma vez e pode demorar um pouco ... então seja paciente ...

Instalando pacotes

Agora que o firmware foi extraído, podemos instalar os pacotes nele.
Em geral, o procedimento é baixar o pacote e suas dependências na forma de um arquivo ipk do repositório openWRT . Depois de baixado, instale-os no firmware extraído usando o script fornecido.

O pacote knockd

Instruções detalhadas sobre como configurar e usar o Knockd serão detalhadas em um artigo futuro, então você pode optar por pular esta etapa por enquanto ou fazer isso em uma preparação para o futuro, pois Knockd não ocupa muito espaço de qualquer maneira.

Knockd é um daemon que escuta eventos de comunicação na camada de enlace para sequências e, em seguida, age sobre eles.
O que isto significa é que você pode fazer com que o dispositivo rodando o daemon nem mesmo “escute” nas portas (uma varredura de porta não as verá como abertas) e ainda fazer algo que você precisa, a partir de um único comando todos os bem alto para um script completo. Usando esta técnica você pode acionar o servidor para realizar qualquer tipo de operação de que você precisa remotamente (através da Internet) sem expor sua rede doméstica.

Knockd tem apenas uma dependência listada, então baixe o pacote e sua dependência emitindo:

wget http://downloads.openwrt.org/backports/rc5/knockd_0.5-1_mipsel.ipk
wget http://downloads.openwrt.org/whiterussian/packages/libpcap_0.9.4-1_mipsel.ipk

Instale o ipk “knock daemon” (knockd) no firmware:

./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/

Instale o ipk de “captura de pacote” (libpcap) no firmware:

./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk ./working_dir_mini1/

Como “knockd” pode ser chamado com um arquivo de configuração alternativo (como será explicado em um artigo futuro), não há necessidade de realizar nenhuma outra operação e você pode pular para a seção de construção de firmware, se for tudo o que você deseja instalar.

O pacote SSMTP

O pacote SSMTP permite que seu roteador envie mensagens de e-mail exatamente como mostramos em nosso Como configurar alertas de e-mail no Linux usando Gmail ou SMTP para servidores. Prometemos a você naquela época que mostraremos como configurar isso para DD-WRT e agora entregaremos.
Isso é útil principalmente se você pretende criar scripts no roteador e deseja receber feedback sobre a operação por e-mail.

A configuração deste pacote é um pouco mais complexa do que em sistemas Linux normais por causa da limitação imposta por um sistema embarcado, então respire fundo ... pronto? ... vamos lá… :)

Baixe o pacote:

wget http://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk

Instale o ipk “ssmtp” no firmware:

./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk ./working_dir_mini1/

Suporte TLS (opcional)
SSMTP não lista quaisquer outros pacotes como suas dependências, no entanto, se você quiser ser capaz de usar um gateway smtp que requer autenticação TLS (ou seja, Gmail ), você também deve instalar o pacote openSSL.
Nota : Há um ENORME recua para fazer isso na forma de espaço consideravelmente reduzido no roteador para JFFS mais tarde. Ou seja, o pacote openSSL ocupa cerca de 500 K de espaço de seu total de 4 MB (para um roteador de suporte normal não "mega"), combinado com a sobrecarga JFFS e você descobrirá que sobrou, mas alguns preciosos, blocos de espaço JFFS livre (cerca de 60 KB em WRT54GL).

Como ainda existem servidores SMTP que não exigem TLS (geralmente o seu ISP), sugiro que reserve um minuto para pensar se você realmente precisa usar o gateway que exige TLS.

Se você decidiu ativar o suporte TLS apesar de sua desvantagem, baixe o pacote openSSL:

wget http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk

Instale o ipk “openSSL” (libopenssl) no firmware:

./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/

Configurações
Há uma limitação com o pacote SSMTP, que não é possível invocá-lo com um arquivo de configuração alternativo.
Como o firmware é somente leitura quando está no roteador, isso significa que, fora da caixa, só podemos codificar a configuração no firmware.
No entanto, e se não quisermos passar por todas as etapas de modificação do firmware, apenas para alterar as configurações de e-mail? (por exemplo, uma alteração de senha).

Para esse fim, tanto Jeremy (o criador do kit de mod de firmware) e eu chegamos à conclusão (independentemente, se posso humildemente acrescentar) que a única maneira sensata de fazer isso seria:

  1. Faça com que a localização dos arquivos de configuração para a qual o pacote ssmtp aponta para a localização somente leitura em etc, aponte para o diretório tmp que é gravável em tempo de execução.
  2. Crie um script que geraria dinamicamente as configurações baseadas em variáveis ​​NVRAM na inicialização.

Para conseguir isso, algumas etapas adicionais são necessárias ...

Link simbólico para o diretório de configuração ssmtp
Conforme explicado acima, precisamos fazer o / etc / ssmtp localização no roteador, aponte para o / tmp já que é o único local gravável que temos no roteador em tempo de execução. Para fazer isso, exclua o diretório ssmtp que foi criado pelo instalador ipk:

rm -rf ./working_dir_mini1/rootfs/etc/ssmtp/

Crie um novo link simbólico que aponte o / etc / ssmtp no sistema de arquivos raiz do roteador, para apontar para / tmp / etc / ssmtp como um caminho absoluto:

ln -s / tmp / etc / ssmtp / ./working_dir_mini1/rootfs/etc/ssmtp

Nota : Embora isso pareça ilógico agora, porque estamos apontando o diretório de configuração do pacote para um local fora do diretório de trabalho do kit de modificação de firmware, garanto que isso parece totalmente bom do ponto de vista dos roteadores em tempo de execução.

Um script de inicialização
Embora seja totalmente possível não injetar esse script no firmware e executá-lo como um script de inicialização mais tarde, acho apropriado colocá-lo aqui apenas como um exemplo para uso futuro.
Jeremy criou originalmente o script sob medida para a solicitação de alguém, mais tarde, eu ajustei e aumentei para ser mais compatível com DD-WRT e relatórios de syslog.

Crie o novo script init (inicialização):

vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp

Nota: Você pode usar outro editor, eu uso o vi porque é consistente com o que está disponível no roteador ...
Faça deste o seu conteúdo:

#! / bin / sh
#
# title: ssmtp_nvram.sh
# autor: Jeremy Collake e Aviad Raviv
# site: http://www.bitsum.com, http://howtogeek.com
#
# script para construir o arquivo de configuração de nvram vars.
# funcionará para qualquer arquivo de configuração que use
# var = pares de tipo de valor.
#
# usa prefixos para variáveis ​​nvram.
#
# i.e.
# ssmtp hostname = something
# se traduz em ssmtp.conf
# hostname = algo
#
logger_func ()
{
logger -s -p local0.notice -t SSMTP_init $ 1
}

logger_func "############ Iniciou a execução de inicialização SSMTP #############"
logger_func "Criando o diretório etc em / tmp"
[ ! -d /etc/ssmtp/ ] && mkdir -p / tmp / etc / ssmtp /
CONFIG_FILE = / etc / ssmtp / ssmtp.conf
NVRAM_PREFIX = ssmtp_
PACKAGE_NAME = ʻecho $ NVRAM_PREFIX | sed 's / _ / /' `

logger_func "Gerando $ CONFIG_FILE para o pacote $ PACKAGE_NAME"
#echo $ 0: gerando $ CONFIG_FILE para o pacote $ PACKAGE_NAME
echo "#! / bin / sh"> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
echo "# gerado automaticamente com base em nvram por $ 0" >> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE

se [ -z "`nvram show | grep ssmtp`" ]
então
logger_func "Parece que você não definiu as variáveis ​​NVRAM necessárias para gerar o arquivo conf"
logger_func "** Considere ** usar estes comandos em seu script de inicialização:"
logger_func "nvram set [email protected]"
logger_func "nvram set ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram set [email protected]"
logger_func "nvram set ssmtp_UseSTARTTLS = YES"
logger_func "nvram set ssmtp_AuthUser = username"
logger_func "nvram definir ssmtp_AuthPass = senha"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func "crie as variáveis ​​NVRAM e execute novamente o script de inicialização ou reinicie para que as configurações tenham efeito."
saída 0
estar

###########################################################
#
# loop principal
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = `nvram show | grep $ NVRAM_PREFIX | sed "$ SED_COMMAND" `
para i em $ CONFIG_VARS; Faz
echo $ i >> $ CONFIG_FILE
feito

###########################################################
#
# verificação de sanidade
#
se [ ! -f "$CONFIG_FILE" ]; então
# echo "$ 0: ERROR - não foi possível criar $ CONFIG_FILE. Talvez não haja link simbólico / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ERROR - não foi possível criar $ CONFIG_FILE. Talvez não haja link simbólico / etc / XXXX -> / tmp / etc / XXXX?"
estar
logger_func "############ Concluída a execução de inicialização SSMTP ############"

Torne-o executável:

chmod + x ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp

Anote as variáveis ​​de espera da NVRAM no script, é nossa responsabilidade fornecer a elas algo para trabalhar depois de instalarmos nosso firmware modificado no roteador.

Construa o Firmware modificado

Agora que tudo está pronto, é hora de reempacotar o firmware modificado em um binário compactado que possamos enviar ao roteador.
A sintaxe do script “build.sh” é:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

Para fazer isso, usamos o script fornecido, portanto, emita:

./build_firmware.sh output_mini1 ./working_dir_mini1/

Assim que a operação de “construção” for concluída, haverá várias imagens de firmware esperando para serem usadas no diretório de “saída”.

Agora você pode atualizar o arquivo chamado “custom_image_00001-generic.bin” para o seu roteador como você normalmente faria um firmware DD-WRT .

Nota : Não se esqueça de restaurar os "padrões de fábrica" ​​antes, durante e logo após o flash do firmware.

Passo a passo

Como fizemos o pacote SSMTP procurar variáveis ​​NVRAM para gerar o arquivo de configuração ssmtp, agora precisamos fornecê-lo com as informações ausentes.
Faremos isso usando a função “Executar comandos” da interface web.

Vá para a interface web -> “administração” -> “comandos” -> cole na caixa de texto o seguinte:

nvram set [email protected]
nvram set ssmtp_mailhub = smtp.gmail.com: 587
nvram set [email protected]
nvram set ssmtp_UseSTARTTLS = YES
nvram set ssmtp_AuthUser = your-gmail-user-name (sem o @ gmail.com)
nvram set ssmtp_AuthPass = sua-senha do gmail
nvram set ssmtp_FromLineOverride = YES
nvram commit

Substitua o texto após o sinal de igual (=), com suas informações reais, e clique em “Executar comandos”.
Nota : se estiver usando um servidor smtp regular, não usando TLS, a porta a ser usada é 25 em vez de 587.

Agora que as informações de SSMTP estão prontas para uso, você precisará invocar o script init. Portanto, você pode reiniciar o roteador ou colar na caixa de texto “comandos”:

/etc/init.d/S80ssmtp

Em seguida, clique em “Executar comandos” novamente.
A saída desse comando deve ser semelhante a:

Teste se você pode enviar e-mail
Cole novamente na caixa de texto “comandos” o seguinte comando com seu endereço de e-mail:

echo "testando cadinho por e-mail 123 qwe" | ssmtp -vvv [email protected]

Em seguida, clique em “Executar comandos” novamente.
Como usamos a opção -vvv para detalhamento extra, a saída desse comando deve ser semelhante a:

Se tudo correr bem, você receberá o e-mail de teste em segundos.

Esperamos que você possa usar essas informações para empurrar os limites de seu roteador doméstico ainda mais longe do que você pensou ser possível e agora controle verdadeiramente seu roteador doméstico e DD-WRT


O Linux estende a vida, o Linux expande a consciência ... Linux é vital para viagens de pacotes

How To Install Dd-wrt On A Linksys WRT54GL Router

How To Install DD-WRT On A Wireless Router - Techneek TV

DD-WRT Install (Supercharge) TP Link TL-WDR 4300 N750 Dual Band Router


Hardware - Artigos mais populares

O que é carregamento rápido e como funciona?

Hardware May 25, 2025

OnePlus A maioria dos principais lançamentos de telefones hoje em dia vem com velocidades de carregamento aprimoradas. Como funcionam os carregadores rápido..


Os melhores varejistas online de gadgets importados baratos

Hardware Nov 6, 2024

CONTEÚDO NÃO CHEGADO A menos que você leia regularmente as porções menos — ahem — mainstream dos sites de eletrônicos pessoais da web, você pode não estar muito famili..


As ferramentas básicas que todo DIYer deve possuir

Hardware Aug 29, 2025

CONTEÚDO NÃO CHEGADO Eles dizem que você nunca pode ter muitas ferramentas, mas todo mundo tem que começar de algum lugar. Se você está apenas entrando na cena DIY, aqui est..


Como conectar um teclado físico ao Xbox One

Hardware Jul 12, 2025

O Xbox One da Microsoft tem suporte limitado para alguns tipos de teclados físicos, mas não para mouses. Conecte um teclado e você pode usá-lo para digitar texto de forma mais c..


Como ouvir audiolivros no Amazon Echo

Hardware Jul 12, 2025

Se você gosta de ler, provavelmente também gosta de audiolivros, pois eles permitem que você “leia” um livro enquanto faz outras coisas. Veja como ouvir audiolivros no Amazon..


Como verificar se um disco usa GPT ou MBR e converter entre os dois

Hardware Jul 3, 2025

As versões modernas do Windows - e outros sistemas operacionais - podem usar qualquer um o Master Boot Record (MBR) mais antigo ou a GUID Partition Table (GPT) mais recente..


Da caixa de dicas: frete grátis com Amazon Filler, conserto de cabos Ethernet e adesivos de emergência

Hardware Mar 29, 2025

CONTEÚDO NÃO CHEGADO Uma vez por semana, reunimos algumas dicas excelentes da caixa de dicas e as compartilhamos com todos. Esta semana, estamos vendo itens de preenchimento fá..


Novo Xbox360 Hack funciona em todos os modelos 360

Hardware Feb 11, 2025

CONTEÚDO NÃO CHEGADO A execução de código não assinado no Xbox360 requer um pouco de know-how e um plano específico adaptado ao seu modelo / chipset em particular. Um h..


Categorias