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:
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.
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.
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:
Pentru a completa această notă de orientare, urmați următoarele:
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 ...
În acest moment ar trebui să fi activat JFFS și să puteți SSH / WinSCP în router.
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.
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.
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ă.
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
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.
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.
mkdir -p / jffs / geek / etc
cp -a / etc / * / jffs / geek / etc /
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.
mkdir -p / jffs / opt
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".
mv /jffs/etc/opkg.conf / etc /
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.
opkg update; lista opkg
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.
chmod + x /jffs/geek/etc/geek-init.sh
/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".
opkg update
lista opkg | grep netstat
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".