Αρχική σελίδα » πως να » Πώς να εγκαταστήσετε πρόσθετο λογισμικό στον δρομολογητή οικιακής χρήσης (DD-WRT)

    Πώς να εγκαταστήσετε πρόσθετο λογισμικό στον δρομολογητή οικιακής χρήσης (DD-WRT)

    Έχετε ποτέ θελήσει να έχετε πρόσθετες λειτουργίες όπως το Email, Bit-torrent ή ακόμα και το MySQL απευθείας στο δρομολογητή σας; Καλά ίσως τώρα μπορείτε. Πώς-To Geek βουτάει στο πώς να εγκαταστήσει το λογισμικό Opkg στο DD-WRT.

    Εικόνα από τον Jean Spector και τον Aviad Raviv

    Εάν δεν το έχετε ήδη, φροντίστε να δείτε τα προηγούμενα άρθρα της σειράς:

    • Γυρίστε τον δρομολογητή του σπιτιού σας σε έναν δρομολογητή Super-Powered με το DD-WRT
    • Πώς να αφαιρέσετε τις διαφημίσεις με το Pixelserv στο DD-WRT

    Υποθέτοντας ότι είστε εξοικειωμένοι με αυτά τα θέματα, συνεχίστε να διαβάζετε. Λάβετε υπόψη ότι αυτός ο οδηγός είναι λίγο πιο τεχνικός και οι αρχάριοι θα πρέπει να είναι προσεκτικοί όταν τροποποιούν το δρομολογητή τους.

    Θλίψη

    Πρόσφατα αγόρασα ένα καινούργιο Buffalo WZR-HP-AG300H το οποίο συνοδεύεται από μια νέα επωνυμία της DD-WRT. Λόγω του γεγονότος ότι ο δρομολογητής έχει θύρα USB, συνδεόμουν αμέσως HD και προσπάθησα να χρησιμοποιήσω τον οδηγό wiki "Optware, The Right Way". Δυστυχώς, έχω βρει γρήγορα ότι ο δρομολογητής που έχω, βασίζεται στο Atheros και το σενάριο από αυτή τη σελίδα wiki, δεν το υποστηρίζει. Έτσι έχω αρχίσει να σκάβω (όπως πάντα) και συναντήθηκα με αρκετούς οδηγούς (1, 2, 3 και 4) που αποσκοπούσαν να εξηγήσουν πώς να πάρεις το Opkg χειροκίνητα. Ενώ η συνεισφορά τους (μεταξύ άλλων πηγών στο διαδίκτυο) σε αυτόν τον οδηγό ήταν ανεκτίμητη, μερικές από τις οδηγίες είναι (IMHO) απλά όχι απλά αρκετά απλή. Για παράδειγμα, δίνοντάς σας τα αρχεία "lib" ψάρια, αλλά δεν σας διδάσκουν πώς να το ψαρεύετε από την πηγή. Επίσης, πρέπει να χρησιμοποιήσετε ένα μορφοποιημένο HD Linux ή τουλάχιστον ένα διαμέρισμα ενός (το οποίο στην πραγματικότητα δεν λειτουργεί ακόμη και με τα firmware που έχω δοκιμάσει). Αυτός είναι ο λόγος για τον οποίο αισθάνομαι την ανάγκη να δημιουργήσω την παρακάτω συνοπτική, απλή ακολουθούμενη και αναπαραγώγιμη διαδικασία για να βρω τον διαχειριστή πακέτων OpenWRT Opkg να δουλέψει σε τέτοιους δρομολογητές.

    Ενημέρωση: Η δυνατότητα τοποθέτησης διαμερισμάτων έχει επανεισαχθεί στην έκδοση που έχει κυκλοφορήσει ξανά στην έκδοση alpha 17798.

    Τι είναι το Opkg?

    Ο Opkg είναι ένας διαχειριστής πακέτων όπως apt / aptitude και yum. Ενεργεί ως αντικατάσταση του διαχειριστή πακέτων Ipkg και μπορεί να χρησιμοποιηθεί για την εγκατάσταση λογισμικού όπως: ο δαίμονας BitTorrent μετάδοσης, ο αποστολέας e-mail ssmtp και ο Knockd ένας δαίμονας που εκτελεί δέσμες ενεργειών μετά από μια συγκεκριμένη ακολουθία ενεργοποίησης θύρας, για να αναφέρουμε μερικά. Από την τοποθεσία OpenWRT:

    Το βοηθητικό πρόγραμμα opkg (ένα ipkg fork) είναι ένας ελαφρύς διαχειριστής πακέτων που χρησιμοποιείται για τη λήψη και την εγκατάσταση πακέτων OpenWrt από τοπικές αποθήκες πακέτων ή εκείνες που βρίσκονται στο Internet. Opkg προσπαθεί να επιλύσει εξαρτήσεις με πακέτα στα αποθετήρια - αν αυτό αποτύχει, θα αναφέρει ένα σφάλμα και θα εγκαταλείψει την εγκατάσταση αυτού του πακέτου.

    Έτσι, χρησιμοποιώντας το Opkg μπορούμε να εγκαταστήσουμε τα πράγματα όπως κάναμε με την Ipkg στον οδηγό "Απελευθερώστε ακόμη περισσότερη ισχύ από τον οικιακό σας δρομολογητή". Οι κυριότερες διαφορές είναι:

    1. Προκειμένου να δώσετε τα παραδείγματα του SSMTP και του Knockd, αληθινά, έπρεπε να καταλάβετε τις εξαρτήσεις με το χέρι. Η διαδικασία για να γίνει αυτό χειροκίνητα είναι ενοχλητική και όχι πολύ ευθεία προς τα εμπρός. Το Opkg το κάνει αυτόματα.
    2. Αυτή τη φορά θα είμαστε προσθέτωντας λογισμικού πάνω από το υλικολογισμικό που βρίσκεται στη θέση του, αντί να το αντικαταστήσετε. Ενώ η αντικατάστασή του ήταν μια εξαιρετική άσκηση geek, ήταν χωρίς αμφιβολία: επικίνδυνη, επιρρεπή σε προβλήματα, μη αναστρέψιμη και χειρότερη όλων των συγκεκριμένων δρομολογητή. Περιττό να πούμε ότι αυτό είναι πιο απλό και ασφαλέστερο.

    Προϋποθέσεις

    Για να συμπληρώσετε αυτόν τον οδηγό, σημειώστε τα εξής:

    1. Όπως αναφέρθηκε παραπάνω, ο οδηγός αυτός δημιουργήθηκε και δοκιμάστηκε σε Buffalo WZR-HP-AG300H με την έκδοση λογισμικού 17135 "Pro" του Buffalo. Θα πρέπει να λειτουργεί σε οποιονδήποτε δρομολογητή που βασίζεται στο Atheros (ar71xx) με οποιαδήποτε έκδοση του DD-WRT της ίδιας αναθεώρησης ή παραπάνω , αλλά τα χιλιόμετρα σας μπορεί πολύ.
    2. Θα χρειαστεί να ενεργοποιήσετε το SSH στο δρομολογητή, καθώς και να εγκαταστήσετε και να χρησιμοποιήσετε το WinSCP για να το συνδέσετε. Αυτό εξηγείται στο "Οδηγίες για την αφαίρεση διαφημίσεων με τον Pixelserv on DD-WRT". Στην πραγματικότητα, θα υποθέσουμε ότι είστε σε θέση να κάνετε ό, τι εξηγείται σε αυτόν τον οδηγό.
    3. Πρέπει να είστε σε θέση να συνδεθείτε στο δρομολογητή χρησιμοποιώντας ένα τερματικό (συνιστάται το SSH). Μερικοί δείκτες για το πώς να το κάνετε αυτό, βρίσκονται στο wiki του DD-WRT.
    4. Χώρος για το JFFS και περίπου 4MB χώρου μετά τη μορφοποίηση για τη ρύθμιση βάσης. Ο χώρος JFFS δεν είναι μόνο προαπαιτούμενο, είναι ένα πώμα εμφάνισης. Αυτό οφείλεται στο γεγονός ότι, αν ο δρομολογητής σας δεν έχει τουλάχιστον τα προαναφερθέντα 4MB post-formatted space, δεν θα αποκτήσετε κανένα πραγματικό όφελος από αυτόν τον οδηγό και θα είναι καλύτερα χρησιμοποιώντας το "Unleash even more power from home router" οδηγό για την εγκατάσταση των πακέτων Ipkg απευθείας στο υλικολογισμικό ή για την εγκατάσταση των πακέτων Ipkg με μη αυτόματο τρόπο. Ακολουθήστε τις οδηγίες στον οδηγό "Τρόπος κατάργησης διαφημίσεων με τον Pixelserv on DD-WRT" για να ενεργοποιήσετε το JFFS και δείτε πόσο ελεύθερο χώρο έχετε στην πραγματικότητα μετά είναι μορφοποιημένη.

    Σημείωση: Είναι δυνατό να το κάνουμε αυτό με μόνο 2MB χώρου για την εγκατάσταση, αλλά τότε θα χάναμε το αποτέλεσμα του / etc να γίνουμε αναγνώσιμοι και θα πρέπει να καλέσουμε Opkg, καθορίζοντας το αρχείο ρυθμίσεων κάθε φορά ... το οποίο είναι σαν sooo lame ...  

    Ας πάρουμε ρωγμές

    Σε αυτό το σημείο θα πρέπει να έχετε ενεργοποιήσει το JFFS και είστε σε θέση να SSH / WinSCP στο δρομολογητή.

    1. Ανοίξτε μια συνεδρία τερματικού στο δρομολογητή.
    2. Δημιουργήστε έναν προσωρινό κατάλογο στον οποίο θα εργαστούμε:

      mkdir / tmp / 1
      cd / tmp / 1

    Χρησιμοποιήστε το Ipkg για να εγκαταστήσετε το Opkg
    Ενώ πρόκειται να αντικαταστήσουμε το Ipkg ως διαχειριστή πακέτων, θα το χρησιμοποιήσουμε για να εγκαταστήσουμε με μη αυτόματο τρόπο το πακέτο εγκατάστασης Opkg.

    1. Για να το κάνετε αυτό, κάντε λήψη του πακέτου εγκατάστασης Opkg για την αρχιτεκτονική ar71xx από τον κορμό του έργου OpenWRT:

      wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk

      Σημείωση1: Τη στιγμή της γραφής, το 618 είναι η πιο πρόσφατη έκδοση, αυτό μπορεί να αλλάξει στο μέλλον, οπότε προσαρμόστε ανάλογα.
      Σημείωση 2: Μπορεί να είναι πιθανό η μόνη διαφορά για να γίνει αυτός ο οδηγός να λειτουργήσει για άλλες αρχιτεκτονικές είναι να αποκτήσετε το πρόγραμμα εγκατάστασης Opkg από την εφαρμοστέα αρχιτεκτονική για το δρομολογητή σας ... όμως αυτό δεν έχει δοκιμαστεί από το δικό σας.

    2. Καλέστε το Ipkg να εγκαταστήσει με μη αυτόματο τρόπο το Opkg χρησιμοποιώντας:

      ipkg εγκαταστήστε opkg_618-2_ar71xx.ipk

      Σημείωση: Μπορείτε, αν θέλετε, να εγκαταστήσετε κάθε πακέτο στο αποθετήριο χειροκίνητα με αυτόν τον τρόπο. Ωστόσο, αυτό θα σήμαινε ότι θα πρέπει να επιλύσετε τις εξαρτήσεις από τη δική σας ... και ποια θα ήταν η διασκέδαση σε αυτό?

    Αποκτώντας τα αρχεία δυναμικής βιβλιοθήκης ("lib" s)
    Τα απαιτούμενα αρχεία "lib" για να κάνουν Opkg εργασία, αποτελούν μέρος της διανομής OpenWRT. Για να τα αποκτήσετε, πρέπει να τα εξαγάγετε από το "Root FileSystem" της εν λόγω διανομής.

    1. Για να το κάνετε αυτό, κατεβάστε το πιο πρόσφατο βασικό "Root FileSystem" για την ανακατασκευή openWRT που περιέχει τα απαιτούμενα "lib" από τον κορμό του έργου OpenWRT:

      wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz

    2. Εκχυλίστε το χρησιμοποιώντας:

      tar xvzf openwrt-ar71xx-γενικό-rootfs.tar.gz

    3. Αντιγράψτε τα αρχεία "libs" από τα "rootfs" που εξάγουμε παραπάνω στον κατάλογο "libs" του JFFS, διατηρώντας τα χαρακτηριστικά και τους συμβολικούς δεσμούς τους:

      cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /

      Σημείωση: Θα λάβετε μηνύματα που λένε ότι παραλείπονται οι δευτερεύοντες κατάλογοι. Δεδομένου ότι δεν χρειαζόμαστε τίποτα εκτός από τα αρχεία "lib", αυτό είναι καλό και μπορείτε με ασφάλεια να αγνοήσετε αυτά τα μηνύματα.

    Καθορισμός του LD_LIBRARY "PATH"
    Πρέπει να πούμε στο δρομολογητή, από πού να αναζητήσουμε τις κοινόχρηστες βιβλιοθήκες (libs) που έχουμε μόλις "εγκαταστήσει" και ότι πρέπει να το κάνουμε αυτό πριν αυτά που συνοδεύουν το firmware.

    1. Για να γίνει αυτό, ρυθμίστε τη μεταβλητή περιβάλλοντος LD_LIBRARY χειροκίνητα (προς το παρόν), για να το καταστήσουμε έτσι η θέση στην οποία αντιγράψαμε τα νέα αρχεία lib θα είναι η πρώτη στο "PATH":

      εξαγωγή LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH

    Read-writable "/ etc"
    Πάμε να αντιγράψουμε το "/ etc" στο JFFS και στη συνέχεια να κάνουμε το κανονικό "/ etc" mount point, δείχνοντάς το. Με αυτόν τον τρόπο, θα ανοίξουν και οι δύο δυνατότητες, επειδή το / etc θα καταστεί αναγνώσιμο για εγγραφή (το οποίο προσωπικά περιμένω να δώσω ή να πάρει 7 χρόνια τώρα) και να επιτρέψω σε πακέτα που περιμένουν αυτή τη συμπεριφορά να λειτουργούν σωστά.

    1. Δημιουργήστε τον κατάλογο που θα κρατήσει "/ etc":

      mkdir -p / jffs / geek / κτλ

    2. Αντιγράψτε αναδρομικά ολόκληρο το "/ etc" διατηρώντας παράλληλα όλους τους υποκαταλόγους, τα χαρακτηριστικά αρχείων και τους συμβολικούς συνδέσμους.

      cp -α / etc / * / jffs / geek / etc /

    3. Μη αυτόματη (προς το παρόν) "bind mount" τον κατάλογο "/ etc" στο JFFS:

      mount -o δεσμεύει / jffs / geek / etc / / etc /

    Ορίστε τον κατάλογο Optware ("/ opt")
    Opkg από το OpenWRT, αναμένει να χρησιμοποιηθεί όταν είναι κατασκευασμένο το firmware του δρομολογητή. Δεδομένου ότι σε αυτό το χρονικό διάστημα, το FileSystem δεν είναι ακόμα στον δρομολογητή και επομένως εξακολουθεί να υπόκειται σε αλλαγές, δεν υπάρχει πρόβλημα στην εγκατάσταση σε οποιαδήποτε θέση στο FileSystem. Αυτός είναι ο λόγος για τον οποίο το αρχείο ρυθμίσεων Opkg επισημαίνει πακέτα για εγκατάσταση στο "root" (/) του FileSystem. Ωστόσο, χρησιμοποιούμε Opkg μετά το υλικολογισμικό κατασκευάστηκε και εγκαταστάθηκε στο δρομολογητή και καθώς δεν μπορούμε να αλλάξουμε τη ρίζα του συστήματος αρχείων ώστε να είναι δυνατή η εγγραφή, θα επισημάνουμε όλες τις εγκαταστάσεις που θα εγκατασταθούν κάτω από το "/ opt". Ωστόσο, το "/ opt" επισημαίνει επίσης μια θέση μόνο για ανάγνωση στο υλικολογισμικό του δρομολογητή. Για να ξεπεραστεί αυτό, θα κάνουμε "/ opt" σημείο στο JFFS, το οποίο είναι read-writable.

    1. Για να το κάνετε αυτό, δημιουργήστε τον κατάλογο που θα περιέχει τα πακέτα Optware:

      mkdir -p / jffs / opt

    2. Μη αυτόματη (για τώρα) "δεσμεύστε mount" τον κατάλογο "/ opt" στο JFFS:

      mount -o δεσμεύει / jffs / opt / / opt /

      Σημείωση: Αν και πέρα ​​από το πεδίο εφαρμογής αυτού του οδηγού, οι πιο προχωρημένοι χρήστες ενδέχεται να θέλουν να αλλάξουν αυτό το σημείο προσάρτησης, για να δείξουν HD.

    Προσαρμογή του αρχείου ρυθμίσεων Opkg
    Θέλουμε το αρχείο ρυθμίσεων Opkg να βρίσκεται εκεί όπου το Opkg αναζητά από προεπιλογή (το οποίο είναι "/ etc") και να προσαρμόζεται για να εγκατασταθεί στο "/ opt".

    1. Για να το κάνετε αυτό, μετακινήστε το αρχείο ρυθμίσεων opkg που είναι εγκατεστημένο από το πακέτο Opkg στη θέση ανάγνωσης / εγγραφής "/ etc":

      mv /jffs/etc/opkg.conf / etc /

    2. Αλλάξτε τον προορισμό για τις εγκαταστάσεις Optware να είναι "/ opt" αντί για "root" (/).
      Για να το κάνετε αυτό, με το πρόγραμμα επεξεργασίας "vi" ή το WinSCP μεταβείτε στο "/ etc /" και κάντε το περιεχόμενο του αρχείου "opkg.conf":

      vi /etc/opkg.conf

      Κάνε να μοιάζει με:

      src / gz στιγμιότυπα http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
      root root / opt
      dest ram / tmp
      lists_dir ext / var / opkg-λίστες
      επιλογή overlay_root / overlay

      Σημείωση: Μπορείτε να αλλάξετε την οδηγία "lists_dir" για να υποδείξετε μια τοποθεσία που δεν βρίσκεται στη μνήμη RAM, αλλά στην JFFS. Ενώ αυτό θα σας απαλλάξει από την ενημέρωση των λιστών, προτού μπορέσετε να εγκαταστήσετε πρόσθετο λογισμικό (αν ο δρομολογητής σας επανεκκινηθεί από την τελευταία φορά), θα χάνατε περίπου 1,5MB του σπάνιου χώρου JFFS και θα συντελούσατε στη διάβρωση του.

    Γεια σου μωρό
    Θα πρέπει να μπορείτε να δείτε ότι το Opkg λειτουργεί με την έκδοση της ενημερωμένης έκδοσης και εμφανίζει εντολές.

    1. Αν όλα πήγαν καλά, πρέπει να βλέπετε ότι οι λίστες Opkg έχουν ενημερωθεί χωρίς σφάλμα και είστε έτοιμοι να εφαρμόσετε το σενάριο στο επόμενο βήμα:

      opkg ενημέρωση; opkg λίστα

    2. Πάρτε το χρόνο για να ξεκινήσετε την εξερεύνηση των πακέτων που είναι διαθέσιμα στο αποθετήριο ... .

    Startup script
    Τώρα πρέπει να το καταφέρουμε έτσι ώστε όλη η απαιτούμενη τοποθέτηση και η διαδρομή να γίνει αυτόματα όταν η μπότα του δρομολογητή. Για το σκοπό αυτό, δημιουργήσαμε για εσάς, αυτό το σενάριο προετοιμασίας geek-init.

    1. Κατεβάστε, στη συνέχεια, εξαγάγετε και τοποθετήστε το κάτω από "/ jffs / geek / etc /". (Σκεφτείτε να το κάνετε αυτό με το WinSCP).
    2. Κάντε τη δέσμη ενεργειών εκτελέσιμη μεταβαίνοντας στις ιδιότητές της με το WinSCP ή εκτελώντας:

      chmod + x /jffs/geek/etc/geek-init.sh

    3. Κάντε το σενάριο να εκτελεστεί στην εκκίνηση του δρομολογητή, χρησιμοποιώντας το WebGUI. Στην περιοχή Διαχείριση -> Εντολές, στο πλαίσιο κειμένου, θέστε:

      /jffs/geek/etc/geek-init.sh web-gui

      Και κάντε κλικ στην επιλογή "Αποθήκευση εκκίνησης".

    Κτυπώντας τα ελαστικά
    Αν όλα πάνε καλά, θα πρέπει τώρα να μπορέσετε να κάνετε επανεκκίνηση του δρομολογητή και να χρησιμοποιήσετε τον διαχειριστή πακέτων Opkg. Αυτό είναι να ενημερώσετε, να καταγράψετε και να εγκαταστήσετε εφαρμογές.
    Ας δοκιμάσουμε ότι όλα λειτουργούν εγκαθιστώντας την εντολή "netstat", η οποία για κάποιο λόγο παραλείφθηκε από την τελευταία έκδοση του DD-WRT. Πριν να το κάνουμε αυτό, εκτελέστε την εντολή netstat στο τερματικό και θα δείτε ότι είστε χαραγμένο από ένα σφάλμα από το κέλυφος λέγοντας "-sh: netstat: not found".

    1. Το πρώτο σας βήμα θα είναι πάντοτε να ενημερώσετε τις λίστες Opkg, ώστε να έχετε την πιο πρόσφατη λίστα πακέτων από την αποθήκη:

      opkg ενημέρωση

    2. Αν δεν γνωρίζετε ποιο πακέτο περιέχει την εντολή "netstat", μπορείτε να φιλτράρετε τα αποτελέσματα χρησιμοποιώντας.

      λίστα opkg | grep netstat

    3. Και τώρα εγκαταστήστε το "netstat" χρησιμοποιώντας:

      opkg εγκαταστήστε το net-tools-netstat

      Και τώρα, όταν εκτελείτε την εντολή netstat και πάλι λειτουργεί ... τακτοποιημένο ha; :)

    Μέχρι τα μελλοντικά άρθρα στα οποία θα εγκαταστήσουμε και θα διαμορφώσουμε τα πακέτα λογισμικού που χρησιμοποιούν αυτή τη μέθοδο, μπορεί να έχετε αρκετούς geek να εξερευνήσουν το τεράστιο ποσό του λογισμικού που είναι τώρα σωστά στις συμβουλές των δακτύλων σας.


    Εάν μια τέτοια μηχανή είναι μια εικονική αδυναμία, πρέπει λογικά να είναι μια πεπερασμένη απίθανη. Το μόνο που έχω να κάνω για να φτιάξω ένα είναι να καταλάβω πόσο απίθανο είναι, να τροφοδοτήσω το σκελετό στην πεπερασμένη γεννήτρια απίθανοτητας, να του δώσω ένα φλιτζάνι πραγματικά ζεστό τσάι και να το ενεργοποιήσω ... ... ... Το ένα πράγμα που πραγματικά δεν μου αρέσει, είναι ένα "Smart-Ass".