If-Koubou

Cum să instalați software suplimentar pe routerul dvs. de acasă (DD-WRT)

Cum să instalați software suplimentar pe routerul dvs. de acasă (DD-WRT) (Cum să)

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 scufundă în modul în care să instaleze software-ul Opkg pe DD-WRT.

Imagine de 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 dvs. de 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 și începătorii ar trebui să fie atenți atunci când își modifică ruterul.

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 rapid că ruterul pe care l-am primit este Atheros și script-ul de pe acea pagină wiki nu o suportă. Așa că am început să săpat (așa cum am făcut întotdeauna) și am dat peste câteva ghiduri (1, 2, 3 și 4) care aveau ca scop explicarea modului în care Opkg a lucrat 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ă folosiți un format 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 procedura de concis, simplu de urmat și reproductibilă de mai jos 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, cum ar fi apt / aptitude și yum. 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 secvență de declanșare specificată a portului, pentru a numi câteva. Din site-ul OpenWRT:

Utilitarul opkg (un ipkg fork) este un manager de pachete ușor de folosit pentru descărcarea și instalarea pachetelor OpenWrt din depozitele locale de pachete sau cele situate 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 ruterul de acasă". 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 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 lui Buffalo. Ar trebui să funcționeze pe orice router bazat pe Atheros (ar71xx) cu orice versiune a DD-WRT de aceeași revizuire 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 reclamele cu Pixelserv pe DD-WRT". De fapt, se va presupune că sunteți în stare să faceți tot ce este explicat în acel 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ă, în cazul în care routerul dvs. nu are cel puțin spațiul formatat după 4MB, 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ă facem acest lucru doar cu 2MB 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ă puteți 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. cu adevărat.

  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ă rezolvați dependențele pe cont propriu ... și care ar fi distracția în asta?

Obținerea fișierelor dinamice din bibliotecă ("lib")
Fișierele necesare "lib" pentru a face munca 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 (deocamdată), 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, pentru că "/ etc" va deveni citită și poate fi scrisă (pe care am așteptat-o ​​personal pentru 7 ani acum) și permite pachetelor 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 întreaga "/ 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" la JFFS:

    mount -o legare / 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 schimba rădăcina sistemului de fișiere care să poată fi citite, vom indica toate instalațiile 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. Manuale (deocamdată) "bind mount" directorul "/ opt" în 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 la 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țiune 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 instala software suplimentar (dacă ruterul dvs. este repornit de la ultima dată), ați pierde aproximativ 1,5MB din spațiul JFFS limitate și ați fi comprimat eroziunii sale.

Bună ziua
Ar trebui să puteți vedea că Opkg lucrează 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. Aveți timp să începeți să explorați pachetele disponibile în depozit ....

Scriptul StartUp
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

    Faceți clic pe "Salvați pornirea".

Lovitura anvelopelor
Dacă totul a mers bine, acum ar trebui să puteți reporni 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 DD-WRT. Înainte de a face acest lucru, executați comanda netstat în terminal și veți vedea că sunteți răzuit 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. 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 articolele viitoare în care vom instala și configura pachetele de software folosind această metodă, puteți avea ton de geek distractiv explorarea cantitatea mare de software-ul care este acum chiar 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 acea figură î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".