Libérez encore plus de puissance de votre routeur domestique avec le Mod-Kit DD-WRT

Sep 15, 2025
Matériel
CONTENU NON CACHÉ


Nous vous avons déjà montré comment modifier votre routeur domestique avec le micrologiciel alternatif DD-WRT pour des performances considérablement améliorées, et aujourd'hui, nous allons vous montrer comment aller encore plus loin avec le Mod-Kit DD-WRT.

Si vous ne l'avez pas déjà fait, assurez-vous de consulter les deux articles précédents de la série:

En supposant que vous connaissez ces sujets, continuez à lire. Gardez à l'esprit que ce guide est un peu plus technique et que les débutants doivent être prudents lorsqu'ils modifient leur routeur.

Aperçu

Ce guide vous expliquera étape par étape comment créer votre propre micrologiciel DD-WRT avec des modifications et des ajouts en utilisant le " firmware modification kit “.

Le kit de modification du firmware permet d'apporter des modifications au firmware sans le compiler à partir de la source. Faire des changements de cette manière, à l'aide des scripts fournis, devient une simple question de téléchargement, de remplacement et de suppression de certains fichiers.

La principale raison d'utiliser cette méthode est que, dernièrement, DD-WRT prend en charge le Openwrt Les packages IPKG se sont déplacés vers des routeurs dotés de disques durs (via USB), ce qui fait du mod-kit le seul moyen efficace d'installer les packages IPKG avec succès dans les cas où un HD n'est pas disponible. De plus, cette méthode a l'avantage supplémentaire de vous soulager de la dépendance JFFS pour l'installation des packages, ce qui pour les routeurs avec seulement 4 Mo de mémoire flash est un réel problème.

Photo de publicenergy

Buts

Alors que les instructions pour cette procédure, sont détaillées sur Wiki DD-WRT et sur le developer’s site , nous visons à faire de ce guide une procédure de copier-coller que tout le monde peut utiliser pour atteindre les objectifs suivants:

  • Installez le package knockd et ses dépendances.
  • Installez le package ssmtp avec les configurations générées basées sur la NVRAM.
    • En option avec le support de TLS smtp (a.k.a. support Gmail)

Une fois que vous avez suivi cette procédure, il devrait être très simple de l'adapter à d'autres installations de paquets.

avertissement : Marchez légèrement… gardez à l'esprit qu'une utilisation incorrecte du kit de modification peut vous laisser avec un routeur qui a besoin démêlage (comme à son tour en un brique inutile ). Cependant, si vous êtes un vrai geek, vous souscrivez probablement à l'idéologie qui, celui qui peut détruire une chose, contrôle une chose , et seuls les vrais geeks font ça

Conditions préalables

  1. L'utilisation de cette procédure peut brique votre routeur, comme dans make your router inutilisable, nous n'assumons aucune responsabilité pour les dommages qui pourraient être causés directement ou d'une autre manière en raison de l'utilisation des procédures ci-dessous.
  2. Cette procédure a été effectuée sur des systèmes basés sur Debian (Lenny, Squeeze et Mint) et les instructions ci-dessous supposent que vous en utilisez également un.
  3. Cette procédure n'est recommandée que pour les personnes qui ont de l'expérience avec le flashage de leur routeur avec DD-WRT, avec toutes les conditions préalables, mises en garde et limitations qui s'appliquent à leur configuration matérielle. un bon point de départ serait notre Transformez votre routeur domestique en un routeur super-alimenté avec DD-WRT guide.
  4. Votre routeur doit prendre en charge au moins la version «mini» de DD-WRT.
  5. Cette procédure a été créée et testée sur les routeurs Linksys WRT54GS / L, si vous utilisez des routeurs d'autres fournisseurs, votre kilométrage peut être très élevé.

Installer

Installation des packages requis

Le kit de modification du firmware a quelques dépendances pour qu'il se compile et fonctionne. Afin de les installer / mettre à jour tous à la fois, lancez cette commande dans un terminal:

sudo aptitude installer gcc g ++ binutils patch bzip2 flex bison faire gettext décompresser zlib1g-dev libc6 subversion

Téléchargez le mod-kit

Créez un sous-dossier et récupérez le kit auprès du SVN officiel:

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 /

Téléchargez un firmware sur lequel travailler

La première chose à considérer est la version que vous souhaitez utiliser?
Une règle d'or est: en cas de doute, utilisez «mini». En effet, tant que votre routeur prend en charge au moins la version «mini», son utilisation vous donne toutes les fonctionnalités les plus couramment utilisées sans aucun bloatware. laissant ainsi à la fois un espace pour les procédures et même un espace JFFS pour autres usages dans la plupart des cas.

Une fois que vous avez choisi une version, il est recommandé d'utiliser la dernière révision du micrologiciel disponible, car ils ont tendance à avoir beaucoup de corrections de bogues par rapport à leurs homologues «stables».
Au moment d'écrire ces lignes, la dernière version était «03-17-11-r16454» et cette révision est utilisée dans les commandes qui suivent.

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

Afin de faciliter le suivi de la version que nous utilisons, renommez le fichier téléchargé pour représenter son numéro de version:

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

Ceci est bien sûr facultatif, mais les commandes ci-dessous supposent que vous avez renommé le fichier.

Extraction du firmware

Afin de pouvoir modifier les fichiers dans le firmware, nous devons extraire son contenu dans un répertoire temporaire.
La syntaxe de cette commande est:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
Dans notre cas, cela se traduirait par:

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

Remarque: la première fois que vous exécutez cette commande, elle crée les outils de mod-kit sur votre système. cela n'arrive qu'une seule fois et peut prendre un peu de temps… alors soyez patient…

Installer des packages

Maintenant que le firmware est extrait, nous pouvons y installer les packages.
En général, la procédure consiste à télécharger le package et ses dépendances sous la forme d'un fichier ipk à partir du référentiel openWRT . Une fois téléchargés, installez-les dans le micrologiciel extrait à l'aide du script fourni.

Le paquet knockd

Des instructions détaillées sur la configuration et l'utilisation de Knockd seront détaillées dans un prochain article, vous pouvez donc choisir d'ignorer cette étape pour le moment ou de la faire en prévision de l'avenir, car Knockd ne prend pas beaucoup de place de toute façon.

Knockd est un démon qui écoute les événements de communication au niveau de la couche liaison pour les séquences puis agit sur eux.
Ce que cela signifie, c'est que vous pouvez faire en sorte que le périphérique exécutant le démon ne «écoute» même pas sur les ports (une analyse de port ne les verra pas comme ouverts) et le faire faire quelque chose dont vous avez besoin, à partir d'une seule commande en haut à un script complet. Utiliser cette technique vous pouvez déclencher le serveur pour qu'il exécute toute sorte d'opération dont vous avez besoin à distance (sur Internet) sans exposer votre réseau domestique.

Knockd n'a qu'une seule dépendance répertoriée, alors téléchargez le package et sa dépendance en émettant:

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

Installez l'ipk «knock daemon» (knockd) dans le firmware:

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

Installez l'ipk «packet capture» (libpcap) dans le firmware:

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

Comme «knockd» peut être invoqué avec un autre fichier de configuration (comment sera expliqué dans un prochain article), il n'est pas nécessaire d'effectuer une autre opération et vous pouvez passer à la section de construction du firmware, si c'est tout ce que vous vouliez installer.

Le package SSMTP

Le package SSMTP permet à votre routeur d'envoyer des e-mails comme nous l'avons montré dans notre Comment configurer les alertes par e-mail sous Linux à l'aide de Gmail ou SMTP pour les serveurs. Nous vous avions promis à l'époque que nous montrerions comment configurer cela pour DD-WRT et nous allons maintenant livrer.
Ceci est principalement utile si vous allez créer des scripts sur le routeur pour lesquels vous souhaitez recevoir des commentaires sur leur fonctionnement par e-mail.

La configuration de ce paquet est un peu plus complexe que sur les systèmes Linux normaux en raison de la limitation imposée par un système embarqué, alors prenez une grande respiration… prêt?…. Allons-y… :)

Téléchargez le package:

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

Installez l'ipk «ssmtp» dans le firmware:

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

Prise en charge TLS (en option)
SSMTP ne répertorie aucun autre package comme ses dépendances, mais si vous souhaitez pouvoir utiliser une passerelle smtp qui nécessite une authentification TLS (c.-à-d. Gmail ), vous devez également installer le package openSSL.
Note : Il y a un ÉNORME inconvénient à le faire sous la forme d'un espace considérablement réduit sur le routeur pour JFFS plus tard. Autrement dit, le package openSSL prend environ 500K d'espace sur votre total de 4 Mo (pour un routeur de support non «méga» normal), en plus de la surcharge JFFS et vous découvrirez que votre gauche avec, mais quelques précieux, blocs de espace JFFS gratuit (environ 60 Ko sur WRT54GL).

Comme il existe encore des serveurs SMTP qui ne nécessitent pas de TLS (généralement ceux de votre FAI), je suggère de prendre une minute pour réfléchir si vous avez vraiment besoin d'utiliser le TLS nécessitant une passerelle.

Si vous avez décidé d'activer le support TLS malgré son inconvénient, téléchargez le package openSSL:

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

Installez l'ipk «openSSL» (libopenssl) dans le firmware:

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

Configurations
Il existe une limitation avec le package SSMTP, car il n'est pas possible de l'invoquer avec un autre fichier de configuration.
Étant donné que le micrologiciel est en lecture seule lorsqu'il est sur le routeur, cela signifie que, hors de la boîte, nous ne pouvons coder en dur que la configuration dans le micrologiciel.
Cependant, que se passe-t-il si nous ne voulons pas passer par toutes les étapes de modification du micrologiciel, juste pour modifier les paramètres de messagerie? (par exemple un changement de mot de passe).

À cette fin, Jeremy (le créateur du kit de micrologiciels) et moi-même sommes arrivés à la conclusion (indépendamment si je puis humblement ajouter) que la seule façon saine de le faire serait de:

  1. Faites en sorte que l'emplacement des fichiers de configuration vers lequel le package ssmtp pointe vers l'emplacement en lecture seule sous etc, pointe vers le répertoire tmp qui est accessible en écriture au moment de l'exécution.
  2. Créez un script qui générerait dynamiquement les configurations basées sur les variables NVRAM au démarrage.

Pour y parvenir, certaines étapes supplémentaires sont nécessaires…

Lien symbolique vers le répertoire de configuration ssmtp
Comme expliqué ci-dessus, nous devons faire le / etc / ssmtp emplacement sur le routeur, pointez sur / tmp répertoire car c'est le seul endroit accessible en écriture sur le routeur au moment de l'exécution. Pour ce faire, supprimez le répertoire ssmtp qui a été créé par le programme d'installation d'ipk:

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

Créez un nouveau lien symbolique qui pointe le / etc / ssmtp sur le système de fichiers racine du routeur, pour pointer vers / tmp / etc / ssmtp comme chemin absolu:

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

Note : Même si cela semble illogique pour le moment, parce que nous pointons le répertoire de configuration du paquet vers un emplacement en dehors du répertoire de travail du kit de modification du firmware, je vous assure que cela semble tout à fait correct du point de vue des routeurs au moment de l'exécution.

Un script d'initialisation
Bien qu'il soit tout à fait possible de ne pas injecter ce script dans le firmware et de l'exécuter ultérieurement en tant que script de démarrage, je pense qu'il est approprié de le mettre ici ne serait-ce qu'à titre d'exemple pour une utilisation future.
À l'origine, Jeremy a créé le script adapté à la demande de quelqu'un, plus tard, je l'ai ajusté et augmenté pour qu'il soit plus compatible avec DD-WRT et les rapports syslog.

Créez le nouveau script init (démarrage):

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

Remarque: vous pouvez utiliser un autre éditeur, j'utilise vi car il correspond à ce qui est disponible sur le routeur…
Faites-en son contenu:

#! / bin / sh
#
# title: ssmtp_nvram.sh
# auteur: Jeremy Collake et Aviad Raviv
# site: http://www.bitsum.com, http://howtogeek.com
#
# script pour créer le fichier de configuration à partir de nvram vars.
# fonctionnera pour tout fichier de configuration qui utilise
# var = paires de types de valeur.
#
# utilise des préfixes pour les variables nvram.
#
# и.е.
# ssmtp hostname = quelque chose
# se traduit par ssmtp.conf
# hostname = quelque chose
#
logger_func ()
{
enregistreur -s -p local0.notice -t SSMTP_init $ 1
}

logger_func "########### Démarrage de l'exécution de l'initialisation SSMTP ###########"
logger_func "Création du répertoire etc dans / 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 "Génération de $ CONFIG_FILE pour le package $ PACKAGE_NAME"
#echo $ 0: générer $ CONFIG_FILE pour le package $ PACKAGE_NAME
echo "#! / bin / sh"> $ CONFIG_FILE
echo "#" >> $CONFIG_FILE
echo "# généré automatiquement basé sur nvram par $ 0" >> $ CONFIG_FILE
echo "#" >> $CONFIG_FILE

si [ -z "`nvram show | grep ssmtp`" ]
puis
logger_func "Il semble que vous n'ayez pas défini les variables NVRAM requises pour générer le fichier de configuration"
logger_func "** Pensez ** à utiliser ces commandes dans votre script de démarrage:"
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 = OUI"
logger_func "nvram set ssmtp_AuthUser = nom d'utilisateur"
logger_func "nvram set ssmtp_AuthPass = mot de passe"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func "crée les variables NVRAM et réexécute le script d'initialisation ou redémarre pour que les paramètres prennent effet."
sortie 0
être

###########################################################
#
# boucle principale
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = `nvram show | grep $ NVRAM_PREFIX | sed "$ SED_COMMAND" `
pour i dans $ CONFIG_VARS; faire
echo $ i >> $ CONFIG_FILE
terminé

###########################################################
#
# verification sanitaire
#
si [ ! -f "$CONFIG_FILE" ]; puis
# echo "$ 0: ERREUR - impossible de créer $ CONFIG_FILE. Peut-être qu'il n'y a pas de lien symbolique / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ERREUR - impossible de créer $ CONFIG_FILE. Peut-être qu'il n'y a pas de lien symbolique / etc / XXXX -> / tmp / etc / XXXX?"
être
logger_func "########### Fin de l'exécution de l'initialisation SSMTP ###########"

Rendez-le exécutable:

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

Prenez note des variables d'attente NVRAM dans le script, il est de notre responsabilité de leur donner quelque chose avec quoi travailler après avoir installé notre firmware modifié sur le routeur.

Construisez le micrologiciel modifié

Maintenant que tout est en place, il est temps de reconditionner le firmware modifié dans un binaire compressé que nous pouvons flasher sur le routeur.
La syntaxe du script «build.sh» est:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

Pour ce faire, nous utilisons le script fourni, alors lancez:

./build_firmware.sh output_mini1 ./working_dir_mini1/

Une fois l'opération «build» terminée, il y aura plusieurs images de firmware en attente d'être utilisées dans le répertoire «output».

Vous pouvez maintenant flasher le fichier appelé «custom_image_00001-generic.bin» sur votre routeur comme vous auriez normalement un firmware DD-WRT .

Note : N'oubliez pas de restaurer les «paramètres d'usine par défaut» avant, pendant et juste après le flash du micrologiciel.

Post flash étapes

Étant donné que nous avons demandé au package SSMTP de rechercher les variables NVRAM afin de générer le fichier de configuration ssmtp, nous devons maintenant lui fournir les informations manquantes.
Nous accomplirons cela en utilisant la fonction «Exécuter les commandes» de l'interface graphique Web.

Allez dans l'interface graphique Web -> «administration» -> «commandes» -> collez dans la zone de texte ce qui suit:

nvram défini [email protected]
nvram défini ssmtp_mailhub = smtp.gmail.com: 587
nvram défini [email protected]
nvram set ssmtp_UseSTARTTLS = OUI
nvram set ssmtp_AuthUser = votre-nom-d'utilisateur-gmail (sans @ gmail.com)
nvram set ssmtp_AuthPass = vous-gmail-mot de passe
nvram set ssmtp_FromLineOverride = OUI
nvram commit

Remplacez le texte après le signe égal (=), par vos informations réelles, puis appuyez sur "Exécuter les commandes".
Note : si vous utilisez un serveur smtp standard, non TLS, le port à utiliser est 25 au lieu de 587.

Maintenant que les informations SSMTP sont prêtes à être utilisées, vous devrez appeler le script init. Vous pouvez donc soit redémarrer le routeur, soit coller ceci dans la zone de texte «commandes»:

/etc/init.d/S80ssmtp

Puis appuyez à nouveau sur "Exécuter les commandes".
La sortie de cette commande devrait ressembler à:

Testez que vous pouvez envoyer un e-mail
Collez à nouveau ceci dans la zone de texte "commandes" la commande suivante avec votre adresse e-mail:

echo "test du creuset emailing 123 qwe" | ssmtp -vvv [email protected]

Puis appuyez à nouveau sur "Exécuter les commandes".
Comme nous avons utilisé l'option -vvv pour plus de verbosité, la sortie de cette commande devrait ressembler à:

Si tout s'est bien passé, vous devriez recevoir l'e-mail de test en quelques secondes.

Nous espérons que vous pourrez utiliser ces informations pour repousser les limites de votre routeur domestique encore plus loin que vous ne le pensiez possible et vous contrôlez vraiment votre routeur domestique et DD-WRT


Linux prolonge la vie, Linux élargit la conscience… Linux est vital pour les voyages de paquets

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


Matériel - Most Popular Articles

Comment trouver le numéro de série de votre appareil Android

Matériel May 15, 2025

Le numéro de série de votre appareil est un code unique que le fabricant donne au téléphone. Il n'y a pas deux numéros de série identiques. Si vous avez besoin de trouver votr..


Comment améliorer votre objectif dans les jeux PC

Matériel Apr 16, 2025

CONTENU NON CACHÉ Viser avec la souris est essentiel dans presque tous les jeux de tir sur PC, doublement si vous jouez en ligne. Il s’agit d’un processus simple et intuitif,..


Comment choisir le bon moniteur pour votre PC

Matériel Jan 14, 2025

Si vous êtes comme nous, vous passez beaucoup de temps à regarder l'écran de votre PC. Alors, ne devrait-il pas être bon? Rejoignez-nous alors que nous décodons les spécificat..


Comment masquer les icônes de superposition en jeu GeForce Experience de NVIDIA et la notification Alt + Z

Matériel Jul 5, 2025

CONTENU NON CACHÉ La dernière version de Expérience GeForce de NVIDIA le logiciel apporte une nouvelle superposition "Partager" dans le jeu qui remplace l'ancien..


Cinq façons d'automatiser votre maison sans dépenser beaucoup d'argent

Matériel Jul 12, 2025

CONTENU NON CACHÉ Tout le monde n'a pas les moyens de décorer sa maison avec des lumières, des prises et une commande vocale Wi-Fi. Mais cela ne signifie pas nécessairement qu..


Comment résoudre les problèmes d'imprimante sur un Mac

Matériel Dec 21, 2024

Les imprimantes sont de toutes formes et tailles, mais elles ont des problèmes similaires. Le dépannage d'une imprimante sur un Mac est similaire au dépannage sur un PC Windows, ..


Comment ajouter des économiseurs d'écran personnalisés à votre lecteur de livres électroniques Kobo

Matériel Jun 8, 2025

CONTENU NON CACHÉ Si vous n'êtes pas particulièrement impressionné par le système d'économiseur d'écran de votre lecteur Kobo Ebook, vous pouvez le personnaliser à votre g..


Quelle est la différence entre les imprimantes de bureau et les imprimantes professionnelles?

Matériel Nov 20, 2024

L’appareil que vous utilisez pour imprimer votre itinéraire de requête cartographique contient plus d’activités que vous lui attribueriez. En fait, c’est pratiquement un mi..


Catégories