Olemme jo osoittaneet, kuinka kodin reititintä voidaan modifioida vaihtoehtoisella DD-WRT-laiteohjelmistolla suorituskyvyn parantamiseksi huomattavasti, ja tänään aiomme näyttää, kuinka voit viedä sen vielä pidemmälle DD-WRT Mod-Kitin avulla.
Jos et ole jo tehnyt niin, varmista ja tutustu sarjan kahteen edelliseen artikkeliin:
- Muuta kotireitittimesi supertehoiseksi reitittimeksi, jossa on DD-WRT
- Kuinka tehostaa Wi-Fi-verkkosignaaliasi ja lisätä kantamaasi DD-WRT: llä
Olettaen, että olet perehtynyt näihin aiheisiin, jatka lukemista. Muista, että tämä opas on hieman teknisempi, ja aloittelijoiden tulisi olla varovaisia modifioidessaan reititintä.
Yleiskatsaus
Tässä oppaassa kerrotaan askel askeleelta, kuinka luoda oma DD-WRT-laiteohjelmisto muokkauksilla ja lisäyksillä laiteohjelmiston muokkaussarja “.
Laiteohjelmiston muokkaussarja antaa mahdollisuuden tehdä muutoksia laiteohjelmistoon kääntämättä sitä lähteestä. Muutosten tekeminen tällä tavalla toimitettujen komentosarjojen avulla tulee yksinkertaiseksi joidenkin tiedostojen lataamisesta, korvaamisesta ja poistamisesta.
Tärkein syy tämän menetelmän käyttöön johtuu siitä, että DD-WRT tukee viime aikoina Openwrt IPKG-paketit ovat siirtyneet kohti reitittimiä, joissa on kiintolevyt (USB: n kautta), mikä tekee mod-paketista ainoan johdonmukaisen tavan asentaa IPKG-paketit onnistuneesti tapauksissa, joissa HD ei ole käytettävissä. Lisäksi tällä menetelmällä on lisäetu, joka vapauttaa sinut pakettien asennuksen JFFS-riippuvuudesta, mikä reitittimille, joissa on vain 4 Mt flash-muistia, on todellinen ongelma.
Tavoitteet
Vaikka tämän menettelyn ohjeet ovat yksityiskohtaisia DD-WRT wiki ja kehittäjän sivusto , pyrimme tekemään tästä oppaasta kopiointi- ja liittämismenettelyn, jota kuka tahansa voi käyttää seuraavien tavoitteiden saavuttamiseksi:
- Asenna knockd-paketti ja sen riippuvuudet.
-
Asenna ssmtp-paketti NVRAM-pohjaisten luotujen kokoonpanojen kanssa.
- Valinnaisesti tuella TLS smtp: lle (alias Gmail-tuki).
Kun olet noudattanut tätä menettelyä, sen on oltava asiaankuuluvaa mukauttaa muille pakettiasennuksille.
Varoitus
:
Kulje kevyesti ... pidä mielessä, että muokkaussarjan väärä käyttö voi jättää tarvitsemasi reitittimen
muuraus
(kuten puolestaan siitä tulee a
hyödytön tiili
). Kuitenkin, jos olet todellinen nörtti, olet todennäköisesti sitoutunut ideologiaan,
joka voi tuhota asian, hallitsee asiaa
, ja vain todelliset nörtit tekevät sen
Edellytykset
- Tämän menettelyn käyttäminen voi tiili reitittimesi, kuten reitittimesi käyttökelvoton, emme ota vastuuta vahingoista, jotka saattavat aiheutua suoraan tai muulla tavoin seuraavien menettelyjen käytöstä.
- Tämä toimenpide suoritettiin Debian-pohjaisissa järjestelmissä (Lenny, Squeeze ja Mint), ja alla olevissa ohjeissa oletetaan, että käytät myös yhtä.
- Tätä menettelyä suositellaan vain ihmisille, joilla on kokemusta reitittimen vilkkumisesta DD-WRT: llä kaikilla laitteiston asetuksiin liittyvillä edellytyksillä, varoituksilla ja rajoituksilla. hyvä paikka aloittaa olisi meidän Muuta kotireitittimesi supertehoiseksi reitittimeksi, jossa on DD-WRT opas.
- Reitittimesi on tuettava ainakin DD-WRT: n "mini" -versiota.
- Tämä menettely luotiin ja testattiin Linksys WRT54GS / L -reitittimillä, jos käytät muiden toimittajien reitittimiä, mittarilukema voi olla hyvin.
Perustaa
Vaadittujen pakettien asentaminen
Laiteohjelmiston muokkaussarjalla on joitain riippuvuuksia sen kokoamisessa ja toiminnassa. Asentaa / päivittää ne kaikki kerralla Anna tämä komento terminaalissa:
sudo aptitude install gcc g ++ binutils patch bzip2 flex bison make gettext unzip zlib1g-dev libc6 subversion
Lataa mod-kit
Luo alikansio ja hanki paketti viralliselta SVN: ltä:
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-only-read / runko /
Lataa laiteohjelmisto toimiakseen
Ensinnäkin on harkittava, mitä versiota haluat käyttää?
Nyrkkisääntö on: jos olet epävarma, käytä “mini” -merkkiä. Tämä johtuu siitä, että niin kauan kuin reititin tukee ainakin "mini" -versiota, sen käyttö antaa sinulle kaikki yleisimmin käytetyt ominaisuudet ilman bloatware-ohjelmistoa. jättäen siten tilaa sekä toimenpiteille että jopa jonkin verran JFFS-tilaa
muut käyttötavat
useimmissa tapauksissa.
Kun olet päättänyt version, on suositeltavaa käyttää uusinta saatavilla olevaa laiteohjelmistoversiota, koska niillä on yleensä paljon virhekorjauksia "vakaisiin" vastineisiinsa verrattuna.
Tämän kirjoituksen ajankohtana viimeisin oli "03-17-11-r16454", ja tätä versiota käytetään seuraavissa komennoissa.
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
Nimeä ladattu tiedosto uudelleen sen versionumeron mukaiseksi, jotta käytetyn version seuranta olisi helpompaa:
mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin
Tämä on tietysti valinnainen, mutta alla olevissa komennoissa oletetaan, että olet nimennyt tiedoston uudelleen.
Laiteohjelmiston purkaminen
Jotta voimme muuttaa tiedostoja laiteohjelmistossa, meidän on purettava sen sisältö väliaikaiseen hakemistoon.
Tämän komennon syntaksi on:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
Meidän tapauksessamme tämä tarkoittaa seuraavaa:
./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin ./working_dir_mini1
Huomaa: Kun suoritat tämän komennon ensimmäisen kerran, se rakentaa mod-kit-työkalut järjestelmääsi. tämä tapahtuu vain kerran ja voi viedä hetken ... joten ole kärsivällinen ...
Pakettien asentaminen
Nyt kun laiteohjelmisto on purettu, voimme asentaa paketit siihen.
Yleensä menettely on ladata paketti ja sen riippuvuudet ipk-tiedoston muodossa
openWRT-arkisto
. Kun olet ladannut, asenna ne purettuun laiteohjelmistoon mukana toimitetun komentosarjan avulla.
Knockd-paketti
Yksityiskohtaiset ohjeet Knockdin määrittämiseen ja käyttämiseen ovat yksityiskohtaiset tulevassa artikkelissa, joten voit jättää tämän vaiheen toistaiseksi väliin tai tehdä sen valmistautuessasi tulevaisuuteen, koska Knockd ei vie paljon tilaa.
Knockd on daemon, joka kuuntelee kommunikaatiotapahtumia linkkikerroksessa sekvenssejä varten ja toimii sitten niihin.
Tämä tarkoittaa sitä, että voit saada laitteen suorittamaan daemonin edes "kuuntelemasta" portteissa (porttiskannaus ei näe niitä avoimina) ja saa silti tekemään sen mitä tarvitset, yhdellä komennolla kaikki
ylös
täydelliseen käsikirjoitukseen.
Käyttämällä tätä tekniikkaa
voit käynnistää palvelimen suorittamaan minkä tahansa tarvitsemasi toiminnon sitä etänä (Internetissä) altistamatta kotiverkkoasi.
Knockdilla on vain yksi lueteltu riippuvuus, joten lataa paketti ja sen riippuvuus julkaisemalla:
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
Asenna “knock daemon” (knockd) ipk laiteohjelmistoon:
./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/
Asenna “packet capture” (libpcap) ipk laiteohjelmistoon:
./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk ./working_dir_mini1/
Koska “knockd” voidaan kutsua vaihtoehtoisella kokoonpanotiedostolla (miten se selitetään tulevassa artikkelissa), muita toimintoja ei tarvitse suorittaa, ja voit siirtyä laiteohjelmiston rakennusosaan, jos kaikki, mitä halusit asentaa.
SSMTP-paketti
SSMTP-paketin avulla reitittimesi voi lähettää sähköpostiviestejä samalla tavalla kuin näytimme
Sähköpostihälytysten määrittäminen Linuxissa Gmailin tai SMTP: n avulla
palvelimille. Lupaimme sinulle tuolloin, että näytämme, kuinka tämä voidaan määrittää DD-WRT: lle, ja toimitamme nyt.
Tämä on hyödyllistä lähinnä, jos aiot luoda reitittimelle komentosarjoja, joista haluat saada palautetta niiden toiminnasta sähköpostitse.
Tämän paketin asennus on hieman monimutkaisempi kuin normaalissa Linux-järjestelmässä sulautetun järjestelmän asettaman rajoituksen takia, joten hengitä syvään… valmis?…. mennään… :)
Lataa paketti:
wget http://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk
Asenna “ssmtp” ipk laiteohjelmistoon:
./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk ./working_dir_mini1/
TLS-tuki (valinnainen)
SSMTP ei luetella muita paketteja riippuvuuksina, mutta jos haluat pystyä käyttämään smtp-yhdyskäytävää, joka vaatii TLS-todennuksen (ts.
Gmail
), sinun on asennettava myös openSSL-paketti.
Huomautus
: On valtava
haittana
tehdä tämä huomattavasti vähentyneen tilan muodossa reitittimessä JFFS: ää varten myöhemmin. Toisin sanoen openSSL-paketti vie noin 500 kt tilaa 4 Mt: n kokonaismäärästä (normaalille ei-mega-tukevalle reitittimelle), yhdistettynä siihen JFFS: n yleiskustannuksiin ja huomaat, että vasemmalla on vain muutama arvokas lohko vapaa JFFS-tila (noin 60 kt WRT54GL: llä).
Koska siellä on edelleen muita kuin TLS-palveluita, jotka vaativat smtp-palvelimia (yleensä Internet-palveluntarjoajasi), suosittelen ottamaan hetken aikaa miettimään, onko sinun todella käytettävä TLS: tä, joka vaatii yhdyskäytävän.
Jos olet päättänyt ottaa TLS-tuen käyttöön haitasta huolimatta, lataa openSSL-paketti:
wget http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk
Asenna “openSSL” (libopenssl) ipk laiteohjelmistoon:
./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/
Kokoonpanot
SSMTP-paketilla on rajoitus, että sitä ei voida kutsua vaihtoehtoisella kokoonpanotiedostolla.
Koska laiteohjelmisto on vain luku, kun se on reitittimessä, se tarkoittaa, että voimme laatikosta vain koodata kokoonpanon laiteohjelmistoon.
Entä jos emme halua käydä läpi kaikkia laiteohjelmiston muokkausvaiheita vain muuttaaksesi sähköpostiasetuksia? (esimerkiksi salasanan vaihto).
Tätä varten sekä Jeremy (laiteohjelmiston mod-kit-luoja) että minä päädyimme siihen johtopäätökseen (jos voin nöyrästi lisätä), että ainoa järkevä tapa tehdä tämä olisi:
- Tee kokoonpanotiedostojen sijainti, johon ssmtp-paketti osoittaa vain luku -kohdan jne. Alla, osoita tmp-hakemistoa, johon voidaan kirjoittaa ajon aikana.
- Luo komentosarja, joka generoi kokoonpanot dynaamisesti NVRAM-muuttujien perusteella käynnistyksen yhteydessä.
Tämän saavuttamiseksi tarvitaan joitain lisätoimenpiteitä…
Symlink ssmtp-määrityshakemisto
Kuten edellä on selitetty, meidän on tehtävä
/ etc / ssmtp
sijainti reitittimessä, osoita
/ tmp
hakemisto on ainoa kirjoitettava paikka reitittimellä ajon aikana. Voit tehdä tämän poistamalla ssmtp-hakemiston, jonka ipk-asennusohjelma on luonut:
rm -rf ./working_dir_mini1/rootfs/etc/ssmtp/
Luo uusi symbolinen linkki, joka osoittaa / etc / ssmtp: n reitittimen juuritiedostojärjestelmässä osoittamaan / tmp / etc / ssmtp absoluuttisena polkuna:
ln -s / tmp / etc / ssmtp / ./working_dir_mini1/rootfs/etc/ssmtp
Huomautus : Vaikka tämä näyttää nyt epäloogiselta, koska osoitamme paketin määrityshakemiston sijaintiin, joka on laiteohjelmiston muokkaussarjan työhakemiston ulkopuolella, vakuutan teille, että tämä näyttää reitittimien näkökulmasta ajon aikana täysin hieno.
Init-komentosarja
Vaikka on täysin mahdollista jättää tämä komentosarja laiteohjelmistoon ja käyttää sitä käynnistyskoodina myöhemmin, mielestäni on tarkoituksenmukaista laittaa se tänne, jos vain esimerkkinä tulevaa käyttöä varten.
Alun perin Jeremy loi komentosarjan räätälöityä jonkun pyynnölle, myöhemmin muutin ja laajensin sitä yhteensopivammaksi DD-WRT- ja syslog-raporttien kanssa.
Luo uusi init (käynnistys) komentosarja:
vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Huomaa: Voit käyttää toista muokkausohjelmaa, minä käytän vi, koska se on yhteensopiva reitittimen käytettävissä olevan kanssa ...
Tee tästä sisältö:
#! / bin / sh
#
# title: ssmtp_nvram.sh
# kirjailija: Jeremy Collake ja Aviad Raviv
# sivusto: http://www.bitsum.com, http://howtogeek.com
#
# script rakentaa konfigurointitiedosto nvram varsista.
# toimii kaikissa määritystiedostoissa, jotka käyttävät
# var = arvotyyppiparit.
#
# käyttää etuliitteitä nvram-muuttujille.
#
# и.е.
# ssmtp-isäntänimi = jotain
# tarkoittaa ssmtp.conf
# isäntänimi = jotain
#
logger_func ()
{
logger -s -p local0.notice -t SSMTP_init $ 1
}
logger_func "############ Aloitti SSMTP-aloituksen ajon ############"
logger_func "etc-hakemiston luominen hakemistossa / 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 "Luodaan $ CONFIG_FILE paketille $ PACKAGE_NAME"
#echo $ 0: $ CONFIG_FILE luodaan paketille $ PACKAGE_NAME
echo "#! / bin / sh"> $ CONFIG_FILE
kaiku "#" >> $ CONFIG_FILE
echo "# luodaan automaattisesti nvram: n perusteella $ 0" >> $ CONFIG_FILE
kaiku "#" >> $ CONFIG_FILE
jos [ -z "`nvram show | grep ssmtp`" ]
sitten
logger_func "Vaikuttaa siltä, että et ole asettanut NVRAM-muuttujia, jotka tarvitaan conf-tiedoston luomiseen"
logger_func "** Harkitse ** näiden komentojen käyttöä käynnistyskomentosarjassa:"
logger_func "nvram set ssmtp_root=käyttäjä[email protected]"
logger_func "nvram set ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram set ssmtp_hostname=käyttäjä[email protected]"
logger_func "nvram set ssmtp_UseSTARTTLS = KYLLÄ"
logger_func "nvram set ssmtp_AuthUser = käyttäjänimi"
logger_func "nvram set ssmtp_AuthPass = salasana"
logger_func "nvram set ssmtp_FromLineOverride = KYLLÄ"
logger_func "luo NVRAM-muuttujat ja suorita init-komentosarja tai käynnistä uudelleen, jotta asetukset vaikuttavat."
Lopeta 0
olla
###########################################################
#
# pääsilmukka
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = `nvram-esitys | grep $ NVRAM_PREFIX | sed "$ SED_COMMAND" "
i: lle dollarissa $ CONFIG_VARS; tehdä
echo $ i >> $ CONFIG_FILE
tehty
###########################################################
#
# terveystarkastus
#
jos [ ! -f "$CONFIG_FILE" ]; sitten
# echo "$ 0: ERROR - $ CONFIG_FILE ei voitu luoda. Ehkä ei ole symink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "VIRHE - $ CONFIG_FILE ei voitu luoda. Ehkä ei ole symink / etc / XXXX -> / tmp / etc / XXXX?"
olla
logger_func "############ SSMTP-aloituksen suorittaminen valmis ############"
Tee siitä suoritettava:
chmod + x ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Ota huomioon komentosarjassa olevat NVRAM-odotusmuuttujat, meidän vastuullamme on antaa heille jotain työtä sen jälkeen, kun olemme asentaneet muokatun laiteohjelmiston reitittimeen.
Luo muokattu laiteohjelmisto
Nyt kun kaikki on paikallaan, on aika pakata muokattu laiteohjelmisto pakattuun binaariin, jonka voimme välittää reitittimeen.
Komentosarjan "build.sh" syntaksi on:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY
Tätä varten käytämme mukana toimitettua komentosarjaa, joten anna:
./build_firmware.sh output_mini1 ./working_dir_mini1/
Kun "koontitoiminto" on valmis, "output" -hakemistossa on useita laiteohjelmakuvia, jotka odottavat käyttöä.
Voit nyt vilkuttaa tiedostoa nimeltä “custom_image_00001-generic.bin” reitittimellesi nimellä normaalisti DD-WRT-laiteohjelmisto .
Huomautus : Älä unohda palauttaa "tehdasasetukset" ennen laiteohjelman vilkkumista, sen aikana ja heti sen jälkeen.
Lähetä flash-vaiheet
Koska saimme SSMTP-paketin etsimään NVRAM-muuttujia ssmtp-määritystiedoston luomiseksi, meidän on nyt toimitettava sille puuttuvat tiedot.
Saavutamme tämän käyttämällä web-GUI: n Suorita komennot -toimintoa.
Siirry web-käyttöliittymään -> "hallinto" -> "komennot" -> liitä tekstiruutuun seuraava:
nvram aseta ssmtp_root=sähkö[email protected]
nvram set ssmtp_mailhub = smtp.gmail.com: 587
nvram aseta ssmtp_hostname=sähkö[email protected]
nvram set ssmtp_UseSTARTTLS = KYLLÄ
nvram set ssmtp_AuthUser = sinun-gmail-käyttäjänimesi (ilman @ gmail.com)
nvram set ssmtp_AuthPass = sinä-gmail-salasana
nvram set ssmtp_FromLineOverride = KYLLÄ
nvram sitoutua
Korvaa teksti yhtälön (=) merkin jälkeen todellisilla tiedoillasi ja paina sitten Suorita komennot.
Huomautus
: Jos käytät tavallista, muuta kuin TLS-protokollaa käyttävää, smtp-palvelinta, portti on 25 eikä 587.
Nyt kun SSMTP-tiedot ovat käyttövalmiita, sinun on kutsuttava init-komentosarja. Joten voit joko käynnistää reitittimen uudelleen tai liittää tämän komentot-tekstiruutuun:
/etc/init.d/S80ssmtp
Paina sitten "Suorita komennot" uudelleen.
Tämän komennon lähdön tulisi näyttää tältä:
Testaa, että voit lähettää sähköpostia
Liitä tämä uudelleen komentot-ruutuun seuraava komento sähköpostiosoitteellasi:
kaiku "testataan upokkaan lähettämistä sähköpostitse 123 qwe" | ssmtp -vvv@sähköposti.com
Paina sitten "Suorita komennot" uudelleen.
Koska käytimme -vvv-vaihtoehtoa ylimääräiseen sanallisuuteen, tämän komennon lähdön pitäisi näyttää:
Jos kaikki meni hyvin, sinun pitäisi saada testisähköposti muutamassa sekunnissa.
Toivomme, että voit käyttää näitä tietoja kotireitittimen rajojen ylittämiseen pidemmälle kuin luulit mahdolliseksi ja sinä nyt ohjaa todella kotireitittimiäsi ja DD-WRT: tä …
Linux pidentää elämää, Linux laajentaa tietoisuutta ... Linux on elintärkeää pakettimatkoille