Slip løs endnu mere strøm fra din hjemme-router med DD-WRT Mod-Kit

Sep 15, 2025
Hardware
UCACHED INDHOLD


Vi har allerede vist dig, hvordan du modificerer din hjemmerouter med DD-WRT-alternativ firmware for stærkt forbedret ydeevne, og i dag vil vi vise dig, hvordan du kan tage det endnu længere med DD-WRT Mod-Kit.

Hvis du ikke allerede har gjort det, skal du sørge for at tjekke de to tidligere artikler i serien:

Forudsat at du er bekendt med disse emner, skal du fortsætte med at læse. Husk, at denne guide er lidt mere teknisk, og begyndere skal være forsigtige, når de modderer deres router.

Oversigt

Denne vejledning giver en trinvis gennemgang af, hvordan du opretter din egen DD-WRT-firmware med ændringer og tilføjelser ved hjælp af " firmware-modifikationssæt “.

Firmware-modifikationssættet gør det muligt at foretage ændringer af firmwaren uden at kompilere den fra kilden. At foretage ændringer på denne måde ved hjælp af de medfølgende scripts bliver et simpelt spørgsmål om at downloade, erstatte og slette nogle filer.

Den mest fremherskende grund til at bruge denne metode er, fordi DD-WRTs support til Openwrt IPKG-pakker er skiftet mod routere, der har harddiske (via USB), hvilket gør mod-kit til den eneste konsekvent fungerende måde at installere IPKG-pakkerne med succes i tilfælde, hvor en HD ikke er tilgængelig. Derudover har denne metode den ekstra fordel, at den fritager dig fra JFFS-afhængigheden af ​​pakken installation, hvilket for routere med kun 4 MB flash er et reelt problem.

Billede af publicenergy

Mål

Mens instruktioner til denne procedure er detaljeret om DD-WRT wiki og på udviklerens websted , vi sigter mod at gøre denne guide til en kopi & indsæt-procedure, som alle kan bruge til at nå følgende mål:

  • Installer knockd-pakken og dens afhængigheder.
  • Installer ssmtp-pakken med NVRAM-baserede genererede konfigurationer.
    • Valgfrit med support til TLS smtp (aka Gmail support).

Når du har fulgt denne procedure, skal det være relevant enkelt at tilpasse den til andre pakkerinstallationer.

Advarsel : Træd let ... husk, at forkert brug af modifikationssættet kan efterlade dig med en router, der har brug for afmuring (som igen det til en ubrugelig mursten ). Men hvis du er en ægte nørd, abonnerer du sandsynligvis på ideologien om, at den, der kan ødelægge en ting, styrer en ting , og kun sande nørder gør det

Forudsætninger

  1. Brug af denne procedure kan mursten din router, som i gør din router ubrugelig, vi tager intet ansvar for skader, der kan være forårsaget direkte eller på anden måde på grund af brugen af ​​nedenstående procedurer.
  2. Denne procedure blev udført på Debian-baserede systemer (Lenny, Squeeze og Mint), og instruktionerne nedenfor antager, at du også bruger et.
  3. Denne procedure anbefales kun til folk, der har erfaring med at blinke deres router med DD-WRT, med alle forudsætninger, forbehold og begrænsninger, der gælder for deres hardwareopsætning. et godt sted at starte ville være vores Gør din hjemmereuter til en superdrevet router med DD-WRT guide.
  4. Din router skal understøtte mindst “mini” -versionen af ​​DD-WRT.
  5. Denne procedure blev oprettet og testet på Linksys WRT54GS / L routere, hvis du bruger routere fra andre leverandører, kan din kilometertal meget.

Opsætning

Installation af nødvendige pakker

Firmware-modifikationssættet har nogle afhængigheder for at kompilere og arbejde. For at installere / opdatere dem alle på én gang Udsted denne kommando i en terminal:

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

Download the mod-kit

Opret en undermappe, og få sættet fra den officielle SVN:

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 /

Download en firmware til at arbejde på

Den første ting at overveje er, hvilken version du vil bruge?
En tommelfingerregel er: I tvivlstilfælde skal du bruge “mini”. Dette skyldes, at så længe din router understøtter i det mindste "mini" -versionen, giver den dig alle de mest anvendte funktioner uden nogen bloatware ved at bruge den. hvilket giver både plads til procedurerne og endda noget JFFS-plads til andre anvendelser i de fleste tilfælde.

Når du har valgt en version, anbefales det at bruge den seneste version af den tilgængelige firmware, da de har tendens til at have mange fejlrettelser i forhold til deres "stabile" kolleger.
På dette tidspunkt var den seneste ”03-17-11-r16454”, og denne revision bruges i de følgende kommandoer.

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

For at gøre det lettere at holde styr på, hvilken version vi bruger, skal du omdøbe den downloadede fil for at repræsentere dens versionsnummer:

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

Dette er naturligvis valgfrit, men nedenstående kommandoer antager, at du har omdøbt filen.

Udpakning af firmwaren

For at være i stand til at ændre filer i firmwaren er vi nødt til at udtrække dens indhold i en midlertidig mappe.
Syntaksen for denne kommando er:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
I vores tilfælde vil dette oversætte til:

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

Bemærk: Første gang du kører denne kommando, bygger den mod-kit-værktøjerne på dit system. dette sker kun en gang og kan tage et stykke tid ... så vær tålmodig ...

Installation af pakker

Nu hvor firmwaren er udpakket, kan vi installere pakkerne til den.
Generelt er proceduren at downloade pakken og dens afhængigheder i form af en ipk-fil fra openWRT-lager . Når de er downloadet, skal du installere dem i den udpakkede firmware ved hjælp af det medfølgende script.

Den knockd-pakke

Detaljerede instruktioner om, hvordan du konfigurerer og bruger Knockd, vil blive beskrevet i en fremtidig artikel, så du kan vælge at springe dette trin over nu eller gøre det som forberedelse til fremtiden, da Knockd alligevel ikke tager meget plads.

Knockd er en dæmon, der lytter til kommunikationshændelser ved linklaget for sekvenser, der derefter virker på dem.
Hvad dette betyder, er at du kan have enheden, der kører dæmonen, ikke engang "lytte" på portene (en havnescanning kan ikke se dem som åbne) og stadig få den til at gøre noget, du har brug for, fra en enkelt kommando, alle op til et komplet script. Brug af denne teknik du kan udløse serveren til at udføre enhver form for operation, du har brug for den, eksternt (over internettet) uden at udsætte dit hjemmenetværk.

Knockd har kun en anført afhængighed, så download pakken og dens afhængighed ved at udstede:

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

Installer "knock daemon" (knockd) ipk i firmwaren:

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

Installer "pakkeoptagelse" (libpcap) ipk i firmwaren:

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

Da “knockd” kan påberåbes med en alternativ konfigurationsfil (hvordan vil blive forklaret i en fremtidig artikel), er der ingen grund til at udføre nogen anden handling, og du kan springe til firmwarebygningsafsnittet, hvis det er alt, hvad du ville installere.

SSMTP-pakken

SSMTP-pakken gør det muligt for din router at sende e-mail-meddelelser ligesom vi viste i vores Sådan konfigureres e-mail-alarmer på Linux ved hjælp af Gmail eller SMTP til servere. Vi lovede dig dengang, at vi vil vise, hvordan du konfigurerer dette til DD-WRT, og vi leverer nu.
Dette er hovedsageligt nyttigt, hvis du vil oprette scripts på routeren, som du gerne vil modtage feedback om deres drift via e-mail.

Opsætningen af ​​denne pakke er lidt mere kompleks, end den er på normale Linux-systemer på grund af begrænsningen pålagt af et integreret system, så tag en dyb indånding ... klar?…. Lad os gå… :)

Download pakken:

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

Installer "ssmtp" ipk i firmwaren:

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

TLS support (valgfri)
SSMTP viser ikke andre pakker som dets afhængigheder, men hvis du vil være i stand til at bruge en smtp-gateway, der kræver TLS-godkendelse (dvs. Gmail ), skal du også installere openSSL-pakken.
Bemærk : Der er ENORM ulempe at gøre dette i form af betydeligt reduceret plads på routeren til JFFS senere. Det vil sige, at openSSL-pakken tager cirka 500K plads fra din samlede 4MB (for en normal ikke "mega" understøttende router), sammensat til at JFFS overhead, og du vil opdage, at din venstre med, men et dyrebart par, blokke af ledig JFFS-plads (ca. 60 KB på WRT54GL).

Da der stadig ikke er TLS, der kræver smtp-servere derude (normalt din internetudbyder), foreslår jeg at tage et øjeblik til at tænke, om du virkelig har brug for den TLS, der kræver gateway.

Hvis du har besluttet at aktivere TLS-support på trods af dens ulempe, skal du downloade openSSL-pakken:

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

Installer "openSSL" (libopenssl) ipk i firmwaren:

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

Konfigurationer
Der er en begrænsning med SSMTP-pakken, at det ikke er muligt at påberåbe den med en alternativ konfigurationsfil.
Fordi firmwaren er skrivebeskyttet, når den er på routeren, betyder det, at vi ud af kassen kun kan hardcode konfigurationen i firmwaren.
Men hvad hvis vi ikke ønsker at gennemgå alle trin til ændring af firmware, bare for at ændre e-mail-indstillingerne? (for eksempel en ændring af adgangskode).

Til dette formål nåede både Jeremy (firmware mod-kit skaberen) og jeg selv den konklusion (uafhængigt hvis jeg ydmygt kan tilføje), at den eneste sunde måde at gøre dette på var at:

  1. Lav konfigurationsfilernes placering, som ssmtp-pakken peger på den skrivebeskyttede placering under osv., Peg på tmp-biblioteket, som kan skrives til ved kørsel.
  2. Opret et script, der dynamisk genererer konfigurationer baseret på NVRAM-variabler ved opstart.

For at opnå dette kræves nogle yderligere trin ...

Symlink til ssmtp-konfigurationsmappen
Som forklaret ovenfor er vi nødt til at lave / etc / ssmtp placere på routeren, peg på / tmp bibliotek som det eneste skrivbare sted, vi har på routeren på kørselstid. For at gøre dette skal du slette den ssmtp-mappe, der blev oprettet af ipk-installationsprogrammet:

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

Opret et nyt symbolsk link, der peger på / etc / ssmtp på routerens rodfilsystem, for at pege på / tmp / etc / ssmtp som en absolut sti:

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

Bemærk : Selvom dette ser ulogisk ud lige nu, fordi vi peger på pakkens konfigurationsmappe til et sted uden for firmware-modifikationssættets arbejdskatalog, kan jeg forsikre dig om, at dette ser helt fint ud fra routers synspunkt på kørselstidspunktet.

Et init-script
Selvom det er fuldstændigt muligt ikke at indsprøjte dette script i firmwaren og køre det som et start-script senere, føler jeg det er passende at sætte det her, hvis det kun er et eksempel til fremtidig brug.
Oprindeligt oprettede Jeremy scriptet, der var skræddersyet til en persons anmodning, senere justerede jeg og udvidede det til at være mere kompatibelt med DD-WRT- og syslog-rapportering.

Opret det nye init (start) script:

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

Bemærk: Du kan bruge en anden editor, jeg bruger vi, fordi det er i overensstemmelse med det, der er tilgængeligt på routeren ...
Gør dette til dets indhold:

#! / bin / sh
#
# titel: ssmtp_nvram.sh
# forfatter: Jeremy Collake og Aviad Raviv
# websted: http://www.bitsum.com, http://howtogeek.com
#
# script til at oprette konfigurationsfil fra nvram vars.
# fungerer for enhver konfigurationsfil, der bruger
# var=value type pairs.
#
# bruger præfikser til nvram-variabler.
#
# dvs.
# ssmtp hostname = noget
# oversættes til ssmtp.conf
# værtsnavn = noget
#
logger_func()
{
logger -s -p local0.notice -t SSMTP_init $ 1
}

logger_func "############# Startede SSMTP init-kørslen ############"
logger_func "Oprettelse af etc-biblioteket i / tmp"
[ ! -d /etc/ssmtp/ ] && mkdir -p / tmp / etc / ssmtp /
CONFIG_FILE = / etc / ssmtp / ssmtp.conf
NVRAM_PREFIX = ssmtp_
PACKAGE_NAME = 'valg $ NVRAM_PREFIX | sed 's / _ / /' '

logger_func "Genererer $ CONFIG_FILE for pakke $ PACKAGE_NAME"
#echo $ 0: genererer $ CONFIG_FILE til pakken $ PACKAGE_NAME
ekko "#! / bin / sh"> $ CONFIG_FILE
ekko "#" >> $ CONFIG_FILE
ekko "# automatisk genereret baseret på nvram af $ 0" >> $ CONFIG_FILE
ekko "#" >> $ CONFIG_FILE

hvis [ -z "`nvram show | grep ssmtp`" ]
derefter
logger_func "Det ser ud til, at du ikke har indstillet de krævede NVRAM-variabler til at generere conf-filen"
logger_func "** Overvej ** at bruge disse kommandoer i dit opstarts script:"
logger_func "nvram set [email protected]"
logger_func "nvram sæt ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram set [email protected]"
logger_func "nvram sæt ssmtp_UseSTARTTLS = JA"
logger_func "nvram sæt ssmtp_AuthUser = brugernavn"
logger_func "nvram sæt ssmtp_AuthPass = adgangskode"
logger_func "nvram sæt ssmtp_FromLineOverride = JA"
logger_func "opret NVRAM-variablerne og kør init-scriptet igen eller genstart for at indstillingerne skal påvirke."
Afslut 0
være

###########################################################
#
# hovedsløjfe
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = `nvram show | grep $ NVRAM_PREFIX | sed "$ SED_COMMAND" "
for jeg i $ CONFIG_VARS; gør
ekko $ i >> $ CONFIG_FILE
Færdig

###########################################################
#
# sundhedskontrol
#
hvis [ ! -f "$CONFIG_FILE" ]; derefter
# echo "$ 0: FEJL - kunne ikke oprette $ CONFIG_FILE. Måske er der ingen symink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "FEJL - kunne ikke oprette $ CONFIG_FILE. Måske er der ingen symink / etc / XXXX -> / tmp / etc / XXXX?"
være
logger_func "############ Færdiggjort SSMTP-init-kørslen ############"

Gør det eksekverbart:

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

Vær opmærksom på NVRAM-ventende variabler i scriptet, det er vores ansvar at give dem noget at arbejde med, efter at vi har installeret vores modificerede firmware på routeren.

Byg den modificerede firmware

Nu hvor alt er på plads, er det tid til at pakke den modificerede firmware om til en komprimeret binær, som vi kan blinke til routeren.
Syntaxen "build.sh" er:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

For at gøre dette bruger vi det medfølgende script, så spørg:

./build_firmware.sh output_mini1 ./working_dir_mini1/

Når "build" -handlingen er udført, vil der være flere firmwarebilleder, der venter på at blive brugt i "output" -mappen.

Du kan nu blinke filen kaldet “custom_image_00001-generic.bin” til din router som normalt ville du have en DD-WRT-firmware .

Bemærk : Glem ikke at gendanne til "fabriksindstillinger" før, under og lige efter firmwareblinket.

Send flash-trin

Fordi vi fik SSMTP-pakken til at lede efter NVRAM-variabler for at generere ssmtp-konfigurationsfilen, er vi nu nødt til at forsyne den med de manglende oplysninger.
Vi opnår dette ved hjælp af web-GUI "Kør kommandoer" -funktionen.

Gå til web-GUI -> "administration" -> "kommandoer" -> indsæt følgende i tekstboksen:

nvram sæt [email protected]
nvram sæt ssmtp_mailhub = smtp.gmail.com: 587
nvram sæt [email protected]
nvram sæt ssmtp_UseSTARTTLS = JA
nvram sæt ssmtp_AuthUser = dit-gmail-brugernavn (uden @ gmail.com)
nvram sæt ssmtp_AuthPass = du-gmail-adgangskode
nvram sæt ssmtp_FromLineOverride = JA
nvram begå

Udskift teksten efter ligetegnet (=) med dine faktiske oplysninger, og tryk derefter på "Kør kommandoer".
Bemærk : hvis du bruger en almindelig, ikke TLS-bruger, er smtp-serveren den port, der skal bruges, 25 i stedet for 587.

Nu hvor SSMTP-oplysningerne er klar til brug, skal du påberåbe sig init-scriptet. Så du kan enten genstarte routeren eller indsætte dette i tekstboksen "kommandoer":

/etc/init.d/S80ssmtp

Tryk derefter på "Kør kommandoer" igen.
Outputtet fra denne kommando skal se ud:

Test at du kan sende e-mail
Indsæt dette igen i tekstboksen "kommandoer" følgende kommando med din e-mail-adresse:

ekko "testning af smeltedigel med e-mail 123 qwe" | ssmtp -vvv [email protected]

Tryk derefter på "Kør kommandoer" igen.
Fordi vi brugte -vvv-indstillingen til ekstra detaljerethed, skulle output fra denne kommando se ud som:

Hvis alt gik godt, skulle du få test-mailen inden for få sekunder.

Vi håber, at du kan bruge disse oplysninger til at skubbe dine hjemmereutergrænser endnu længere, end du troede muligt og dig nu virkelig styre din hjemme router og DD-WRT


Linux forlænger livet, Linux udvider bevidstheden ... Linux er afgørende for pakkerejser

.indgangsindhold .indgangsfod

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 - Mest populære artikler

Hvordan er HTC Vive Pro bedre end den originale Vive?

Hardware May 3, 2025

UCACHED INDHOLD Vi ved endelig, hvornår HTCs nye og forbedrede Vive Pro VR-headset kommer, og hvor meget . Men hvad gør det bedre end den originale Vive, der debu..


Sådan bruges Logitech Flow til mus og tastaturer på tværs af flere computere

Hardware Aug 1, 2025

Logitechs nyeste mus og tastaturer har en interessant ekstra funktion kaldet Flow. Med Flow kan du bruge en mus og et tastatur på tværs af flere pc'er, meget ligesom Syner..


Skal du købe en iMac Pro eller vente på den nye Mac Pro-redesign?

Hardware Jul 11, 2025

UCACHED INDHOLD Da Apple opdaterede det ærværdige Mac Pro-skrivebord i 2013, var modtagelsen mildt sagt blandet. Mens anden generations maskines lille fodaftryk og polerede kuff..


Sådan forbedres din Amazon Echo-oplevelse ved at træne den til din stemme

Hardware Jun 20, 2025

Som alle stemmeassistenter er Alexa ikke perfekt til at forstå alt, hvad vi siger. Hvis du har lyst til, at Alexa mangler et par for mange kommandoer, er det måske tid til en lill..


Hvad er forskellen mellem åben og lukket hovedtelefon, og hvad skal jeg få?

Hardware Jan 8, 2025

Over-øret-hovedtelefoner (eller for de terminologiske elskende, circumaurale hovedtelefoner) findes i to primære varianter: åben ryg og lukket ryg. Før du sænker nogle seriøse..


Sådan bruges Aktivitetsovervågning på Apple Watch til at spore din kondition

Hardware Dec 9, 2024

Hvis du ejer et nyt Apple Watch, bliver du muligvis stadig vant til aktivitetsmonitoren og spekulerer på, hvad det er, alle disse cirkler handler om. I dag vil vi forklare dig, hvo..


Kan magneter beskadige eller tørre en bærbar harddisk?

Hardware Oct 18, 2025

UCACHED INDHOLD Uanset om vores computerhardware er helt ny eller lidt ældre, skader det aldrig at udvise lidt forsigtighed for at undgå at beskadige det. Med det i tankerne, ka..


Forklaret trådløs udskrivning: AirPrint, Google Cloud Print, iPrint, ePrint og mere

Hardware Nov 28, 2024

Det pæne ved standarder er, at der er så mange af dem at vælge imellem. Dette gælder bestemt for trådløse printere. Hvornår købe en printer , finder du ud af,..


Kategorier