Släpp loss ännu mer kraft från din hemrouter med DD-WRT Mod-Kit

Sep 15, 2025
Hårdvara
OBEHANDLAT INNEHÅLL


Vi har redan visat hur du modifierar din hemrouter med DD-WRT-alternativ firmware för kraftigt förbättrad prestanda, och idag kommer vi att visa dig hur du tar det ännu längre med DD-WRT Mod-Kit.

Om du inte redan har gjort det, se till och kolla in de två tidigare artiklarna i serien:

Förutsatt att du känner till dessa ämnen, fortsätt läsa. Tänk på att den här guiden är lite mer teknisk, och nybörjare bör vara försiktiga när de modderar sin router.

Översikt

Den här guiden ger en steg för steg översikt över hur du skapar din egen DD-WRT-firmware med modifieringar och tillägg med hjälp av " modifieringspaket för firmware “.

Med firmware-modifieringssatsen kan man göra modifieringar på firmware utan att kompilera den från källan. Att göra ändringar på detta sätt, med hjälp av de medföljande skripten, blir en enkel fråga att ladda ner, ersätta och ta bort vissa filer.

Den mest dominerande anledningen att använda den här metoden är att DD-WRTs stöd för Openwrt IPKG-paket har flyttats mot routrar som har hårddiskar (via USB), vilket gör mod-kit till det enda konsekventa sättet att installera IPKG-paketen framgångsrikt i fall där en HD inte är tillgänglig. Dessutom har den här metoden den extra fördelen att du befrias från JFFS-beroendet för paketinstallation, vilket för routrar med endast 4 MB flash är ett verkligt problem.

Bild av publicenergy

Mål

Medan instruktionerna för denna procedur finns detaljerade på DD-WRT wiki och på utvecklarens webbplats , vi strävar efter att göra den här guiden till en kopiera och klistra in procedur som alla kan använda för att uppnå följande mål:

  • Installera knockd-paketet och dess beroenden.
  • Installera ssmtp-paketet med NVRAM-baserade genererade konfigurationer.
    • Valfritt med stöd för TLS smtp (aka Gmail support).

När du har följt denna procedur bör det vara relevant enkelt att anpassa den för andra paketinstallationer.

Varning : Trampa lätt ... kom ihåg att felaktig användning av modifikationssatsen kan ge dig en router som behöver avstängning (som i sin tur blir det till en värdelös tegelsten ). Men om du är en sann nörd prenumererar du förmodligen på ideologin som, den som kan förstöra en sak, kontrollerar en sak , och bara sanna nördar gör det

Förutsättningar

  1. Med hjälp av denna procedur kan tegel din router, som i gör din router oanvändbar, vi tar inget ansvar för skador som kan orsakas direkt eller på annat sätt på grund av användningen av nedanstående procedurer.
  2. Denna procedur utfördes på Debian-baserade system (Lenny, Squeeze och Mint) och instruktionerna nedan förutsätter att du också använder ett.
  3. Denna procedur rekommenderas endast för personer som har erfarenhet av att blinka sin router med DD-WRT, med alla förutsättningar, försiktighetsåtgärder och begränsningar som gäller för deras hårdvaruinstallation. ett bra ställe att börja skulle vara vårt Förvandla din hemrouter till en superdriven router med DD-WRT guide.
  4. Din router måste stödja åtminstone “mini” -versionen av DD-WRT.
  5. Denna procedur skapades och testades på Linksys WRT54GS / L-routrar, om du använder routrar från andra leverantörer, kan din körsträcka mycket.

Uppstart

Installera nödvändiga paket

Firmware-modifieringssatsen har vissa beroenden för att kompilera och arbeta. För att installera / uppdatera dem på en gång, ge detta kommando i en terminal:

sudo aptitude installera gcc g ++ binutils patch bzip2 flex bison gör gettext unzip zlib1g-dev libc6 subversion

Ladda ner mod-kit

Skapa en undermapp och hämta satsen från det officiella SVN:

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

Ladda ner en firmware att arbeta med

Det första du bör tänka på är vilken version du vill använda?
En tumregel är: när du är osäker, använd “mini”. Detta beror på att så länge din router stöder åtminstone "mini" -versionen, använder du den alla de mest använda funktionerna utan någon uppblåsning. vilket ger både utrymme för procedurerna och till och med lite JFFS-utrymme för andra användningar i de flesta fallen.

När du väl har bestämt dig för en version rekommenderas att du använder den senaste versionen av den fasta programvaran som finns, eftersom de tenderar att ha många felkorrigeringar jämfört med deras "stabila" motsvarigheter.
Vid skrivningstidpunkten var den senaste ”03-17-11-r16454” och denna version används i kommandona som följer.

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

För att göra det lättare att hålla reda på vilken version vi använder, byt namn på den nedladdade filen för att representera dess versionsnummer:

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

Detta är naturligtvis valfritt, men kommandona nedan antar att du har bytt namn på filen.

Extrahera firmware

För att kunna ändra filer i firmware måste vi extrahera innehållet i en tillfällig katalog.
Syntaxen för detta kommando är:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
I vårt fall skulle detta översättas till:

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

Obs! Första gången du kör det här kommandot bygger det mod-kit-verktygen på ditt system. detta händer bara en gång och kan ta en stund ... så ha tålamod ...

Installerar paket

Nu när firmware har extraherats kan vi installera paketen till den.
I allmänhet är proceduren att ladda ner paketet och dess beroenden i form av en ipk-fil från openWRT-förvar . När du väl har laddat ner installerar du dem i den extraherade firmware med det medföljande skriptet.

Det knäppta paketet

Detaljerade instruktioner om hur du konfigurerar och använder Knockd kommer att beskrivas i en framtida artikel, så du kan välja att hoppa över det här steget för tillfället eller göra det som en förberedelse för framtiden eftersom Knockd inte tar mycket utrymme på något sätt.

Knockd är en demon som lyssnar på kommunikationshändelser vid länklagret för sekvenser och sedan agerar på dem.
Vad detta betyder är att du kan låta enheten köra daemon inte ens "lyssna" på portarna (en portavsökning ser dem inte som öppna) och ändå få den att göra något du behöver, från ett enda kommando långt upp till ett fullständigt skript. Använda denna teknik du kan utlösa servern för att utföra alla typer av operationer du behöver av den på distans (över internet) utan att exponera ditt hemnätverk.

Knockd har bara ett listat beroende, så ladda ner paketet och dess beroende genom att utfärda:

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

Installera "knock daemon" (knockd) ipk i firmware:

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

Installera "packet capture" (libpcap) ipk i firmware:

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

Eftersom "knockd" kan åberopas med en alternativ konfigurationsfil (hur kommer det att förklaras i en framtida artikel), finns det inget behov av att utföra någon annan åtgärd och du kan hoppa till avsnittet om fast programvara, om det är allt du ville installera.

SSMTP-paketet

SSMTP-paketet gör det möjligt för din router att skicka e-postmeddelanden precis som vi visade i vår Så här ställer du in e-postvarningar på Linux med Gmail eller SMTP för servrar. Vi lovade dig då att vi kommer att visa hur du konfigurerar detta för DD-WRT och vi kommer nu att leverera.
Detta är främst användbart om du ska skapa skript på routern som du vill få feedback om hur de fungerar via e-post.

Det här paketets inställning är lite mer komplex än på normala Linux-system på grund av den begränsning som ett inbäddat system innebär, så ta ett djupt andetag ... redo? ... nu går vi… :)

Ladda ner paketet:

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

Installera "ssmtp" ipk i firmware:

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

TLS-stöd (valfritt)
SSMTP listar inte några andra paket som dess beroenden, men om du vill kunna använda en smtp-gateway som kräver TLS-autentisering (dvs. Gmail ) måste du också installera openSSL-paketet.
Notera : Det finns ENORM nackdel att göra detta i form av betydligt minskat utrymme på routern för JFFS senare. Det vill säga att openSSL-paketet tar cirka 500K utrymme från din totala 4MB (för en normal icke "mega" -stödrouter), sammansatt till JFFS-omkostnaderna och du kommer att upptäcka att din vänster med, men ett värdefullt få, block av ledigt JFFS-utrymme (cirka 60 kB på WRT54GL).

Eftersom det fortfarande finns icke-TLS som kräver smtp-servrar där ute (vanligtvis din Internetleverantör), föreslår jag att du tar en minut att tänka om du verkligen behöver använda den TLS som kräver gateway.

Om du har beslutat att aktivera TLS-stöd trots dess nackdel, ladda ner openSSL-paketet:

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

Installera "openSSL" (libopenssl) ipk i firmware:

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

Konfigurationer
Det finns en begränsning med SSMTP-paketet att det inte är möjligt att åberopa det med en alternativ konfigurationsfil.
Eftersom den fasta programvaran är skrivskyddad när den är på routern betyder det att vi direkt kan konfigurera hårddisken till firmware.
Men vad händer om vi inte vill gå igenom alla steg för modifiering av firmware, bara för att ändra e-postinställningarna? (till exempel en lösenordsändring).

För detta ändamål nådde både Jeremy (skaparen av firmware-mod-kit) och jag själv (oberoende om jag ödmjukt kan tillägga) att det enda sunda sättet att göra detta skulle vara att:

  1. Gör konfigurationsfilernas plats som ssmtp-paketet pekar till den skrivskyddade platsen under etc, peka på tmp-katalogen som är skrivbar vid körning.
  2. Skapa ett skript som dynamiskt genererar konfigurationerna baserade på NVRAM-variabler vid start.

För att uppnå detta krävs ytterligare några steg ...

Symlink ssmtp-konfigurationskatalogen
Som förklarats ovan måste vi göra / etc / ssmtp plats på routern, peka på / tmp katalog som den enda skrivbara platsen vi har på routern vid körning. För att göra detta, ta bort ssmtp-katalogen som skapades av ipk-installationsprogrammet:

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

Skapa en ny symbolisk länk som pekar på / etc / ssmtp på routerns rotfilsystem för att peka på / tmp / etc / ssmtp som en absolut sökväg:

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

Notera : Även om det här ser ologiskt ut just nu, eftersom vi pekar på paketets konfigurationskatalog till en plats utanför firmware-modifikationssatsens arbetskatalog, kan jag försäkra er att detta ser helt bra ur routers synvinkel vid körningstid.

Ett init-skript
Även om det är helt möjligt att inte injicera detta skript i firmware och köra det som ett startskript senare, känner jag det lämpligt att lägga det här om bara som ett exempel för framtida bruk.
Ursprungligen skapade Jeremy skriptet skräddarsytt för någons begäran, senare justerade jag och förstärkte det för att vara mer kompatibelt med DD-WRT och syslog-rapportering.

Skapa det nya init-skriptet (startup):

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

Obs! Du kan använda en annan redigerare, jag använder vi eftersom det överensstämmer med vad som finns på routern ...
Gör detta till dess innehåll:

#! / bin / sh
#
# title: ssmtp_nvram.sh
# författare: Jeremy Collake och Aviad Raviv
# webbplats: http://www.bitsum.com, http://howtogeek.com
#
# skript för att skapa konfigurationsfil från nvram vars.
# fungerar för alla konfigurationsfiler som används
# var = värdetyppar.
#
# använder prefix för nvram-variabler.
#
# i.e.
# ssmtp värdnamn = något
# översätts till ssmtp.conf
# värdnamn = något
#
logger_func ()
{
logger -s -p local0.notice -t SSMTP_init $ 1
}

logger_func "############ Startade SSMTP init-körning ############"
logger_func "Skapa etc-katalogen i / 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 "Skapar $ CONFIG_FILE för paketet $ PACKAGE_NAME"
#echo $ 0: genererar $ CONFIG_FILE för paketet $ PACKAGE_NAME
eko "#! / bin / sh"> $ CONFIG_FILE
eko "#" >> $ CONFIG_FILE
ekot "# genereras automatiskt baserat på nvram av $ 0" >> $ CONFIG_FILE
eko "#" >> $ CONFIG_FILE

om [ -z "`nvram show | grep ssmtp`" ]
sedan
logger_func "Det verkar som att du inte har ställt in de NVRAM-variabler som krävs för att skapa conf-filen"
logger_func "** Överväg ** att använda dessa kommandon i ditt startskript:"
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 = användarnamn"
logger_func "nvram set ssmtp_AuthPass = lösenord"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func "skapa NVRAM-variablerna och kör om init-skriptet eller starta om för att inställningarna ska påverka."
avsluta 0
vara

###########################################################
#
# huvudslinga
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = `nvram-show | grep $ NVRAM_PREFIX | sed "$ SED_COMMAND" "
för jag i $ CONFIG_VARS; do
echo $ i >> $ CONFIG_FILE
Gjort

###########################################################
#
# sanity check
#
om [ ! -f "$CONFIG_FILE" ]; sedan
# echo "$ 0: FEL - kunde inte skapa $ CONFIG_FILE. Kanske finns det ingen symink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "FEL - kunde inte skapa $ CONFIG_FILE. Kanske finns det ingen symink / etc / XXXX -> / tmp / etc / XXXX?"
vara
logger_func "############ Avslutad SSMTP-init körning ###########"

Gör det körbart:

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

Notera NVRAM-väntningsvariablerna i skriptet, det är vårt ansvar att ge dem något att arbeta med efter att vi har installerat vår modifierade firmware på routern.

Bygg den modifierade firmware

Nu när allt är på plats är det dags att packa om den modifierade firmware till en komprimerad binär som vi kan blinka till routern.
Skriptsyntaxen "build.sh" är:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

För att göra detta använder vi det medföljande skriptet, så fråga:

./build_firmware.sh output_mini1 ./working_dir_mini1/

När "build" -operationen är klar kommer det att finnas flera firmwarebilder som väntar på att användas i "output" -katalogen.

Du kan nu blinka filen ”custom_image_00001-generic.bin” till din router som du skulle normalt ha en DD-WRT-firmware .

Notera : Glöm inte att återställa till "fabriksinställningar" före, under och direkt efter firmware-blixt.

Lägg upp blixtsteg

Eftersom vi fick SSMTP-paketet att leta efter NVRAM-variabler för att generera ssmtp-konfigurationsfilen måste vi nu förse den med den saknade informationen.
Vi kommer att åstadkomma detta med hjälp av webb-GUI-funktionen "Kör kommandon".

Gå till webb-GUI -> "administration" -> "kommandon" -> klistra in följande i textrutan:

nvram ställa in [email protected]
nvram ställa in ssmtp_mailhub = smtp.gmail.com: 587
nvram ställa in [email protected]
nvram set ssmtp_UseSTARTTLS = JA
nvram set ssmtp_AuthUser = ditt-gmail-användarnamn (utan @ gmail.com)
nvram ställa in ssmtp_AuthPass = du-gmail-lösenord
nvram set ssmtp_FromLineOverride = JA
nvram begå

Byt ut texten efter likhetstecknet (=) med din faktiska information och tryck sedan på "Kör kommandon".
Notera : om du använder en vanlig, icke TLS-användare, är smtp-servern porten som ska användas 25 istället för 587.

Nu när SSMTP-informationen är redo att användas måste du anropa init-skriptet. Så du kan antingen starta om routern eller klistra in den i textrutan "kommandon":

/etc/init.d/S80ssmtp

Tryck sedan på "Kör kommandon" igen.
Utgången från det här kommandot ska se ut:

Testa att du kan skicka e-post
Klistra in detta igen i kommandot textrutan följande kommando med din e-postadress:

eko "testning av degel via e-post 123 qwe" | ssmtp -vvv [email protected]

Tryck sedan på "Kör kommandon" igen.
Eftersom vi använde -vvv-alternativet för extra information, bör utgången för det här kommandot se ut:

Om allt gick bra bör du få testmeddelandet inom några sekunder.

Vi hoppas att du kan använda den här informationen för att skjuta dina gränser för din hemrouter ännu längre än du trodde var möjligt och du nu verkligen styra din hemrouter och DD-WRT


Linux förlänger livet, Linux utökar medvetandet ... Linux är viktigt för paketresor

.post-innehåll .inmatningsfot

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


Hårdvara - Mest populära artiklar

Vad är en "Surveillance" eller "NAS" hårddisk?

Hårdvara Apr 28, 2025

mike mols / Shutterstock Kapacitet är inte det enda som skiljer en hårddisk från en annan. Ja, de är alla snurrplattor som använder magnetis..


Vad är skillnaden mellan OLED och Samsungs QLED-TV?

Hårdvara Sep 27, 2025

Organiska ljusdioder, förkortade OLED, är alla ilska för avancerade HD-TV-apparater. Tekniken har hoppat från telefoner och surfplattor till större skärmar, och dess livfulla ..


Smarta ljusströmställare kontra smarta glödlampor: vilken bör du köpa?

Hårdvara Sep 19, 2025

Om du vill styra dina lampor från din telefon eller med din röst har du två alternativ att överväga: köp smarta glödlampor eller köp smarta ljusströmställare. Så här bes..


Spegla datorns skärm på din TV med Googles Chromecast

Hårdvara Jul 2, 2025

Vill du placera datorns skärm på din TV? Du kunde anslut den med en HDMI-kabel , Men datorns placering beror på kabelns längd. Med Google’s Chromecast ..


Hur man tittar på och spelar in live-TV med Kodi och NextPVR

Hårdvara Jul 3, 2025

OBEHANDLAT INNEHÅLL A Kodi-baserad dator för hemmabio är bra för att titta på dina rippade eller nedladdade videor, men även om du har klippt bort kabeln frå..


Vad är skillnaden mellan 1: a 2: a och 3: e generationens Philips Hue-lampor?

Hårdvara Jul 5, 2025

Den andra generationen av Philips Hue smarta glödlampor har varit ute under ett tag nu, och tredje generationens glödlampor har just nyligen kommit ut , men du kan ..


Windows vill alltid skanna och fixa min USB-enhet; Ska jag låta det?

Hårdvara Oct 17, 2025

OBEHANDLAT INNEHÅLL Det är en vanlig syn för många Windows-användare: du öppnar din flash-enhet eller minneskortet från din kamera och Windows insisterar på att det finns ..


Hur ökade spelprestandan avsevärt för en AMD APU genom att lägga till minne?

Hårdvara Aug 5, 2025

OBEHANDLAT INNEHÅLL När du uppgraderar datorns maskinvara är det givet att du förväntar dig en prestationsökning, men ibland får du en oväntat betydande ökning utöver va..


Kategorier