לשחרר עוד יותר כוח מהנתב הבית שלך עם DD-WRT Mod-Kit
אנחנו כבר הראו לך איך mod נתב הבית שלך עם קושחה חלופה DD-WRT עבור ביצועים משופרים מאוד, והיום אנחנו הולכים להראות לך איך לקחת את זה עוד יותר עם DD-WRT Mod-Kit.
אם עדיין לא עשית זאת, הקפד לבדוק את שני המאמרים הקודמים בסדרה:
- הפעל נתב הבית שלך לתוך נתב סופר מופעל עם DD-WRT
- כיצד לשפר את רשת ה- Wi-Fi אות ולהגדיל טווח עם DD-WRT
בהנחה שאתה מכיר את הנושאים האלה, תמשיך לקרוא. זכור כי מדריך זה הוא קצת יותר טכני, ו beginners צריך להיות זהיר בעת modding הנתב שלהם.
סקירה כללית
מדריך זה ייתן צעד אחר צעד rundown של איך ליצור משלך DD-WRT קושחה עם שינויים ותוספות באמצעות "ערכת שינוי קושחה".
ערכת שינוי הקושחה מאפשרת לבצע שינויים בקושחה מבלי להרכיב אותה מהמקור. ביצוע שינויים בדרך זו, בעזרת התסריטים שסופקו, הופך להיות עניין פשוט של הורדת, החלפת ומחיקת כמה קבצים.
הסיבה השכיחה ביותר לשימוש בשיטה זו היא כי לאחרונה התמיכה של DD-WRT בחבילות Openwrt IPKG השתנתה לקראת נתבים הכוללים כוננים קשיחים (באמצעות USB), מה שהופך את ערכת ה- mod לדרך היחידה לעבוד באופן עקבי על התקנת חבילות IPKG בהצלחה במקרים שבהם HD אינו זמין. בנוסף, שיטה זו יש את היתרון הנוסף של relieving לך את התלות JFFS עבור התקנת חבילות, אשר נתבים עם רק 4MB של פלאש הוא בעיה אמיתית.
תמונה של publicenergy
מטרות
בעוד ההנחיות עבור הליך זה, מפורטים על ויקי של WD-WRT ועל האתר של היזם, אנו שואפים להפוך את המדריך הזה להעתיק ולהדביק הליך שכל אחד יכול להשתמש כדי להשיג את המטרות הבאות:
- התקן את החבילה knockd ואת התלות שלה.
- התקן את החבילה ssmtp עם NVRAM מבוסס תצורות שנוצר.
- לחלופין, עם תמיכה ב- SMTP של TLS (a.k.a תמיכה ב- Gmail).
ברגע שיש לך בעקבות הליך זה זה צריך להיות פשוט יחסית כדי להתאים אותו עבור חבילות אחרות התקנות.
אזהרה: לדרוך קלות ... זכור כי שימוש שגוי של ערכת שינוי, יכול להשאיר אותך עם נתב זה צריך לבנים לבנים (כמו להפוך אותו לבנים חסרות תועלת). עם זאת, אם אתה חנון אמיתי אתה כנראה מנוי על האידיאולוגיה כי, מי יכול להרוס דבר, שולט על דבר, ורק גיקים נכון לעשות את זה
תנאים מוקדמים
- באמצעות הליך זה יכול לבנים הנתב שלך, כמו לעשות את הנתב לא שמיש, איננו נוטלים על עצמנו כל אחריות לנזקים העלולים להיגרם במישרין או בחוכמה אחרת עקב השימוש בנהלים שלהלן.
- הליך זה בוצע על מערכות מבוססות דביאן (לני, סחיטה ומנטה) וההוראות שלהלן מניחות שאתה משתמש גם באחד.
- הליך זה מומלץ רק עבור אנשים שיש להם ניסיון עם מהבהב הנתב שלהם עם DD-WRT, עם כל התנאים המוקדמים, אזהרות ומגבלות החלות על הגדרת החומרה שלהם. מקום טוב להתחיל יהיה להפוך את הנתב הביתה לתוך נתב סופר מופעל עם מדריך DD-WRT.
- הנתב שלך צריך לתמוך לפחות את "מיני" גירסה של DD-WRT.
- נוהל זה נוצר ונבדק על נתבים Linksys WRT54GS / L, אם הנתבים שלך באמצעות ספקים אחרים, קילומטראז שלך עשוי מאוד.
להכין
התקנת חבילות דרושות
ערכת שינוי קושחה יש כמה תלות עבור זה לקמפל ולעבוד. כדי להתקין / לעדכן את כולם בבת אחת בעיה זו פקודה במסוף:
sudo aptitude להתקין gcc g + + binutils תיקון bzip2 להגמיש ביזון לעשות gettext לפוצץ zlib1g-dev libc6 חתרנות
הורד את ערכת mod
יצירת תיקיית משנה, ולקבל את הערכה מ SVN הרשמי:
mkdir firmware_mod_kit
cd
svn checkout http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-read-only
cd firmware-mod-kit-read-only / trunk /
הורד קושחה לעבודה
הדבר הראשון שיש לקחת בחשבון הוא איזו גירסה אתה רוצה להשתמש?
כלל אצבע הוא: כאשר ספק להשתמש "מיני". הסיבה לכך היא כי כל עוד הנתב שלך תומך לפחות את "מיני" גירסה, באמצעות זה נותן לך את כל התכונות הנפוצות ביותר ללא כל bloatware. ובכך משאירים את שניהם מקום עבור נהלים ואפילו קצת שטח JFFS עבור שימושים אחרים ברוב המקרים.
לאחר שהחלטת על גרסה, מומלץ להשתמש בגרסה העדכנית ביותר של הקושחה הזמינה, שכן הם נוטים לקבל הרבה תיקוני באגים בהשוואה לעמיתיהם "היציבים".
בזמן כתיבת שורות אלה, האחרונה היתה "03-17-11-r16454" והשינוי הזה משמש בפקודות הבאות.
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
כדי להקל על מעקב אחר הגרסה שבה אנו משתמשים, שנה את שם הקובץ שהורדת כדי לייצג את מספר הגירסה שלו:
mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin
זה כמובן אופציונלי, אבל הפקודות להלן להניח שיש לך את השם של הקובץ.
מחלץ את הקושחה
על מנת להיות מסוגל לשנות את הקבצים בתוך הקושחה אנחנו צריכים לחלץ את התוכן לספרייה זמנית.
התחביר של פקודה זו הוא:
.FIRMWARE_IMAGE WORKING_DIRECTORY
במקרה שלנו, זה יתורגם ל:
./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin ./working_dir_mini1
הערה: בפעם הראשונה שתפעיל פקודה זו, היא בונה את כלי ה- mod-Kit במערכת שלך. זה קורה רק פעם אחת עלול לקחת קצת ... אז להיות סבלני ...
התקנת חבילות
עכשיו, כי הקושחה הוא חילוץ אנחנו יכולים להתקין את החבילות אליו.
באופן כללי, ההליך הוא להוריד את החבילה ואת התלות שלה בצורה של קובץ ipk ממאגר OpenWRT. לאחר ההורדה להתקין אותם לתוך קושחה שחולצו באמצעות התסריט שסופק.
החבילה
הוראות מפורטות כיצד להגדיר ולהשתמש Knockd יהיה מפורט במאמר בעתיד, אז אתה יכול לבחור לדלג על שלב זה לעת עתה או לעשות את זה כהכנה לקראת העתיד כמו Knockd לא לוקח הרבה מקום בכל מקרה.
Knockd הוא daemon כי מאזין לאירועים תקשורת בשכבת הקישור עבור sequences ואז פועל עליהם.
מה זה אומר, כי אתה יכול לקבל את המכשיר מפעיל את daemon אפילו לא "להקשיב" על יציאות (יציאת סריקה לא רואה אותם כמו לפתוח) ועדיין לגרום לזה לעשות משהו שאתה צריך, מתוך פקודה אחת כל הדרך למעלה לסקריפט מלא. באמצעות טכניקה זו אתה יכול להפעיל את השרת לבצע כל סוג של פעולה שאתה צריך את זה מרחוק (ברחבי האינטרנט) ללא חשיפת הרשת הביתית שלך.
Knockd יש רק תלות אחת ברשימה, כדי להוריד את החבילה ואת התלות על ידי הנפקת:
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
התקן את "דמון לדפוק" (דפיקה) ipk לתוך הקושחה:
./ipkg_install.sh knockd_0.5-1_mipsel.ipk ./working_dir_mini1/
התקן את "ללכוד מנות" (libpcap) ipk לתוך הקושחה:
./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk ./working_dir_mini1/
כמו "דפיקה" ניתן להפעיל עם קובץ תצורה חלופי (איך יוסבר במאמר בעתיד), אין צורך לבצע כל פעולה אחרת ואתה יכול לדלג על סעיף הקושחה הבניין, אם כל מה שאתה רוצה להתקין.
חבילת SSMTP
חבילת SSMTP מאפשרת לנתב שלך לשלוח הודעות דוא"ל בדיוק כפי שהראינו ב כיצד להגדיר התראות דוא"ל על לינוקס באמצעות Gmail או SMTP עבור שרתים. הבטחנו לך אז כי אנו נראה כיצד להגדיר את זה עבור DD-WRT ואנו כעת לספק.
זה שימושי במיוחד אם שלך הולך ליצור סקריפטים על הנתב כי אתה רוצה לקבל משוב על הפעולה שלהם באמצעות הדוא"ל.
התקנה זו של החבילה היא קצת יותר מורכבת אז זה על מערכות לינוקס רגיל בגלל המגבלה שהוטלו על ידי מערכת מוטבע, אז לקחת נשימה עמוקה ... מוכן? בוא נלך… :)
הורד את החבילה:
wget http://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk
התקן את "ssmtp" ipk לתוך הקושחה:
./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk ./working_dir_mini1/
תמיכה TLS (אופציונלי)
SSMTP אינו מפרט את כל החבילות האחרות כתלות שלו, אולם אם ברצונך להשתמש בשער SMTP המחייב אימות TLS (כלומר. Gmail), אתה צריך להתקין את pakage openSSL גם כן.
הערה: יש ענק חסרון כדי לעשות זאת בצורה של שטח מופחת במידה ניכרת על הנתב עבור JFFS מאוחר יותר. כלומר, חבילת OpenSSL לוקחת בערך 500K של שטח מתוך סך של 4 מגה-בייט (עבור נתב נורמלי שאינו "מגה" נתמך), מתרכב כי תקורה JFFS תגלו כי שמאל שלך עם, אבל כמה יקר, בלוקים של ללא תשלום שטח JFFS (כ 60KB על WRT54GL).
כאשר יש עדיין TLS שאינם דורשים שרתי smtp שם בחוץ (בדרך כלל ספק שירותי האינטרנט שלך), אני מציע לקחת רגע לחשוב אם אתה באמת צריך להשתמש TLS הדורש שער.
אם החלטתם לאפשר תמיכה ב- TLS למרות החסרון שלה, הורד את החבילה openSSL:
wget http://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk
התקן את "openSSL" (libopenssl) ipk לתוך הקושחה:
./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk ./working_dir_mini1/
תצורות
יש הגבלה עם חבילת SSMTP, כי לא ניתן להפעיל אותה עם קובץ תצורה חלופי.
בגלל הקושחה היא לקריאה בלבד כאשר שלה על הנתב, כלומר, מתוך תיבת אנחנו יכולים רק hardcode את התצורה לתוך הקושחה.
עם זאת, מה אם אנחנו לא רוצים לעבור את כל השלבים שינוי קושחה, רק כדי לשנות את הגדרות הדוא"ל? (לדוגמה שינוי סיסמה).
לשם כך, גם ג'רמי (יצרנית הקושחה של מודול הקושחה) ואני הגענו למסקנה (באופן עצמאי אם יורשה לי להוסיף בענווה) שהדרך השפויה היחידה לעשות זאת תהיה:
- הפוך את מיקום קבצי התצורה אשר חבילת ssmtp מצביע על מיקום לקריאה בלבד תחת וכו ', הצבע על ספריית tmp אשר ניתן לכתוב אל בזמן ריצה.
- צור סקריפט שיביא באופן דינמי את התצורות המבוססות על הנחה של משתני NVRAM בעת ההפעלה.
כדי להשיג זאת, נדרשים כמה צעדים נוספים ...
קישור לספריית התצורה של ssmtp
כפי שהוסבר לעיל, אנחנו צריכים לעשות את / etc / ssmtp מיקום על הנתב, הצבע על / tmp ספריה כמו שלה מקום לכתיבה רק לנו על הנתב בזמן ריצה. לשם כך, מחק את ספריית ssmtp שנוצרה על-ידי מתקין ה- ipk:
rm -rf ./working_dir_mini1/rootfs/etc/ssmtp/
צור קישור סימבולי חדש המצביע על / etc / ssmtp במערכת הקבצים השורש של הנתב, כדי להצביע על / tmp / etc / ssmtp כנתיב מוחלט:
ln -s / tmp / etc / ssmtp / ./working_dir_mini1/rootfs/etc/ssmtp
הערה: למרות שזה נראה לא הגיוני כרגע, כי אנחנו מצביעים על ספריית התצורה של החבילה למקום מחוץ לספריית העבודה של שינוי קושחה קיט, אני מבטיח לך שזה נראה בסדר גמור מנקודת המבט נתבים בזמן ריצה.
סקריפט init
אמנם זה לגמרי לא ניתן להזריק את התסריט לתוך הקושחה ולהפעיל אותו כתסריט ההפעלה מאוחר יותר, אני מרגיש את זה מתאים לשים את זה כאן רק אם כדוגמה לשימוש עתידי.
במקור ג'רמי יצר את התסריט המותאם לבקשה של מישהו, מאוחר יותר, התאימו אותו והוספתי אותו כך שיהיה תואם יותר ל- DD-WRT ולדיווח של syslog.
צור את script ה- init (startup) החדש:
vi ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
הערה: אתה יכול להשתמש בעורך אחר, אני משתמש ב- vi כי עקביות עם מה זמין על הנתב ...
הפוך את התוכן שלו:
#! / bin / sh
#
# title: ssmtp_nvram.sh
# מחבר: ג'רמי קוליק ואביעד רביב
# אתר: http://www.bitsum.com, http://howtogeek.com
#
# script כדי לבנות קובץ config מתוך nvram vars.
# יפעל עבור כל קובץ תצורה המשתמש
# var = סוג זוגות ערך.
#
# משתמש בקידומות עבור משתני nvram.
#
# כלומר.
# ssmtp_hostname = משהו
# מתרגמת ל ssmtp.conf
# hostname = משהו
#
logger_func ()
logger -s -p local0.notice-SSMTP_init $ 1
logger_func "########### הפעלת הפעלת ההתחלה של SSMTP ###########"
logger_func "יצירת ספרייה וכו 'ב / tmp"
[ -d / etc / ssmtp /] & & mkdir -p / tmp / etc / ssmtp /
CONFIG_FILE = / etc / ssmtp / ssmtp.conf
NVRAM_PREFIX = ssmtp_
PACKAGE_NAME = "echo $ NVRAM_PREFIX | sed" / _ / / "
logger_func "יצירת $ CONFIG_FILE לחבילה $ PACKAGE_NAME"
#echo $ 0: יצירת $ CONFIG_FILE לחבילה $ PACKAGE_NAME
הד "#! / bin / sh"> $ CONFIG_FILE
הד "#" >> $ CONFIG_FILE
הד "# אוטומטי שנוצר בהתבסס על nvram על ידי $ 0" >> $ CONFIG_FILE
הד "#" >> $ CONFIG_FILE
אם [-z "'nvram show | grep ssmtp'"]
לאחר מכן
logger_func "נראה כי לא הגדרת את המשתנים NVRAM הדרושים כדי ליצור את הקובץ conf"
logger_func "** שקול ** באמצעות פקודות אלה לך סקריפט ההפעלה:"
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 = כן"
logger_func "nvram set ssmtp_AuthUser = שם משתמש"
logger_func "nvram set ssmtp_AuthPass = סיסמה"
logger_func "nvram set ssmtp_FromLineOverride = כן"
logger_func "ליצור את המשתנים NVRAM ולהפעיל מחדש את התסריט init או לאתחל את ההגדרות כדי לקחת להשפיע."
יציאה 0
Fi
################################### #########
#
# לולאה הראשי
#
SED_COMMAND = "s / $ NVRAM_PREFIX / /"
CONFIG_VARS = "nvram show | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
אני ב $ CONFIG_VARS; לעשות
echo $ i >> $ CONFIG_FILE
בוצע
################################### #########
#
# בדיקת שפיות
#
אם [ ! -f "$ CONFIG_FILE"]; לאחר מכן
# echo "$ 0: ERROR - לא יכול ליצור $ CONFIG_FILE, אולי אין סימינק / etc / XXXX -> / tmp / etc / XXXX?"
"ERROR - לא יכול ליצור $ CONFIG_FILE אולי אין symink / etc / XXXX - / / tmp / etc / XXXX?"
Fi
logger_func "########### סיים את הפעלת ההתחלה של SSMTP ###########"
הפוך אותו לזמין:
chmod + x ./working_dir_mini1/rootfs/etc/init.d/S80ssmtp
שימו לב למשתני ההמתנה של NVRAM בתסריט, זוהי האחריות שלנו לתת להם משהו לעבוד איתו לאחר שהתקנו את הקושחה שהשתנתה על הנתב.
בנה את הקושחה שהשתנתה
עכשיו כי הכל נמצא במקום, הגיע הזמן החבילה מחדש את הקושחה שונה לתוך בינארי דחוס שאנחנו יכולים הבזק לנתב.
תחביר script build.sh הוא:
.OUTPUT_DIR WORKING_DIRECTORY
לשם כך אנו משתמשים בסקריפט המצורף, אז הבעיה:
./build_firmware.sh output_mini1 ./working_dir_mini1/
לאחר "לבנות" מבצע נעשה, יהיו כמה תמונות קושחה מחכה לשמש בספרייה "פלט".
עכשיו אתה יכול להבהב את הקובץ שנקרא "custom_image_00001-generic.bin" לנתב שלך כמו שאתה בדרך כלל קושחה DD-WRT.
הערה: אל תשכח לשחזר את "ברירות המחדל של היצרן" לפני, במהלך ובמהירות לאחר פלאש הקושחה.
לאחר שלב הבזק
כי עשינו את חבילת SSMTP לחפש משתנים NVRAM על מנת ליצור את קובץ התצורה ssmtp, עכשיו אנחנו צריכים לספק את זה עם מידע חסר.
אנו נעשה זאת באמצעות הפונקציה אינטרנט GUI "הפעלה פקודות".
עבור אל GUI אינטרנט -> "הממשל" -> "פקודות" -> להדביק בתיבת הטקסט את הדברים הבאים:
קבוצה: [email protected]
nsram set ssmtp_mailhub = smtp.gmail.com: 587
להגדיר את
nvram set ssmtp_UseSTARTTLS = כן
nvram set ssmtp_AuthUser = your-gmail-user-name (ללא @ gmail.com)
nvram set ssmtp_AuthPass = אתה- Gmail הסיסמה
nvram set ssmtp_FromLineOverride = כן
nvram להתחייב
החלף את הטקסט לאחר סימן שווה (=), עם המידע שלך בפועל, ולאחר מכן הכה "הפעלה פקודות".
הערה: אם שלך באמצעות שרת TLS רגיל, ללא שימוש, שרת SMTP הנמל להשתמש הוא 25 במקום 587.
כעת, כאשר מידע SSMTP מוכן לשימוש, יהיה עליך להפעיל את script ה- init. אז אתה יכול לאתחל מחדש את הנתב, או להדביק את זה לתוך "פקודות" טקסט התיבה:
/etc/init.d/S80ssmtp
ואז פגע "הפעל פקודות" שוב.
הפלט של פקודה זו אמור להיראות כך:
בדוק שאתה יכול לשלוח דוא"ל
שוב הדבק את זה לתוך הפקודה "פקודות" תיבת טקסט את הפקודה הבאה עם כתובת הדוא"ל שלך:
הד "בדיקת אימייל כידון 123 qwe" ssmtp -vvv [email protected]
ואז פגע "הפעל פקודות" שוב.
מכיוון שהשתמשנו באפשרות -vvv עבור מלל נוסף, הפלט של פקודה זו אמור להיראות כך:
אם הכל הלך טוב, אתה צריך להיות מקבל את הבדיקה דוא"ל בתוך שניות.
אנו מקווים כי ניתן להשתמש במידע זה כדי לדחוף את גבולות הנתב בבית שלך עוד יותר אז אתה חושב אפשרי ואתה עכשיו באמת לשלוט בנתב הבית שלך, ו- DD-WRT ...
לינוקס מרחיבה את החיים, לינוקס מרחיבה את התודעה ... לינוקס היא חיונית לנסיעה במנות