Atlaisvinkite dar daugiau energijos iš namų maršrutizatoriaus su „DD-WRT Mod-Kit“
Mes jau parodėme, kaip modifikuoti savo namų maršrutizatorių su alternatyvia DD-WRT programine įranga, kad pagerintumėte našumą, ir šiandien mes parodysime, kaip jį dar labiau panaudoti su DD-WRT Mod-Kit.
Jei dar nesate, įsitikinkite ir patikrinkite du ankstesnius serijos straipsnius:
- Paverskite savo maršrutizatorių į „Super-Powered Router“ su DD-WRT
- Kaip padidinti „Wi-Fi“ tinklo signalą ir padidinti diapazoną su DD-WRT
Darant prielaidą, kad esate susipažinę su šiomis temomis, skaitykite toliau. Turėkite omenyje, kad šis vadovas yra šiek tiek labiau techninis, o pradedantiesiems turėtų būti atsargūs keičiant savo maršrutizatorių.
Apžvalga
Šis vadovas suteiks žingsnis po žingsnio, kaip sukurti „DD-WRT“ programinę įrangą su modifikacijomis ir papildymais naudojant „firmware modifikavimo rinkinį“.
Programinės įrangos modifikavimo rinkinys leidžia keisti aparatinę programinę įrangą nekompiliuojant iš šaltinio. Tokiu būdu, naudojant pateiktus scenarijus, tampa paprastas kai kurių failų atsisiuntimo, keitimo ir ištrynimo klausimas.
Svarbiausia priežastis naudoti šį metodą yra ta, kad pastaruoju metu „DD-WRT“ parama „Openwrt IPKG“ paketams yra nukreipta į kelvedžius, turinčius standžiųjų diskų (per USB), todėl mod-kit yra vienintelis pastovus IPKG paketų įdiegimo būdas tais atvejais, kai HD nėra. Be to, šis metodas turi papildomą pranašumą - tai atleidžia jus nuo JFFS priklausomybės nuo paketų diegimo, kuris yra tik 4MB blykstės maršrutizatoriams..
Paveikslėlis pagal viešumą
Tikslai
Nors šios procedūros instrukcijos yra išsamiai aprašytos DD-WRT wiki ir kūrėjo svetainėje, mes siekiame, kad šis vadovas taptų kopijavimo ir įklijavimo procedūra, kurią kiekvienas gali naudoti siekdamas šių tikslų:
- Įdiekite „knockd“ paketą ir jo priklausomybes.
- Įdiekite ssmtp paketą su NVRAM sukurtomis sukurtomis konfigūracijomis.
- Pasirinktinai, palaikant TLS smtp („gmail“ palaikymas).
Po to, kai atliksite šią procedūrą, ją reikėtų pritaikyti kitiems paketų įrenginiams.
Įspėjimas: Lengvai įsitempkite… turėkite omenyje, kad netinkamas modifikavimo rinkinio naudojimas gali palikti jus su maršrutizatoriumi, kuriam reikalingas plytų šalinimas (kaip tai paverčia nenaudinga plyta). Tačiau jei jūs esate tikras geekas, jūs tikriausiai prisijunkite prie ideologijos, kad tas, kuris gali sunaikinti dalyką, valdo dalyką, ir tik tai, kas yra tikra geeks.
Būtinos sąlygos
- Naudojant šią procedūrą galima plytų jūsų maršrutizatorius, kaip ir jūsų maršrutizatorius nenaudojamas, mes neprisiimame jokios atsakomybės už bet kokią žalą, kuri gali būti padaryta tiesiogiai ar kitaip išmintinga dėl toliau nurodytų procedūrų naudojimo.
- Ši procedūra buvo atlikta Debian'o sistemose („Lenny“, „Squeeze“ ir „Mint“)..
- Ši procedūra rekomenduojama tik tiems žmonėms, kurie turi patirties, naudodamiesi „DD-WRT“ su savo maršrutizatoriumi, su visomis prielaidomis, įspėjimais ir apribojimais, taikomais jų aparatinės įrangos nustatymui. gera vieta pradėti - tai „Turn Your Home Router“ į „Super-Powered Router“ su „DD-WRT“ vadovu.
- Jūsų maršrutizatorius turi palaikyti bent „DD-WRT“ „mini“ versiją.
- Ši procedūra buvo sukurta ir išbandyta „Linksys WRT54GS / L“ maršrutizatoriuose, jei naudojate kitų pardavėjų maršrutizatorius, jūsų rida gali būti labai.
Sąranka
Būtinų paketų diegimas
Programinės įrangos modifikavimo rinkinyje yra tam tikrų priklausomybių, kad ji galėtų rinkti ir dirbti. Jei norite įdiegti / atnaujinti juos visus vienu metu Išduokite šią komandą terminale:
sudo aptitude install gcc g ++ binutils pleistras bzip2 flex bison make gettext unzip zlib1g-dev libc6 subversion
Atsisiųskite mod-kit
Sukurkite antrinį aplanką ir gaukite rinkinį iš oficialaus SVN:
mkdir firmware_mod_kit
cd firmware_mod_kit
svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-tik skaityti
cd firmware-mod-kit-read-only / trunk /
Atsisiųskite programinę įrangą, kad galėtumėte dirbti
Pirmas dalykas, kurį reikia apsvarstyti, yra kokia versija, kurią norite naudoti?
Nykščio taisyklė: jei abejojate, naudokite „mini“. Taip yra todėl, kad tol, kol jūsų maršrutizatorius palaiko mažiausiai „mini“ versiją, naudodamasis juo galėsite naudotis visomis dažniausiai naudojamomis funkcijomis be jokios „Bloatware“. tokiu būdu daugeliu atvejų paliekant erdvę procedūroms ir netgi kai kurias JFFS vietas kitiems tikslams.
Kai nuspręsite dėl versijos, rekomenduojama naudoti naujausią galimą programinės įrangos versiją, nes jie paprastai turi daug klaidų, palyginti su „stabiliais“ kolegomis.
Šio rašymo metu vėliausiai buvo „03-17-11-r16454“ ir ši pataisa naudojama komandose, kurios seka.
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
Kad būtų lengviau stebėti, kokią versiją naudojame, pervadinkite atsisiųstą failą, kad būtų nurodytas jo versijos numeris:
mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin
Tai, žinoma, neprivaloma, tačiau toliau pateiktose komandose daroma prielaida, kad pervadinote failą.
Programinės įrangos išėmimas
Kad galėtumėte keisti programinės įrangos rinkmenas, turime ištraukti jo turinį į laikiną katalogą.
Šios komandos sintaksė yra:
./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
Mūsų atveju tai būtų:
./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin ./working_dir_mini1
Pastaba: pirmą kartą paleidus šią komandą, sistema sukuria mod-kit įrankius. tai vyksta tik vieną kartą ir gali užtrukti šiek tiek laiko ... todėl būkite kantrūs…
Pakuočių diegimas
Dabar, kai programinė įranga yra išgauta, mes galime ją įdiegti.
Apskritai procedūra yra atsisiųsti paketą ir jo priklausomybes ipk failo pavidalu iš openWRT saugyklos. Parsisiuntus juos įdiekite į išgautą programinę įrangą naudojant pateiktą scenarijų.
Pakartotinis paketas
Išsamios instrukcijos apie tai, kaip konfigūruoti ir naudoti „Knockd“, bus išsamiai aprašytos būsimame straipsnyje, todėl galite pasirinkti praleisti šį žingsnį dabar arba padaryti jį pasiruošdami ateičiai, nes „Knockd“ vis tiek neturi daug vietos.
„Knockd“ yra demonas, kuris klausosi ryšio įvykių, susijusių su sekų sluoksniu, o tada veikia juos.
Tai reiškia, kad jūs galite turėti įrenginį, kuriame veikia demonas, net ne „klausytis“ prievaduose (portų nuskaitymas jų nematys kaip atviras) ir vis tiek padaro tai, ko jums reikia, iš vieno komandos iki galo į visą scenarijų. Naudodami šį metodą, galite paleisti serverį atlikti bet kokią operaciją, kurią jums reikia nuotoliniu būdu (per internetą), neapsaugodami namų tinklo.
„Knockd“ turi tik vieną įrašytą priklausomybę, todėl atsisiųskite paketą ir jo priklausomybę išduodant:
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
Įdiekite „knock daemon“ (knockd) ipk į firmware:
./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/
Įdiekite „packet capture“ (libpcap) „ipk“ į firmware:
./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk ./working_dir_mini1/
Kadangi „knockd“ gali būti panaudotas naudojant alternatyvų konfigūracijos failą (kaip bus paaiškinta būsimame straipsnyje), nereikia atlikti jokios kitos operacijos ir galite pereiti prie programinės įrangos pastato dalies, jei visa tai, ką norėjote įdiegti.
SSMTP paketas
SSMTP paketas leidžia jūsų maršrutizatoriui siųsti el. Laiškus, kaip parodėme „Kaip nustatyti el. Pašto įspėjimus„ Linux “naudojant„ Gmail “arba SMTP serveriams. Tuomet pažadėjome jums, kad parodysime, kaip tai konfigūruoti DD-WRT ir dabar pristatysime.
Tai dažniausiai naudinga, jei ketinate sukurti maršrutizatoriuje skriptus, kuriuos norėtumėte gauti elektroniniu paštu.
Šio paketo sąranka yra šiek tiek sudėtingesnė, o tai yra įprasta „Linux“ sistemose dėl įterptosios sistemos apribojimo, todėl nuimkite gilų kvėpavimą… pasiruošę?…. Eime… :)
Atsisiųskite paketą:
wget http://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk
Įdiekite „ssmtp“ ipk į firmware:
./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk ./working_dir_mini1/
TLS palaikymas (pasirinktinai)
SSMTP nepateikia jokių kitų paketų kaip priklausomybių, tačiau jei norite naudoti smtp šliuzą, kuriam reikia TLS autentifikavimo (t. Y.. „Gmail“), taip pat turite įdiegti openSSL pakage.
Pastaba: Yra didžiulis trūkumas vėliau tai daroma žymiai sumažinus JFFS maršrutizatoriaus erdvę. Tai reiškia, kad openSSL paketas užima apie 500K vietos iš viso jūsų 4MB (normaliam ne „mega“ palaikančiam maršrutizatoriui), junginį prie JFFS pridėtinės ir jūs sužinosite, kad jūsų kairėje pusėje yra, bet vertingas nedaugelis blokų nemokama JFFS erdvė (apie 60KB WRT54GL).
Kadangi vis dar nėra TLS, reikalaujančių smtp serverių (paprastai jūsų IPT), siūlau užtrukti minutę, kad manytumėte, ar tikrai reikia naudoti TLS, kuriam reikalingas vartai.
Jei nusprendėte leisti TLS palaikymą nepaisant jo trūkumų, atsisiųskite openSSL paketą:
wget http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk
Įdiekite „openSSL“ (libopenssl) ipk į firmware:
./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/
Konfigūracijos
Yra SSMTP paketo apribojimas, kad neįmanoma jį pakviesti naudojant alternatyvų konfigūracijos failą.
Kadangi programinė įranga yra tik skaitymui, kai ji yra maršrutizatoriuje, tai reiškia, kad iš dėžutės mes galime tik koduoti konfigūraciją į firmware.
Tačiau kas, jei nenorime pereiti prie visų programinės įrangos modifikavimo veiksmų, tiesiog norėdami pakeisti el. Pašto nustatymus? (pvz., slaptažodžio keitimas).
Tuo tikslu Jeremy (programinės įrangos mod-kit kūrėjas) ir aš pasiekėme išvadą (nepriklausomai, jei galiu nuolankiai pridėti), kad vienintelis protingas būdas tai padaryti:
- Padarykite konfigūracijos failų vietą, kurią ssmtp paketas nurodo tik skaitymui, ir tt, nukreipkite į tmp katalogą, kurį galima rašyti vykdymo metu.
- Sukurkite scenarijų, kuris dinamiškai generuotų konfigūracijas, pagrįstas ne NVRAM kintamųjų paleidimu.
Norint tai pasiekti, reikalingi papildomi veiksmai ...
Sujunkite ssmtp konfigūracijos katalogą
Kaip paaiškinta pirmiau, turime padaryti šį / etc / ssmtp vieta maršrutizatoriuje, pažymėkite / tmp katalogas, kaip vienintelė rašytina vieta, kurią mes turime maršrutizatoriuje vykdymo metu. Norėdami tai padaryti, ištrinkite „ssmtp“ katalogą, kurį sukūrė „ipk“ diegimo programa:
rm -rf ./working_dir_mini1/rootfs/etc/ssmtp/
Sukurkite naują simbolinę nuorodą, nukreipiančią / etc / ssmtp į maršrutizatoriaus šaknų failų sistemą, norėdami nukreipti į / tmp / etc / ssmtp kaip absoliutų kelią:
ln -s / tmp / etc / ssmtp / ./working_dir_mini1/rootfs/etc/ssmtp
Pastaba: Nors šiuo metu tai atrodo nelogiška, nes mes nukreipiame paketo konfigūracijos katalogą į vietą, esančią už aparatinės programinės įrangos modifikavimo rinkinio darbo katalogo, užtikrinu, kad tai atrodo visiškai bauda nuo maršrutizatoriaus perspektyvos vykdymo metu.
Pradinis scenarijus
Nors visiškai neįmanoma švirkšti šio scenarijaus į programinę įrangą ir vėliau ją paleisti kaip paleisties scenarijų, manau, kad tai tinkama, jei ją pateikiate čia, jei tik kaip pavyzdį būsimam naudojimui.
Iš pradžių „Jeremy“ sukūrė scenarijų, pritaikytą kažkieno prašymui, vėliau pritaikiau ir papildė, kad būtų labiau suderinamas su „DD-WRT“ ir „syslog“ ataskaitomis.
Sukurkite naują „init“ (paleisties) scenarijų:
vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Pastaba: galite naudoti kitą redaktorių, naudoju vi, nes jis atitinka tai, kas galima rasti maršrutizatoriuje ...
Padarykite šį turinį:
#! / bin / sh
#
# title: ssmtp_nvram.sh
# autorius: Jeremy Collake ir Aviad Raviv
# svetainė: http://www.bitsum.com, http://howtogeek.com
#
# scenarijus, skirtas konfigūruoti failą iš nvram vars.
# veiks bet kuriame konfigūracijos faile, kuris naudoja
# var = vertės tipo poros.
#
# naudoja prefiksus nvramo kintamiesiems.
#
# t.y.
# ssmtp_hostname = kažkas
# verčia į ssmtp.conf
# hostname = kažkas
#
logger_func ()
logger -s -p local0.notice -t SSMTP_init $ 1
logger_func "########### Pradėjo SSMTP init paleisti ###########"
logger_func "etc katalogo kūrimas / 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 "$ CONFIG_FILE generavimas paketui $ PACKAGE_NAME"
#echo $ 0: kuriant $ CONFIG_FILE paketui $ PACKAGE_NAME
echo "#! / bin / sh"> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
echo "# auto generuojama pagal nvramą pagal $ 0" >> $ CONFIG_FILE
echo "#" >> $ CONFIG_FILE
jei [-z "'nvram show | grep ssmtp'"]
tada
logger_func "Atrodo, kad nenustatėte NVRAM kintamųjų, reikalingų konfigūruoti failą"
logger_func "** Apsvarstykite ** naudodami šias komandas jūsų paleisties scenarijuje:"
logger_func "nvram rinkinys [email protected]"
logger_func "nvram set ssmtp_mailhub = smtp.gmail.com: 587"
logger_func "nvram rinkinys [email protected]"
logger_func "nvram set ssmtp_UseSTARTTLS = YES"
logger_func "nvram set ssmtp_AuthUser = naudotojo vardas"
logger_func "nvram rinkinys ssmtp_AuthPass = slaptažodis"
logger_func "nvram set ssmtp_FromLineOverride = YES"
logger_func "sukuria NVRAM kintamuosius ir iš naujo paleiskite init scenarijų arba iš naujo paleiskite, kad nustatymai galėtų veikti."
išeiti 0
fi
########################################################## #########
#
# pagrindinė kilpa
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = "nvram show | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
už i $ CONFIG_VARS; daryti
echo $ i >> $ CONFIG_FILE
padaryta
########################################################## #########
#
# Sąžiningumo patikrinimas
#
jei [! -f "$ CONFIG_FILE"]; tada
# echo "$ 0: ERROR - nepavyko sukurti $ CONFIG_FILE. Galbūt nėra simink / etc / XXXX -> / tmp / etc / XXXX?"
logger_func "ERROR - nepavyko sukurti $ CONFIG_FILE. Galbūt nėra simink / etc / XXXX -> / tmp / etc / XXXX?"
fi
logger_func "########### Baigė SSMTP inicijavimo paleidimą ###########"
Padarykite jį vykdytinu:
chmod + x ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
Atkreipkite dėmesį į NVRAM laukiančius kintamuosius scenarijuje. Mūsų pareiga yra suteikti jiems ką nors dirbti, kai įdiegėme modifikuotą programinę įrangą maršrutizatoriuje.
Sukurkite modifikuotą programinę įrangą
Dabar, kai viskas yra įdiegta, atėjo laikas paketą pakeistą programinę įrangą pakuoti į suspaustą dvejetainį, kurį galime žiūrėti į maršrutizatorių.
„Build.sh“ scenarijų sintaksė yra:
./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY
Norėdami tai padaryti, naudojame pateiktą scenarijų, todėl išduokite:
./build_firmware.sh output_mini1 ./working_dir_mini1/
Kai bus atlikta „build“ operacija, „output“ kataloge bus naudojami keli „firmware“ vaizdai.
Dabar galite įjungti maršrutizatoriui failą, vadinamą „custom_image_00001-generic.bin“, kaip paprastai „DD-WRT“ firmware.
Pastaba: Nepamirškite atkurti „gamyklinių numatytųjų reikšmių“ prieš „firmware“ blykstę.
Spustelėkite „Flash“ veiksmus
Kadangi mes sukūrėme SSMTP paketą ieškoti NVRAM kintamųjų, kad galėtume sukurti ssmtp konfigūracijos failą, dabar mums reikia pateikti trūkstamą informaciją.
Tai atliksime naudodami funkciją „Vykdyti komandas“.
Eikite į žiniatinklio GUI -> „administravimas“ -> „komandos“ -> įklijuokite teksto laukelyje:
nvram rinkinys [email protected]
nvram set ssmtp_mailhub = smtp.gmail.com: 587
nvram rinkinys [email protected]
nvram rinkinys ssmtp_UseSTARTTLS = TAIP
nvram rinkinys ssmtp_AuthUser = your-gmail-user-name (be @ gmail.com)
nvram rinkinys ssmtp_AuthPass = you-gmail-password
nvram rinkinys ssmtp_FromLineOverride = YES
nvramas įsipareigoja
Pakeiskite tekstą po lygiaverčio (=) ženklo ir savo faktinę informaciją, tada paspauskite „Vykdyti komandas“.
Pastaba: jei naudojate įprastą, ne TLS naudojamą, smtp serverį, naudojamas portas yra 25 vietoj 587.
Dabar, kai SSMTP informacija yra parengta naudoti, turėsite kreiptis į init scenarijų. Taigi galite perkrauti maršrutizatorių, arba įklijuokite jį į „komandų“ teksto laukelį:
/etc/init.d/S80ssmtp
Tada dar kartą paspauskite „Vykdyti komandas“.
Šios komandos išvestis turėtų atrodyti taip:
Patikrinkite, ar galite siųsti el
Dar kartą įklijuokite šį teksto langelį į „komandas“ su šia el. Pašto adresu:
echo "bandymo tiglio siuntimas 123 qwe" | ssmtp -vvv [email protected]
Tada dar kartą paspauskite „Vykdyti komandas“.
Kadangi naudojomės -vvv parinktį papildomam verbumui, šios komandos išvestis turėtų atrodyti taip:
Jei viskas vyko gerai, bandymo el. Paštą turėtumėte gauti per kelias sekundes.
Tikimės, kad jūs galite naudoti šią informaciją, norėdami dar labiau padidinti savo namų maršrutizatoriaus ribas, o jūs manote, kad tai įmanoma, ir dabar jūs tikrai valdote savo namų maršrutizatorių ir DD-WRT.
„Linux“ prailgina gyvenimą, „Linux“ plečia sąmonę… „Linux“ yra gyvybiškai svarbi paketiniams reisams