A DD-WRT Mod-Kit használatával még több energiát szabadíthat fel az otthoni útválasztón
Már megmutattuk, hogyan kell a saját útválasztóját modellezni a DD-WRT alternatív firmware-vel a nagy teljesítményű teljesítmény érdekében, és ma már megmutatjuk, hogyan lehet tovább vinni a DD-WRT Mod-Kit termékkel.
Ha még nem, győződjön meg róla, és nézze meg a sorozat két korábbi cikkét:
- Kapcsolja be otthoni útválasztóját egy nagy teljesítményű útválasztóba a DD-WRT segítségével
- A Wi-Fi hálózati jel növelése és a tartomány növelése a DD-WRT-vel
Feltételezve, hogy ismeri ezeket a témákat, olvassa tovább. Ne feledje, hogy ez az útmutató egy kicsit technikaiabb, és a kezdőknek óvatosnak kell lenniük az útválasztó módosításakor.
Áttekintés
Ez az útmutató lépésről lépésre leereszkedik arról, hogyan hozhat létre saját DD-WRT firmware-t a módosításokkal és kiegészítésekkel a „firmware módosító készlet” használatával.
A firmware-módosító készlet lehetővé teszi, hogy a firmware-t módosítsák anélkül, hogy azt forrásból állítanák össze. Ilyen módon a megadott szkriptek segítségével módosíthatja az egyes fájlok letöltését, cseréjét és törlését..
A módszer alkalmazásának legfőbb oka az, hogy az utóbbi időben a DD-WRT támogatása az Openwrt IPKG csomagokra a merevlemezekkel (USB-n keresztül) rendelkező útválasztók felé tolódott el, ami a mod-kitet az IPKG csomagok sikeres telepítésének egyetlen következetesen működő módja olyan esetekben, amikor HD nem érhető el. Ezen túlmenően ez a módszer azzal az előnnyel jár, hogy elengedi a JFFS függőségét a csomagok telepítésétől, amely csak 4MB-os vakuval rendelkező útválasztók számára valódi probléma..
Kép publicenergy
célok
Míg az eljárásra vonatkozó utasítások részletesen a DD-WRT wikiben és a fejlesztő webhelyén találhatók, célunk, hogy ez az útmutató egy másolási és beillesztési eljárás, amelyet bárki használhat az alábbi célok eléréséhez:
- Telepítse a knockd csomagot és annak függőségeit.
- Telepítse az ssmtp csomagot NVRAM alapú generált konfigurációkkal.
- Opcionálisan a TLS smtp támogatásával (a.t.a. Gmail-támogatás).
Miután ezt az eljárást követte, lényegesen egyszerűnek kell lennie a többi csomag telepítésére.
Figyelem: A futófelület enyhén… ne feledje, hogy a módosító készlet helytelen használata hagyhatja Önt egy olyan útválasztóval, amely téglafényt igényel (mint ahogy ez egy haszontalan téglává alakítja). Ha azonban igazi geek vagy, akkor valószínűleg feliratkozik az ideológiára, hogy aki elpusztíthat egy dolgot, egy dolgot irányít, és csak igaz geekek teszik ezt
Előfeltételek
- Ezzel az eljárással tégla az útválasztó, mint az útválasztó létrehozása használhatatlan, nem vállalunk felelősséget az olyan károkért, amelyeket közvetlenül vagy más okból okozhatnak az alábbi eljárások használata.
- Ezt az eljárást Debian alapú rendszereken (Lenny, Squeeze és Mint) végeztük, és az alábbi utasítások feltételezik, hogy Ön is használ..
- Ezt az eljárást csak azok számára ajánljuk, akik tapasztalattal rendelkeznek az útválasztó DD-WRT-vel történő villogásával kapcsolatban, az összes előfeltételt, figyelmeztetést és korlátozást, amelyek a hardverbeállításukra vonatkoznak. egy jó hely, ahol elindítaná a saját otthoni útválasztóját egy nagy teljesítményű útválasztóba a DD-WRT útmutatóval.
- Az útválasztónak támogatnia kell legalább a DD-WRT „mini” változatát.
- Ezt az eljárást a Linksys WRT54GS / L útválasztókon hozták létre és tesztelték, ha más forgalmazóktól származó útválasztókat használ, a kilométere igen.
Beállít
A szükséges csomagok telepítése
A firmware-módosító készletnek van néhány függősége, hogy összeállítsa és működjön. Ahhoz, hogy mindegyiket egyszerre telepítse / frissítse, adja ki ezt a parancsot egy terminálon:
sudo aptitude telepítése gcc g ++ binutils patch bzip2 flex bison készítsen gettext-et unzip zlib1g-dev libc6 subversion
Töltse le a mod-kitet
Hozzon létre egy almappát, és kapja meg a készletet a hivatalos SVN-től:
mkdir firmware_mod_kit
cd firmware_mod_kit
svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-csak olvasható
cd firmware-mod-kit-only-only / trunk /
Töltse le a firmware-t, hogy dolgozzon
Az első dolog, hogy fontolja meg, hogy melyik verziót szeretné használni?
A hüvelykujj szabály: ha kétségei vannak, használjon „mini” -t. Ez azért van, mert amíg az útválasztó legalább a „mini” verziót támogatja, a használatával az összes leggyakrabban használt funkciót nem használhatja. így a legtöbb esetben hagyja mind az eljárásokat, mind a JFFS helyet más szokások számára.
Miután eldöntötte a verziót, ajánlott a rendelkezésre álló firmware legújabb verziója, mivel sok hibajavítással rendelkeznek a „stabil” társaikhoz képest.
Az írás idején a legfrissebb „03-17-11-r16454” volt, és ezt a módosítást a következő parancsokban használják:.
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
Annak érdekében, hogy könnyebb legyen nyomon követni, hogy melyik verziót használjuk, nevezze át a letöltött fájlt annak verziószámának megjelenítéséhez:
mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin
Ez természetesen opcionális, de az alábbi parancsok feltételezik, hogy átnevezték a fájlt.
A firmware kinyerése
Annak érdekében, hogy a firmware-ben lévő fájlokat megváltoztassuk, tartalmát ideiglenes könyvtárba kell bontani.
A parancs szintaxisa:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
Esetünkben ez lefordítaná:
./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin ./working_dir_mini1
Megjegyzés: Amikor először futtatja ezt a parancsot, a rendszer a mod-kit eszközöket épít. ez csak egyszer történik, és eltarthat egy kicsit ... tehát legyen türelmes…
Csomagok telepítése
Most, hogy a firmware-t kivonjuk, telepíthetjük a csomagokat.
Általánosságban elmondható, hogy az eljárás a csomag és annak függőségeinek letöltése az ipk fájl formájában az openWRT tárolóból. A letöltés után telepítse azokat az extrahált firmware-be a megadott szkript segítségével.
A knockd csomag
A Knockd konfigurálására és használatára vonatkozó részletes utasításokat a jövőben részletesen ismertetjük, így eldöntheted, hogy ezt a lépést most kihagyod, vagy készítsd el a jövőre való felkészülés során, mivel a Knockd nem sok helyet foglal el..
A Knockd egy olyan démon, amely a kapcsolati réteg kommunikációs eseményeit hallgatja a szekvenciákhoz, majd ezekre hat.
Ez azt jelenti, hogy a készüléket a démon futtatása nélkül is meghallgathatja a portokon (a portkeresés nem fogja őket megnyitni), és még mindig szükségessé teszi, hogy egyetlen parancsból egészen egészen felfelé teljes szkriptbe. Ezzel a technikával kiválaszthatja a kiszolgálót, hogy távolról (az interneten keresztül) végezzen bármilyen műveletet, amelyre szüksége van, anélkül, hogy az otthoni hálózatot ki kellene tennie.
A Knockd-nak csak egy felsorolt függősége van, így töltse le a csomagot és annak függőségét a következő kiadással:
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
Telepítse a „knock daemon” (knockd) ipk-t a firmware-be:
./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/
Telepítse a „packet capture” (libpcap) ipk-t a firmware-be:
./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk ./working_dir_mini1/
Mivel a „knockd” -ot egy másik konfigurációs fájl segítségével lehet meghívni (hogyan fogják magyarázni egy jövőbeni cikkben), nincs szükség más művelet végrehajtására, és átugorhat a firmware-építési szakaszra, ha az összes, amit telepíteni akartál.
Az SSMTP csomag
Az SSMTP csomag lehetővé teszi, hogy az útválasztó olyan e-mail üzeneteket küldjön, mint ahogyan azt a Hogyan telepíthetjük az E-mail figyelmeztetéseket Linuxon a Gmail vagy az SMTP kiszolgálók számára. Akkor azt ígértük, hogy megmutatjuk, hogyan konfigurálhatjuk ezt a DD-WRT-nek, és most eljuttatjuk.
Ez főleg akkor hasznos, ha az útválasztón olyan szkripteket hoz létre, amelyeket e-mailben szeretne visszajelzést kapni a működésükről.
Ez a csomag felépítése egy kicsit bonyolultabb, mint a normál Linux rendszereken, a beágyazott rendszer által bevezetett korlátozás miatt. Gyerünk… :)
A csomag letöltése:
wget http://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk
Telepítse az „ssmtp” ipk-t a firmware-be:
./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk ./working_dir_mini1/
TLS támogatás (opcionális)
Az SSMTP nem sorolja fel a többi csomagot függőségeként, azonban ha szeretné használni a TLS hitelesítést igénylő smtp átjárót (azaz. Gmail), telepítenie kell az openSSL csomagot is.
jegyzet: Van egy hatalmas hátrány ezt később a JFFS útválasztójában jelentősen csökkentett hely formájában végezzük. Vagyis az openSSL csomag kb. 500K helyet foglal el a teljes 4 MB-os (normál, nem „mega” támogató útválasztóhoz), a JFFS fölött lévő vegyülethez, és rájön, hogy a bal oldali, de drága néhány blokkja ingyenes JFFS-tér (kb. 60 KB a WRT54GL-en).
Mivel még mindig vannak olyan TLS-ek, amelyekre szükség van az SMTP-kiszolgálókra (általában az internetszolgáltatójukra), azt javaslom, hogy egy percet gondolok, ha valóban szükség van az átjárót igénylő TLS-re..
Ha úgy döntött, hogy hátránya ellenére engedélyezi a TLS támogatását, töltse le az openSSL csomagot:
wget http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk
Telepítse az „openSSL” (libopenssl) ipk-t a firmware-be:
./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/
konfigurációk
Van egy korlátozás az SSMTP csomaggal, hogy nem lehetséges alternatív konfigurációs fájl használatával.
Mivel a firmware csak olvasható, ha az útválasztón van, ez azt jelenti, hogy a dobozon kívül csak a firmware-t tudjuk kódolni..
Mi van azonban, ha nem akarjuk végigvinni az összes firmware-módosítási lépést, csak az e-mail beállítások módosításához? (például jelszóváltás).
E célból mind Jeremy (a firmware mod-kit készítő), mind magam is elérkeztünk (függetlenül, ha alázatosan hozzáadhatok), hogy az egyetlen módja ennek:
- Adja meg az ssmtp csomag által a csak olvasható helyhez tartozó konfigurációs fájlok helyét az stb. Alatt, mutasson a tmp könyvtárra, amely a futásidőben írható.
- Hozzon létre egy olyan forgatókönyvet, amely az indításkor dinamikusan generálná az NVRAM változóktól függő konfigurációkat.
Ennek érdekében további lépésekre van szükség…
Szinkronizálja az ssmtp konfigurációs könyvtárat
Amint azt fentebb kifejtettük, meg kell tennünk / Etc / ssmtp az útválasztón, mutasson a / tmp könyvtár, mint az egyetlen írható hely, amely az útválasztónál futás közben van. Ehhez törölje az ipk telepítő által létrehozott ssmtp könyvtárat:
rm -rf ./working_dir_mini1/rootfs/etc/ssmtp/
Hozzon létre egy új szimbolikus hivatkozást, amely az / etc / ssmtp-et irányítja az útválasztó gyökér fájlrendszerére, hogy abszolút elérési útként mutasson a / tmp / etc / ssmtp-re:
ln -s / tmp / etc / ssmtp / ./working_dir_mini1/rootfs/etc/ssmtp
jegyzet: Még ha ez most is logikailag néz ki, mert a csomag konfigurációs könyvtárát a firmware módosító készlet munkakönyvtárán kívülre helyezzük, biztosítom Önöket, hogy ez teljesen kifogástalan az útválasztók szempontjából futási idő alatt.
Az init parancsfájl
Bár teljesen lehetséges, hogy ezt a forgatókönyvet ne fecskendezze be a firmware-be, és később futtassa a rendszerindító parancsfájlként, úgy érzem, hogy helyénvaló, ha csak a jövőbeni használatra példaként helyezzük el.
Eredetileg Jeremy létrehozta a valaki kérésére szabott forgatókönyvet, később beállítottam és bővítettem, hogy jobban kompatibilis legyen a DD-WRT és a syslog jelentéssel.
Az új init (indítási) parancsfájl létrehozása:
vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Megjegyzés: Használhat egy másik szerkesztőt, a vi-t használom, mert összhangban van az útválasztón elérhetővel.
Készítse el ezt a tartalmat:
#! / Bin / sh
#
# cím: ssmtp_nvram.sh
# szerző: Jeremy Collake és Aviad Raviv
# site: http://www.bitsum.com, http://howtogeek.com
#
# parancsfájl a nvram vars.
# minden olyan konfigurációs fájlnál fog működni, amelyik használja
# var = értéktípus párok.
#
# az nvram változók előtagjait használja.
#
#.
# ssmtp_hostname = valami
# lefordítja az ssmtp.conf parancsot
# hostname = valami
#
logger_func ()
logger -s -p local0.notice -t SSMTP_init $ 1
logger_func "########### Elindította az SSMTP init futtatását ###########"
logger_func "Az etc könyvtár létrehozása a / tmp-ben"
[! -d / etc / ssmtp /] && mkdir -p / tmp / etc / ssmtp /
Konfigurációs_fájl = / etc / ssmtp / ssmtp.conf
NVRAM_PREFIX = ssmtp_
PACKAGE_NAME = "echo $ NVRAM_PREFIX | sed" s / _ / / "
logger_func "$ CONFIG_FILE létrehozása a (z) $ PACKAGE_NAME csomaghoz"
#echo $ 0: $ CONFIG_FILE létrehozása a $ PACKAGE_NAME csomaghoz
echo "#! / bin / sh"> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
echo "# auto generált nvram alapján $ 0" >> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
ha [-z "'nvram show | grep ssmtp'"]
azután
logger_func "Úgy tűnik, hogy nem állította be az NVRAM változókat, amelyek szükségesek a conf fájl létrehozásához"
logger_func "** Fontolja meg ezeket a parancsokat az indítási parancsfájlban:"
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 = felhasználónév"
logger_func "nvram set ssmtp_AuthPass = jelszó"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func "hozza létre az NVRAM változókat, és futtassa újra az init parancsfájlt, vagy újraindítsa a beállításokat, hogy befolyásolják azokat."
kilépés 0
fi
################################################## #########
#
# főhurok
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = "nvram show | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
i-re a $ CONFIG_VARS; csinál
echo $ i >> $ CONFIG_FILE
Kész
################################################## #########
#
# józanság ellenőrzés
#
ha [! -f "$ CONFIG_FILE"]; azután
# echo "$ 0: ERROR - nem tudott létrehozni a $ CONFIG_FILE fájlt. Talán nincs symink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ERROR - nem tudott létrehozni a $ CONFIG_FILE fájlt. Talán nincs symink / etc / XXXX -> / tmp / etc / XXXX?"
fi
logger_func "########### Befejezte az SSMTP init futtatását ###########"
Végezze el a végrehajtást:
chmod + x ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Felhívjuk a figyelmet az NVRAM várakozó változóira a parancsfájlban, felelősségünk, hogy valamit dolgozzunk, miután telepítettük a módosított firmware-t az útválasztóra.
Építsd a módosított firmware-t
Most, hogy minden a helyén van, itt az ideje, hogy csomagolja át a módosított firmware-t egy tömörített binárisra, amelyet az útválasztóhoz tudunk flashelni.
Az „build.sh” szkriptszintaxis:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY
Ehhez a mellékelt szkriptet használjuk, így a probléma:
./build_firmware.sh output_mini1 ./working_dir_mini1/
Miután a „build” művelet megtörtént, több firmware-kép lesz a „kimenet” könyvtárban.
Most már a „custom_image_00001-generic.bin” nevű fájlt villoghatja az útválasztójához, ahogyan általában egy DD-WRT firmware-t használna.
jegyzet: Ne felejtse el visszaállítani a „gyári alapértékekre” a firmware-t megelőzően, alatt és után.
Küldje el a flash lépéseket
Mivel az SSMTP-csomag NVRAM-változókat kerestünk az ssmtp konfigurációs fájl létrehozásához, most meg kell adnunk azt a hiányzó információval.
Ezt a web-GUI „Futtatás parancsok” funkciójával fogjuk elérni.
Ugrás a web-GUI -> "adminisztráció" -> "parancsok" -> beillesztésére a szövegdobozba a következőképpen:
nvram készlet [email protected]
nvram set ssmtp_mailhub = smtp.gmail.com: 587
nvram set [email protected]
nvram set ssmtp_UseSTARTTLS = YES
nvram set ssmtp_AuthUser = a-gmail-felhasználó neve (a @ gmail.com nélkül)
nvram set ssmtp_AuthPass = you-gmail-jelszó
nvram set ssmtp_FromLineOverride = YES
nvram elkötelezett
Cserélje ki a szöveget az egyenlő (=) jel után a tényleges információval, majd nyomja meg a „Futtassa a parancsokat”.
jegyzet: ha a szokásos, nem TLS-t használó smtp-kiszolgáló az 587 helyett 25-ös portot használ.
Most, hogy az SSMTP információ felhasználásra kész, meg kell hívnia az init parancsfájlt. Így újraindíthatja az útválasztót, vagy illessze be a „parancsok” szövegdobozba:
/etc/init.d/S80ssmtp
Ezután nyomja meg ismét a „Futtassa a parancsokat”.
Ennek a parancsnak a kimenete:
Tesztelje, hogy küldhet e-mailt
Illessze be ismét a következő parancsba a „parancsok” szövegdobozba:
echo "tégelyek tesztelése e-mailben 123 qwe" | ssmtp -vvv [email protected]
Ezután nyomja meg ismét a „Futtassa a parancsokat”.
Mivel a -vvv opciót extra verbitáshoz használtuk, ennek a parancsnak a kimenete:
Ha minden jól ment, másodperceken belül meg kell kapnia a teszt e-mailt.
Reméljük, hogy ezt az információt felhasználhatja az otthoni útválasztó korlátainak további elmozdítására, amint azt gondolta, hogy lehetséges, és most igazán irányíthatja otthoni útválasztóját és a DD-WRT-t.
A Linux meghosszabbítja az életet, a Linux kiterjeszti a tudatosságot ... A Linux létfontosságú a csomagok utazásához