Pagina principala » HOWTO » Cum se instalează software suplimentar pe routerul dvs. de acasă (DD-WRT)

    Cum se instalează software suplimentar pe routerul dvs. de acasă (DD-WRT)

    Ați vrut vreodată să aveți funcții suplimentare precum Email, Bit-torrent sau chiar MySQL direct pe router? Ei bine, acum puteți. How-To Geek se scufundă în modul cum să instaleze software-ul Opkg pe DD-WRT.

    Imaginea lui Jean Spector și Aviad Raviv

    Dacă nu ați făcut-o deja, asigurați-vă și verificați articolele anterioare din seria:

    • Transformați Router-ul Acasă într-un Router Super-Powered cu DD-WRT
    • Cum să eliminați reclamele cu Pixelserv pe DD-WRT

    Presupunând că sunteți familiarizați cu aceste subiecte, continuați să citiți. Rețineți că acest ghid este puțin mai tehnic, iar începătorii ar trebui să fie atenți atunci când își modifică router-ul.

    necazurile

    Am cumparat recent un nou Buffalo WZR-HP-AG300H care vine cu o versiune re-branded a DD-WRT. Datorită faptului că acest router are un port USB, am conectat imediat un HD și am încercat să folosesc ghidul wiki "Optware, The Right Way". Din nefericire, am descoperit repede că ruterul pe care l-am primit este Atheros și script-ul de pe acea pagină wiki nu o acceptă. Așa că am început să săpat (așa cum am făcut mereu) și am dat peste mai multe ghiduri (1, 2, 3 și 4) care aveau scopul de a explica cum să obțineți Opkg manual. Deși contribuția lor (printre alte surse de pe web) la acest ghid a fost neprețuită, unele dintre instrucțiunile sunt (IMHO) pur și simplu nu sunt destul de directe. De exemplu, oferindu-vă fisierele "lib" pește, dar nu vă învăț cum să o pescuiți de la sursă. De asemenea, trebuie să utilizați un HD formatat în Linux sau cel puțin o partiție de unul (care de fapt nu funcționează chiar pe firmware-urile cu care am testat). De aceea, am simțit nevoia de a crea următoarea procedură concisă, ușor de urmărit și reproductibilă pentru a obține managerul de pachete OpenWRT Opkg să lucreze la astfel de routere.

    Actualizare: Capacitatea partițiilor de montare a fost reintrodusă în versiunea rebrandedă pe construirea alfa 17798.

    Ce este Opkg?

    Opkg este un manager de pachete ca apt / aptitude și yum. Acesta acționează ca înlocuitor pentru managerul de pachete Ipkg și poate fi folosit pentru a instala programe cum ar fi: daemonul Transmission BitTorrent, expeditorul de e-mail ssmtp și daemonul Knockd care execută scripturi după o anumită secvență de declanșare a portului, pentru a numi câteva. Din site-ul OpenWRT:

    Utilitarul opkg (un ipkg fork) este un manager de pachete ușoare utilizat pentru a descărca și instala pachetele OpenWrt din depozitele locale de pachete sau cele aflate pe Internet. Opkg încearcă să rezolve dependențele cu pachetele din depozit - dacă aceasta nu reușește, va raporta o eroare și va întrerupe instalarea acelui pachet.

    Prin urmare, folosind Opkg putem instala lucruri pe care le-am făcut cu Ipkg pe ghidul "Dezlănțuiți chiar mai multă putere de la dvs. Home Router". Diferențele majore sunt:

    1. Pentru a da exemplele SSMTP și Knockd, cu adevărat, a trebuit să dai seama dependențele manual. Procedura de a face acest lucru manual este deranjant și nu foarte direct înainte. Opkg face acest lucru automat.
    2. De data asta vom fi adăugare software-ul pe partea de sus a firmware-ului care este în loc, mai degrabă decât înlocuirea acestuia. În timp ce înlocuirea a fost un exercițiu excelent geek, a fost fără îndoială: periculos, predispus la probleme, ireversibile și cel mai rău de toate ruter specifice. Inutil să spun că acest lucru este mult mai simplu și mai sigur.

    Cerințe preliminare

    Pentru a completa această notă de orientare, urmați următoarele:

    1. După cum sa menționat mai sus, acest ghid a fost creat și testat pe Buffalo WZR-HP-AG300H cu versiunea firmware 17135 "Pro" a Buffalo. Ar trebui să funcționeze pe orice router bazat pe Atheros (ar71xx) cu orice versiune DD-WRT a aceleiași revizuiri sau mai sus , dar kilometrajul dvs. poate foarte mult.
    2. Va trebui să activați SSH pe router, precum și să instalați și să utilizați WinSCP pentru a vă conecta la acesta. Acest lucru a fost explicat în ghidul "Cum să eliminați anunțurile cu Pixelserv pe DD-WRT". De fapt, se va presupune că sunteți în stare să faceți tot ce este explicat în acest ghid.
    3. Trebuie să vă puteți conecta la router folosind un terminal (se recomandă SSH). Unele indicii despre cum să faceți acest lucru sunt pe wiki-ul DD-WRT.
    4. Spațiu pentru JFFS și aproximativ 4MB de spațiu postformat pentru configurarea bazei. Spațiul JFFS nu este doar o condiție prealabilă, ci o oprire a spectacolului. Acest lucru se datorează faptului că, dacă routerul dvs. nu are cel puțin spațiul formatat postat de 4 MB, nu veți obține niciun beneficiu real din acest ghid și va fi mai bine să utilizați funcția "Dezlănțuiți chiar mai multă putere de la router-ul dvs. de acasă" ghidați instalarea pachetelor Ipkg direct în firmware sau instalarea manuală a pachetelor Ipkg. Urmați instrucțiunile din ghidul "Cum să eliminați reclamele cu Pixelserv pe DD-WRT" pentru a activa JFFS și pentru a vedea cât spațiu liber aveți de fapt după este formatat.

    Notă: Este posibil să faceți acest lucru cu doar 2 MB de spațiu pentru configurare, dar apoi am pierde rezultatul "/ etc" devenind read-writable și ar trebui să invocăm Opkg, în timp ce specificăm manual fișierul de configurare de fiecare dată ... care este sooo lame ...  

    Permiteți-vă să crăpați

    În acest moment ar trebui să fi activat JFFS și să aveți posibilitatea să SSH / WinSCP în router.

    1. Deschideți o sesiune terminală la router.
    2. Creați un director temporar în care vom lucra:

      mkdir / tmp / 1
      cd / tmp / 1

    Utilizați Ipkg pentru a instala Opkg
    În timp ce vom înlocui Ipkg ca manager de pachete, îl vom folosi pentru a instala manual pachetul de instalare Opkg.

    1. Pentru aceasta, descărcați pachetul de instalare Opkg pentru arhitectura ar71xx din trunchiul proiectului OpenWRT:

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

      Nota 1: La momentul acestei scrieri, 618 este cea mai recentă versiune, aceasta poate fi modificată în viitor, deci ajustați corespunzător.
      Nota 2: Este posibil ca singura diferență în obținerea acestui ghid să funcționeze pentru alte arhitecturi este să obțineți programul de instalare Opkg de la arhitectura aplicabilă pentru ruterul dvs. Cu toate acestea, acest lucru nu este testat de dvs..

    2. Invoca Ipkg să instaleze manual Opkg utilizând:

      ipkg instalează opkg_618-2_ar71xx.ipk

      Notă: Puteți, dacă doriți, să instalați manual fiecare pachet în depozit. Cu toate acestea, acest lucru ar însemna că va trebui să rezolvi dependențele pe cont propriu ... și care ar fi distracția în asta?

    Obținerea fișierelor dinamice din bibliotecă ("lib")
    Fișierele "lib" necesare pentru a lucra cu Opkg fac parte din distribuția OpenWRT. Pentru a le obține, trebuie să le extrageți din "System File System" din distribuția menționată.

    1. Pentru a face acest lucru, descărcați ultimul "Root FileSystem" de bază pentru distrabuția openWRT care conține "lib" -urile necesare din trunchiul proiectului OpenWRT:

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

    2. Extrageți-l utilizând:

      tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz

    3. Copiați fișierele "libs" din "rootfs" pe care le-am extras mai sus în directorul "libs" din JFFS, păstrând în același timp atributele și legăturile lor simbolice:

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

      Notă: Veți primi mesaje care vor spune că subdirectoarele sunt omise. Deoarece nu avem nevoie de nimic decât fișierele "lib", acest lucru este bine și puteți ignora în siguranță aceste mesaje.

    Fixarea LD_LIBRARY "PATH"
    Trebuie să spunem routerului, unde să căutăm librăriile comune (libs) pe care tocmai le-am instalat și că trebuie să facă acest lucru inainte de cele care au venit cu firmware-ul.

    1. Pentru a face acest lucru setați manual variabila de mediu LD_LIBRARY (pentru moment), pentru ao face astfel încât locația în care am copiat noile fișiere lib să fie prima din "PATH":

      export LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH

    Read-writable "/ etc"
    Vom copia "/ etc" în JFFS și apoi vom face obișnuitul punct de montare "/ etc", indicați-l. Făcând acest lucru, ambele vor deschide o lume a posibilităților, deoarece "/ etc" va deveni ușor de scris (pe care eu personal am așteptat să-l dau sau să ia 7 ani acum) și să permit pachete care se așteaptă ca acest comportament să funcționeze corect.

    1. Creați directorul care va conține "/ etc":

      mkdir -p / jffs / geek / etc

    2. Copiați recursiv întregul "/ etc" păstrând în același timp toate subdirectoarele, atributele fișierelor și legăturile simbolice.

      cp -a / etc / * / jffs / geek / etc /

    3. Manual (pentru moment) "bind mount" directorul "/ etc" în JFFS:

      mount -o lega / jffs / geek / etc / etc /

    Setați directorul Optware ("/ opt")
    Opkg de la OpenWRT, se așteaptă să fie utilizat atunci când este construit firmware-ul routerului. Fiind la acel moment, FileSystem nu este încă în router și, prin urmare, este încă supus schimbării, nu există nicio problemă de instalare în nicio locație din FileSystem. Acesta este motivul pentru care fișierul de configurare Opkg punctează pachetele de instalat în "root" (/) din FileSystem. Cu toate acestea, folosim Opkg după firmware-ul a fost construit și instalat pe router și, deoarece nu putem modifica rădăcina sistemului de fișiere care să poată fi citite, vom indica toate instalările care urmează să fie instalate sub "/ opt". Cu toate acestea, în prezent, opțiunea "/ opt" indică și o locație numai pentru citire de pe firmware-ul routerului. Pentru a depăși acest lucru, vom face "/ opt" la JFFS, care este citit-scriitor.

    1. Pentru a face acest lucru, creați directorul care va conține pachetele Optware:

      mkdir -p / jffs / opt

    2. Manual (deocamdată) "bind mount" directorul "/ opt" la JFFS:

      mount -o legare / jffs / opt / / opt /

      Notă: În afara domeniului de aplicare al acestui ghid, utilizatorii mai avansați pot dori să modifice acest punct de montare, pentru a indica un HD.

    Ajustarea fișierului de configurații Opkg
    Vrem ca fișierul de configurare Opkg să fie acolo unde Opkg îl caută în mod implicit (care este "/ etc") și ajustat să se instaleze în "/ opt".

    1. Pentru a face acest lucru, mutați fișierul de configurație opkg instalat de pachetul Opkg în locația "/ etc" care poate fi citită:

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

    2. Modificați destinația pentru instalările Optware ca fiind "/ opt" în loc de "root" (/).
      Pentru a face acest lucru, cu editorul "vi" sau WinSCP navigați la "/ etc /" și faceți conținutul fișierului "opkg.conf":

      vi /etc/opkg.conf

      Faceți-o să arate:

      src / gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
      dest root / opt
      dest ram / tmp
      lists_dir ext / var / opkg-liste
      opțiunea overlay_root / overlay

      Notă: Puteți modifica directiva "lists_dir" pentru a indica o locație care nu este în RAM, ci mai degrabă pe JFFS. În timp ce acest lucru vă va scuti de actualizarea listelor, înainte de a putea instala software suplimentar (dacă ruterul dvs. este repornit de la ultima dată), ați pierde aproximativ 1,5MB din spațiul JFFS limitat și ați fi comprimat eroziunea acestuia.

    Bună ziua
    Ar trebui să vedeți că Opkg funcționează prin emiterea actualizării și listează comenzile.

    1. Dacă totul a mers bine ar trebui să vedeți că listele Opkg au fost actualizate fără eroare și sunteți gata să implementați scriptul în următorul pas:

      opkg update; lista opkg

    2. Luați timp pentru a începe explorarea pachetelor disponibile în depozit ... .

    Startup script
    Acum trebuie să facem acest lucru, astfel încât toate montarea și traseul necesar se vor întâmpla automat atunci când cizmele routerului. În acest scop, am creat pentru dvs. acest script de initializare geek-init.

    1. Descărcați, apoi extrageți-l și plasați-l sub "/ jffs / geek / etc /". (Luați în considerare acest lucru cu WinSCP).
    2. Faceți scriptul executabil prin trecerea în proprietățile sale cu WinSCP sau executând:

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

    3. Faceți scriptul executat la pornirea routerului, utilizând WebGUI. Sub Administrare -> Comenzi, în caseta de text, pune:

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

      Și faceți clic pe "Salvați pornirea".

    Lovitura anvelopelor
    Dacă totul a mers bine, ar trebui să reușiți să reporniți routerul și să utilizați încă managerul de pachete Opkg. Aceasta înseamnă actualizarea, listarea și instalarea aplicațiilor.
    Să încercăm că totul funcționează prin instalarea comenzii "netstat", care, din anumite motive, a fost omisă de la ultima construcție a lui DD-WRT. Înainte de a face acest lucru, executați comanda netstat în terminal și veți vedea că sunteți rasă de o eroare din shell, spunând "-sh: netstat: not found".

    1. Primul pas va fi întotdeauna să actualizați listele Opkg, pentru a avea cele mai recente înregistrări de pachete din depozit:

      opkg update

    2. Dacă nu știți care pachet conține comanda "netstat", puteți filtra rezultatele folosind.

      lista opkg | grep netstat

    3. Și acum instalați "netstat" utilizând:

      opkg instala net-tools-netstat

      Și acum, când executați din nou comanda netstat, funcționează ... ha ha? :)

    Până la viitoarele articole în care vom instala și configura pachetele software folosind această metodă, ar trebui să aveți ton de geek distractiv explorarea cantitatea mare de software care este acum dreptul de la sfaturi degetul.


    Dacă o astfel de mașină este o imposibilitate virtuală, trebuie să fie logic o improbabilitate finită. Deci, tot ce trebuie să fac pentru a face una este să conceapă cât de improbabilă este, să hrănești figura asta în generatorul de improbabilitate finită, să-i dai o ceașcă proaspătă de ceai fierbinte și să o porți ... ... ... Singurul lucru pe care ei într-adevăr nu-mi place, este un "Smart-Ass".