Trang chủ » làm thế nào để » Giải phóng nhiều năng lượng hơn từ Bộ định tuyến gia đình của bạn với Bộ công cụ DD-WRT

    Giải phóng nhiều năng lượng hơn từ Bộ định tuyến gia đình của bạn với Bộ công cụ DD-WRT


    Chúng tôi đã chỉ cho bạn cách sửa đổi bộ định tuyến gia đình của bạn với chương trình cơ sở thay thế DD-WRT để cải thiện hiệu suất rất nhiều và hôm nay chúng tôi sẽ chỉ cho bạn cách mang nó đi xa hơn với Bộ công cụ DD-WRT.

    Nếu bạn chưa có, hãy chắc chắn và kiểm tra hai bài viết trước trong loạt bài:

    • Biến Bộ định tuyến gia đình của bạn thành Bộ định tuyến siêu cấp với DD-WRT
    • Cách tăng tín hiệu mạng Wi-Fi và tăng phạm vi với DD-WRT

    Giả sử bạn đã quen thuộc với những chủ đề đó, hãy tiếp tục đọc. Hãy nhớ rằng hướng dẫn này kỹ thuật hơn một chút và người mới bắt đầu nên cẩn thận khi sửa đổi bộ định tuyến của họ.

    Tổng quan

    Hướng dẫn này sẽ hướng dẫn từng bước cách tạo phần sụn DD-WRT của riêng bạn với các sửa đổi và bổ sung bằng cách sử dụng bộ sửa đổi phần sụn.

    Bộ sửa đổi phần sụn cho phép người ta sửa đổi phần sụn mà không cần biên dịch nó từ nguồn. Thay đổi theo cách này, với sự trợ giúp của các tập lệnh được cung cấp, trở thành một vấn đề đơn giản để tải xuống, thay thế và xóa một số tệp.

    Lý do phổ biến nhất để sử dụng phương pháp này là vì gần đây sự hỗ trợ của DD-WRT cho các gói IPKG của Openwrt đã chuyển sang các bộ định tuyến có ổ cứng (thông qua USB), khiến bộ mod trở thành cách duy nhất để cài đặt thành công các gói IPKG đối với trường hợp không có HD. Ngoài ra, phương pháp này có thêm lợi thế là giúp bạn thoát khỏi sự phụ thuộc của JFFS cho việc cài đặt gói, mà đối với các bộ định tuyến chỉ có 4 MB flash là một vấn đề thực sự.

    Hình ảnh của công chúng

    Những mục tiêu

    Mặc dù hướng dẫn cho quy trình này, được trình bày chi tiết trên wiki của DD-WRT và trên trang web của nhà phát triển, chúng tôi hướng đến việc hướng dẫn này một quy trình sao chép và dán mà bất kỳ ai cũng có thể sử dụng để đạt được các mục tiêu sau:

    • Cài đặt gói knd và các phụ thuộc của nó.
    • Cài đặt gói ssmtp với các cấu hình được tạo dựa trên NVRAM.
      • Tùy chọn có hỗ trợ cho TLS smtp (hỗ trợ a.k.a. Gmail).

    Một khi bạn đã làm theo quy trình này, việc điều chỉnh nó cho các gói cài đặt khác sẽ rất đơn giản.

    Cảnh báo: Hãy nhớ rằng, việc sử dụng bộ sửa đổi không chính xác, có thể khiến bạn có bộ định tuyến cần khử gạch (như biến nó thành cục gạch vô dụng). Tuy nhiên nếu bạn là một người đam mê thực sự, bạn có thể đăng ký vào hệ tư tưởng rằng, anh ta có thể phá hủy một vật, điều khiển một thứ và chỉ có những người đam mê thực sự mới làm điều đó

    Điều kiện tiên quyết

    1. Sử dụng thủ tục này có thể gạch bộ định tuyến của bạn, như làm cho bộ định tuyến của bạn không sử dụng được, chúng tôi không chịu trách nhiệm cho bất kỳ thiệt hại nào có thể gây ra trực tiếp hoặc khôn ngoan khác do sử dụng các thủ tục dưới đây.
    2. Quy trình này được thực hiện trên các hệ thống dựa trên Debian (Lenny, Squeeze và Mint) và các hướng dẫn bên dưới giả sử bạn cũng đang sử dụng một hệ thống.
    3. Quy trình này chỉ được khuyến nghị cho những người có kinh nghiệm về việc flash bộ định tuyến của họ với DD-WRT, với tất cả các điều kiện tiên quyết, cảnh báo và giới hạn áp dụng cho thiết lập phần cứng của họ. một nơi tốt để bắt đầu sẽ là Bộ định tuyến biến nhà của bạn thành Bộ định tuyến siêu cấp với hướng dẫn DD-WRT.
    4. Bộ định tuyến của bạn phải hỗ trợ ít nhất là phiên bản DD mini W-W của DD-WRT.
    5. Quy trình này được tạo và thử nghiệm trên các bộ định tuyến Linksys WRT54GS / L, nếu bạn sử dụng bộ định tuyến từ các nhà cung cấp khác, số dặm của bạn có thể rất.

    Thiết lập

    Cài đặt các gói cần thiết

    Bộ sửa đổi phần sụn có một số phụ thuộc để nó biên dịch và làm việc. Để cài đặt / cập nhật tất cả chúng cùng một lúc Phát lệnh này trong một thiết bị đầu cuối:

    sudo aptitude cài đặt gcc g ++ binutils patch bzip2 flex bison làm cho gettext unzip zlib1g-dev libc6 lật đổ

    Tải về bộ mod

    Tạo một thư mục con và lấy bộ từ SVN chính thức:

    phần mềm mkdir_mod_kit
    phần sụn cd_mod_kit
    kiểm tra svn http://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-read-only
    cd firmware-mod-kit-read-only / trunk /

    Tải về phần sụn để làm việc trên

    Điều đầu tiên cần xem xét là phiên bản nào bạn muốn sử dụng?
    Một nguyên tắc nhỏ là: khi nghi ngờ hãy sử dụng mini mini. Điều này là do miễn là bộ định tuyến của bạn hỗ trợ ít nhất là phiên bản mini Mini, sử dụng nó cung cấp cho bạn tất cả các tính năng được sử dụng phổ biến nhất mà không cần bất kỳ bloatware nào. do đó, để lại cả không gian cho các thủ tục và thậm chí một số không gian JFFS cho các cách sử dụng khác trong hầu hết các trường hợp.

    Khi bạn đã quyết định chọn phiên bản, bạn nên sử dụng bản sửa đổi phần sụn mới nhất có sẵn, vì chúng có xu hướng sửa nhiều lỗi so với các bản sao ổn định của họ..
    Tại thời điểm viết bài này, bản mới nhất là Cái 03-17-11-r16454 và bản sửa đổi này được sử dụng trong các lệnh tiếp theo.

    wget http://www.dd-wrt.com/dd-wrtv2/doads/others/eko/BrainSlayer-V24-preSP2/2011/03-17-11-r16454/broadcom/dd-wrt.v24_mini_generic.bin

    Để giúp theo dõi phiên bản chúng tôi đang sử dụng dễ dàng hơn, hãy đổi tên tệp đã tải xuống để thể hiện số phiên bản của nó:

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

    Tất nhiên đây là tùy chọn, nhưng các lệnh bên dưới cho rằng bạn đã đổi tên tệp.

    Giải nén firmware

    Để có thể thay đổi các tập tin trong phần sụn, chúng tôi cần trích xuất nội dung của nó vào một thư mục tạm thời.
    Cú pháp của lệnh này là:
    ./extract_firmware.sh FIRMware_IMAGE WORKING_DIRECTORY
    Trong trường hợp của chúng tôi, điều này sẽ dịch thành:

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

    Lưu ý: Lần đầu tiên bạn chạy lệnh này, nó sẽ xây dựng các công cụ mod-kit trên hệ thống của bạn. việc này chỉ xảy ra một lần và có thể mất một chút thời gian, vì vậy hãy kiên nhẫn

    Cài đặt gói

    Bây giờ phần mềm được giải nén, chúng ta có thể cài đặt các gói cho nó.
    Nói chung, quy trình là tải xuống gói và các phụ thuộc của nó dưới dạng tệp ipk từ kho lưu trữ openWRT. Sau khi tải về, cài đặt chúng vào firmware được giải nén bằng tập lệnh được cung cấp.

    Gói gõ

    Hướng dẫn chi tiết về cách định cấu hình và sử dụng Knockd sẽ được trình bày chi tiết trong một bài viết trong tương lai, vì vậy bạn có thể chọn bỏ qua bước này ngay bây giờ hoặc thực hiện để chuẩn bị cho tương lai vì dù sao Knockd cũng không tốn nhiều dung lượng.

    Knockd là một daemon lắng nghe các sự kiện giao tiếp ở lớp liên kết cho các chuỗi sau đó tác động lên chúng.
    Điều này có nghĩa là, bạn có thể để thiết bị chạy daemon thậm chí không nghe thấy trên các cổng (quét cổng sẽ không thấy chúng là mở) và vẫn khiến nó làm điều gì đó bạn cần, từ một lệnh duy nhất đến một kịch bản đầy đủ. Sử dụng kỹ thuật này, bạn có thể kích hoạt máy chủ để thực hiện bất kỳ loại hoạt động nào bạn cần từ xa (qua internet) mà không làm lộ mạng gia đình của bạn.

    Knockd chỉ có một phụ thuộc được liệt kê, vì vậy hãy tải xuống gói và phụ thuộc của nó bằng cách phát hành:

    wget http://doads.openwrt.org/backports/rc5/knockd_0.5-1_mipsel.ipk
    wget http://doads.openwrt.org/whiterussian/packages/libpcap_0.9.4-1_mipsel.ipk

    Cài đặt ipk gõ gõ daemon trực tiếp (gõ) vào phần sụn:

    ./ipkg_install.sh knd_0.5-1_mipsel.ipk ./work_dir_mini1/

    Cài đặt ipk chụp các gói dữ liệu (libpcap) ipk vào phần sụn:

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

    Vì có thể được gọi bằng một tập tin cấu hình thay thế (có thể giải thích trong một bài viết trong tương lai), bạn không cần phải thực hiện bất kỳ thao tác nào khác và bạn có thể bỏ qua phần xây dựng phần sụn, nếu đó là tất cả những gì bạn muốn cài đặt.

    Gói SSMTP

    Gói SSMTP cho phép bộ định tuyến của bạn gửi tin nhắn Email giống như chúng tôi đã trình bày trong Cách thiết lập Cảnh báo email trên Linux bằng Gmail hoặc SMTP cho máy chủ. Chúng tôi đã hứa với bạn sau đó rằng chúng tôi sẽ chỉ cho bạn cách định cấu hình này cho DD-WRT và bây giờ chúng tôi sẽ phân phối.
    Điều này chủ yếu hữu ích nếu bạn định tạo tập lệnh trên bộ định tuyến mà bạn muốn nhận phản hồi về hoạt động của họ qua email.

    Thiết lập của gói này phức tạp hơn một chút so với các hệ thống Linux thông thường do giới hạn được áp đặt bởi một hệ thống nhúng, vì vậy hãy hít thở sâu, sẵn sàng? Đi nào… :)

    Tải xuống gói:

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

    Cài đặt ipk ssmtp trên mạng vào chương trình cơ sở:

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

    Hỗ trợ TLS (Tùy chọn)
    SSMTP không liệt kê bất kỳ gói nào khác dưới dạng phụ thuộc của nó, tuy nhiên nếu bạn muốn có thể sử dụng cổng smtp yêu cầu xác thực TLS (tức là. Gmail), bạn cũng phải cài đặt pakage openSSL.
    chú thích: Có một LỚN Hạn chế để thực hiện điều này dưới dạng không gian giảm đáng kể trên bộ định tuyến cho JFFS sau này. Đó là, gói openSSL chiếm khoảng 500K dung lượng trong tổng số 4 MB của bạn (đối với bộ định tuyến hỗ trợ không phải mega mega bình thường), kết hợp với chi phí JFFS đó và bạn sẽ phát hiện ra rằng bên trái của bạn có, nhưng một vài khối quý giá không gian JFFS miễn phí (khoảng 60KB trên WRT54GL).

    Vì vẫn không có TLS yêu cầu máy chủ smtp ngoài kia (thường là ISP của bạn), tôi khuyên bạn nên dành một phút để suy nghĩ nếu bạn thực sự cần sử dụng TLS yêu cầu cổng.

    Nếu bạn đã quyết định kích hoạt hỗ trợ TLS bất chấp nhược điểm của nó, hãy tải xuống gói openSSL:

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

    Cài đặt ipk openSSL '(libopenssl) vào firmware:

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

    Cấu hình
    Có một hạn chế với gói SSMTP là không thể gọi nó bằng tệp cấu hình thay thế.
    Bởi vì phần sụn chỉ đọc khi có trên bộ định tuyến, điều đó có nghĩa là ngoài hộp chúng ta chỉ có thể mã hóa cấu hình vào phần sụn.
    Tuy nhiên, điều gì sẽ xảy ra nếu chúng ta không muốn thực hiện tất cả các bước sửa đổi phần sụn, chỉ để thay đổi cài đặt Email? (ví dụ: thay đổi mật khẩu).

    Cuối cùng, cả Jeremy (người tạo mod phần sụn) và bản thân tôi đều đi đến kết luận (một cách độc lập nếu tôi có thể khiêm tốn thêm) rằng cách duy nhất để làm điều này là:

    1. Tạo vị trí tệp cấu hình mà gói ssmtp trỏ đến vị trí chỉ đọc trong v.v., trỏ đến thư mục tmp có thể ghi vào lúc chạy.
    2. Tạo một tập lệnh sẽ tự động tạo các cấu hình dựa trên các biến NVRAM khi khởi động.

    Để đạt được điều đó, cần có một số bước bổ sung

    Symlink thư mục cấu hình ssmtp
    Như đã giải thích ở trên, chúng ta cần phải làm / etc / ssmtp vị trí trên bộ định tuyến, trỏ đến / tmp thư mục là nơi duy nhất có thể ghi mà chúng ta có trên bộ định tuyến trong thời gian chạy. Để thực hiện việc này, xóa thư mục ssmtp được tạo bởi trình cài đặt ipk:

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

    Tạo một liên kết tượng trưng mới trỏ / etc / ssmtp trên hệ thống tệp gốc của bộ định tuyến, để trỏ đến / tmp / etc / ssmtp như một đường dẫn tuyệt đối:

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

    chú thích: Mặc dù điều này có vẻ phi logic ngay bây giờ, bởi vì chúng tôi đang trỏ thư mục cấu hình của gói đến một vị trí bên ngoài thư mục làm việc của bộ sửa đổi phần sụn, tôi đảm bảo với bạn rằng điều này có vẻ hoàn toàn tốt từ quan điểm của bộ định tuyến trong thời gian chạy.

    Một kịch bản init
    Mặc dù hoàn toàn có thể không đưa tập lệnh này vào phần sụn và chạy nó dưới dạng tập lệnh khởi động sau này, tôi cảm thấy thích hợp để đặt nó ở đây nếu chỉ là một ví dụ cho việc sử dụng trong tương lai.
    Ban đầu Jeremy đã tạo ra kịch bản phù hợp với yêu cầu của ai đó, sau này, tôi đã điều chỉnh và tăng cường nó để tương thích hơn với báo cáo DD-WRT và syslog.

    Tạo tập lệnh init (khởi động) mới:

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

    Lưu ý: Bạn có thể sử dụng một trình soạn thảo khác, tôi sử dụng vi vì nó phù hợp với những gì có sẵn trên bộ định tuyến.
    Làm cho nó nội dung của nó:

    #! / thùng / sh
    #
    # tiêu đề: ssmtp_nvram.sh
    # tác giả: Jeremy Collake và Aviad Raviv
    # trang web: http://www.bitsum.com, http://howtogeek.com
    #
    # script để xây dựng tập tin cấu hình từ nvram vars.
    # sẽ hoạt động cho mọi tệp cấu hình sử dụng
    # var = cặp loại giá trị.
    #
    # sử dụng tiền tố cho các biến nvram.
    #
    # I E.
    # ssmtp_hostname = cái gì đó
    # dịch sang ssmtp.conf
    # tên máy chủ = cái gì đó
    #
    logger_func ()

    logger -s -p local0.notice -t SSMTP_init $ 1

    logger_func "########### Bắt đầu khởi động SSMTP ############"
    logger_func "Tạo thư mục vv trong / 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 "Tạo $ CONFIG_FILE cho gói $ PACKAGE_NAME"
    #echo $ 0: tạo $ CONFIG_FILE cho gói $ PACKAGE_NAME
    tiếng vang "#! / bin / sh"> $ CONFIG_FILE
    tiếng vang "#" >> $ CONFIG_FILE
    echo "# auto được tạo dựa trên nvram bằng $ 0" >> $ CONFIG_FILE
    tiếng vang "#" >> $ CONFIG_FILE

    if [-z "'nvram hiển thị | grep ssmtp'"]
    sau đó
    logger_func "Dường như bạn chưa đặt các biến NVRAM cần thiết để tạo tệp conf"
    logger_func "** Hãy xem xét ** bằng cách sử dụng các lệnh này trong tập lệnh khởi động của bạn:"
    logger_func "nvram đặt [email protected]"
    logger_func "nvram đặt ssmtp_mailhub = smtp.gmail.com: 587"
    logger_func "nvram đặt [email protected]"
    logger_func "nvram đặt ssmtp_UseSTARTTLS = CÓ"
    logger_func "nvram đặt ssmtp_AuthUser = tên người dùng"
    logger_func "nvram đặt ssmtp_AuthPass = mật khẩu"
    logger_func "nvram đặt ssmtp_FromLineOverride = CÓ"
    logger_func "tạo các biến NVRAM và chạy lại tập lệnh init hoặc khởi động lại để các cài đặt có ảnh hưởng."
    thoát 0
    fi

    ###################################################### #########
    #
    # vòng lặp chính
    #
    SED_COMMAND = "s / $ NVRAM_PREFIX / /"
    CONFIG_VARS = "chương trình nvram | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
    cho tôi trong $ CONFIG_VARS; làm
    tiếng vang $ i >> $ CONFIG_FILE
    làm xong

    ###################################################### #########
    #
    # kiểm tra sự tỉnh táo
    #
    nếu [ ! -f "$ CONFIG_FILE"]; sau đó
    # echo "$ 0: LRI - không thể tạo $ CONFIG_FILE. Có lẽ không có symink / etc / XXXX -> / tmp / etc / XXXX?"
    logger_func "ERROR - không thể tạo $ CONFIG_FILE. Có lẽ không có symink / etc / XXXX -> / tmp / etc / XXXX?"
    fi
    logger_func "########### Đã hoàn thành việc khởi chạy SSMTP ############"

    Làm cho nó thực thi:

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

    Hãy lưu ý các biến chờ của NVRAM trong tập lệnh, chúng tôi có trách nhiệm cung cấp cho chúng một số thứ để xử lý sau khi chúng tôi đã cài đặt phần sụn đã sửa đổi của chúng tôi trên bộ định tuyến.

    Xây dựng phần sụn sửa đổi

    Bây giờ mọi thứ đã sẵn sàng, đã đến lúc đóng gói lại phần sụn đã sửa đổi thành một tệp nhị phân nén mà chúng ta có thể flash vào bộ định tuyến.
    Cú pháp kịch bản của build build.sh là:
    ./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

    Để làm điều này, chúng tôi sử dụng tập lệnh được cung cấp, do đó, vấn đề:

    ./build_firmware.sh output_mini1 ./work_dir_mini1/

    Sau khi hoàn thành thao tác xây dựng các ứng dụng, thì sẽ có một số hình ảnh phần sụn đang chờ sử dụng trong thư mục đầu ra.

    Bây giờ bạn có thể flash tệp có tên là custom custom_image_00001-generic.bin tựa vào bộ định tuyến của bạn như bình thường với chương trình cơ sở DD-WRT.

    chú thích: Đừng quên khôi phục về nhà máy của máy mặc định, mặc định trước, trong và ngay sau khi flash firmware.

    Đăng các bước flash

    Vì chúng tôi đã tạo gói SSMTP tìm kiếm các biến NVRAM để tạo tệp cấu hình ssmtp, bây giờ chúng tôi cần cung cấp cho nó thông tin còn thiếu.
    Chúng tôi sẽ thực hiện điều này bằng cách sử dụng chức năng lệnh Chạy web-GUI.

    Truy cập web-GUI -> Quản trị hành trình trực tuyến -> Lệnh lệnh - - dán vào hộp văn bản như sau:

    nvram đặt ssmtp_root=your-email @ gmail
    nvram đặt ssmtp_mailhub = smtp.gmail.com: 587
    nvram đặt ssmtp_hostname=you-email @ gmail
    nvram đặt ssmtp_UseSTARTTLS = CÓ
    nvram đặt ssmtp_AuthUser = your-gmail-user-name (không có @ gmail.com)
    nvram đặt ssmtp_AuthPass = you-gmail-password
    nvram đặt ssmtp_FromLineOverride = CÓ
    cam kết nvram

    Thay thế văn bản sau dấu bằng (=) bằng thông tin thực tế của bạn, và sau đó nhấn Lệnh Run Run Lệnh.
    chú thích: nếu bạn sử dụng một TLS thông thường, không sử dụng, máy chủ smtp thì cổng sử dụng là 25 thay vì 587.

    Bây giờ thông tin SSMTP đã sẵn sàng để sử dụng, bạn sẽ cần phải gọi tập lệnh init. Vì vậy, bạn có thể khởi động lại bộ định tuyến, hoặc dán mã này vào hộp văn bản lệnh của văn bản:

    /etc/init.d/S80ssmtp

    Sau đó nhấn lại lệnh Run Run.
    Đầu ra của lệnh này sẽ giống như:

    Kiểm tra xem bạn có thể gửi Email không
    Một lần nữa dán lệnh này vào các hộp lệnh của văn bản trên hộp văn bản, lệnh sau đây với địa chỉ email của bạn:

    echo "thử nghiệm gửi email nồi nấu kim loại 123 qwe" | ssmtp -vv [email protected]

    Sau đó nhấn lại lệnh Run Run.
    Bởi vì chúng tôi đã sử dụng tùy chọn -vvv để có độ dài thêm, đầu ra của lệnh này sẽ giống như:

    Nếu mọi thứ đều ổn, bạn sẽ nhận được email kiểm tra trong vòng vài giây.

    Chúng tôi hy vọng rằng bạn có thể sử dụng thông tin này để đẩy các giới hạn của bộ định tuyến gia đình của bạn đi xa hơn nữa sau đó bạn nghĩ là có thể và giờ bạn thực sự kiểm soát bộ định tuyến gia đình của mình và DD-WRT


    Linux kéo dài tuổi thọ, Linux mở rộng ý thức, Linux Linux rất quan trọng đối với việc di chuyển gói