Slik installerer du tilleggsprogramvare på din hjemmerouter (DD-WRT)
Har du noen gang ønsket å ha tilleggsfunksjoner som Email, Bit-torrent eller MySQL direkte på ruteren din? Vel, kanskje nå du kan. How-To Geek dykker inn i hvordan du installerer Opkg-programvare på DD-WRT.
Bilde av Jean Spector og Aviad Raviv
Hvis du ikke allerede har det, vær sikker og sjekk ut tidligere artikler i serien:
- Slå hjemmevirksomden inn i en superdrevet ruter med DD-WRT
- Slik fjerner du annonser med Pixelserv på DD-WRT
Forutsatt at du er kjent med emnene, fortsett å lese. Husk at denne veiledningen er litt mer teknisk, og nybegynnere bør være forsiktige når de modger ruteren.
prøvelser
Jeg har nylig kjøpt en ny Buffalo WZR-HP-AG300H som følger med en re-branded versjon av DD-WRT. På grunn av at denne ruteren har en USB-port, koblet jeg umiddelbart en HD og prøvde å bruke "Optware, The Right Way" wiki-guiden. Dessverre har jeg raskt funnet ut at ruteren jeg fikk, er Atheros-basert og skriptet fra den wikisiden, støtter ikke den. Så jeg har begynt å grave (som jeg alltid gjør) og kom over flere guider (1, 2, 3 og 4) som skulle forklare hvordan man får Opkg å arbeide manuelt. Selv om deres bidrag (blant annet kilder på nettet) til denne veilederen var uvurderlig, er noen av instruksjonene (IMHO) rett og slett ikke rett fremover. For eksempel gir du "lib" -filene fisk, men lærer deg ikke hvordan du fisker det fra kilden. Også å måtte bruke en Linux formatert HD eller minst en partisjon av en (som egentlig ikke engang jobber på firmwares jeg har testet med). Derfor følte jeg behovet for å lage den nedenfor konsise, enkle å følge og reproduserbare prosedyren for å få OpenWRT Opkg pakkebehandling til å fungere på slike rutere.
Oppdatering: Monteringspartisjonen har blitt gjeninnført i den nye versjonen på 17798 alpha-bygningen.
Hva er Opkg?
Opkg er en pakkebehandling som apt / aptitude og yum. Den fungerer som en erstatning for Ipkg-pakkebehandling, og kan brukes til å installere programvare som: Transmisjon BitTorrent-demonen, ssmtp-e-postsenderen og Knockd en demon som utfører skript etter en spesifisert portutløsende sekvens for å nevne noen få. Fra OpenWRT nettstedet:
Opkg-verktøyet (en ipkg-gaffel) er en lett pakkehåndterer som brukes til å laste ned og installere OpenWrt-pakker fra lokale pakkelager eller på Internett.
Opkg
forsøker å løse avhengighet med pakker i lageret - hvis dette mislykkes, vil det rapportere en feil og avbryte installasjonen av den pakken.
Så ved å bruke Opkg kan vi installere ting som vi gjorde med Ipkg på "Unleash Even More Power from Your Home Router" guide. De store forskjellene er:
- For å gi eksemplene på SSMTP og Knockd, måtte du virkelig finne ut avhengighetene manuelt. Fremgangsmåten for å gjøre dette manuelt er plagsomt og ikke veldig rett frem. Opkg gjør dette automatisk.
- Denne gangen vil vi være legge programvare på toppen av fastvaren som er på plass, istedenfor å erstatte den. Mens det ble erstattet, var det en utmerket geek øvelse, det var uten tvil: farlig, utsatt for problemer, irreversibel og verst av alle ruteren spesifikke. Det er unødvendig å si at dette er enklere og sikrere.
Forutsetninger
For å fullføre denne veiledningen, merk følgende:
- Som nevnt ovenfor, ble denne veiledningen opprettet og testet på Buffalo WZR-HP-AG300H med Buffalo's "Pro" firmware versjon 17135. Den skal fungere på alle Atheros (ar71xx) baserte rutere med hvilken som helst versjon av DD-WRT av samme revisjon eller over , men kjørelengde kan være veldig.
- Du må aktivere SSH på ruteren, samt installere og bruke WinSCP for å koble til den. Dette ble forklart i "Slik fjerner du annonser med Pixelserv på DD-WRT" guide. Faktisk vil det antas at du er i stand til å gjøre alt som er forklart i den guiden.
- Du må kunne koble til ruteren ved hjelp av en terminal (SSH anbefales). Noen poeng på hvordan du gjør dette, er på DD-WRT wiki.
- Plass til JFFS og ca. 4 MB postformatert plass til grunnoppsettet. JFFS-rom er ikke bare en forutsetning, det er en show-stopper. Dette skyldes at hvis ruteren ikke har minst 4MB postformatert plass, vil du ikke få noen reell fordel av denne veiledningen, og det vil være bedre å bruke "Slett enda mer strøm fra din hjemmerouter" veiledning for å installere Ipkg-pakker direkte inn i fastvaren eller installere Ipkg-pakkene manuelt. Følg instruksjonene i "Slik fjerner du annonser med Pixelserv på DD-WRT" -guiden for å aktivere JFFS, og se hvor mye ledig plass du egentlig har etter den er formatert.
Merk: Det er mulig å gjøre dette med bare 2 MB plass til oppsettet, men da vil vi miste oppstart av "/ etc" bli lesbar og måtte påkalle Opkg, mens du spesifiserer konfigurasjonsfilen manuelt hver gang ... som er som så lammet ...
Lar deg sprekke
På dette tidspunktet bør du ha aktivert JFFS og kan SSH / WinSCP inn i ruteren.
- Åpne en terminal økt til ruteren.
- Lag en midlertidig katalog som vi skal jobbe i:
mkdir / tmp / 1
cd / tmp / 1
Bruk Ipkg til å installere Opkg
Mens vi skal erstatte Ipkg som pakkebehandling, vil vi bruke den til å installere Opkg installasjonspakken manuelt..
- For å gjøre dette, last ned Opkg-installasjonspakken for ar71xx-arkitekturen fra OpenWRT-prosjektstammen:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
Merk 1: På tidspunktet for denne skrivingen er 618 den nyeste versjonen, dette kan bli endret i fremtiden, så juster deretter.
Notat 2: Det kan være mulig at den eneste forskjellen i å få denne veiledningen til å fungere for andre arkitekturer, er å få Opkg installasjonsprogrammet fra den aktuelle arkitekturen til ruteren din ... men dette er uprøvd av din virkelig. - Invoke Ipkg å installere Opkg manuelt ved å bruke:
ipkg installere opkg_618-2_ar71xx.ipk
Merk: Du kan også, hvis du vil, installere hver pakke i depotet manuelt på denne måten. Men dette ville bety at du må løse avhengighetene på egen hånd ... og hva ville være moroa i det?
Hente de dynamiske biblioteksfiler ("lib" s)
De nødvendige "lib" -filene for å lage Opkg-arbeid, er en del av OpenWRT-distribusjonen. For å skaffe dem, må man trekke dem fra "Root FileSystem" av nevnte distribusjon.
- For å gjøre dette, last ned det nyeste grunnleggende "Root FileSystem" for openWRT distrebution som inneholder de nødvendige "lib" s fra OpenWRT prosjektet stammen:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
- Trekk ut det ved å bruke:
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
- Kopier "libs" -filene fra "rootfs" vi har hentet over til "libs" -katalogen på JFFS, samtidig som vi beholder deres attributter og symbolske lenker:
cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /
Merk: Du får meldinger som sier at underkatalogene blir utelatt. Siden vi ikke trenger noe annet enn "lib" -filene, er dette greit, og du kan trygt ignorere disse meldingene.
Å fikse LD_LIBRARY "PATH"
Vi må fortelle ruteren, hvor du skal lete etter de delte bibliotekene (libs) vi nettopp har "installert" og at den trenger å gjøre dette før de som fulgte med fastvaren.
- For å gjøre dette settet LD_LIBRARY miljøvariabelen manuelt (for nå) for å gjøre det slik at stedet der vi kopierte de nye lib-filene, vil være den første i "PATH":
eksporter LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH
Les-skrivbar "/ etc"
Vi skal kopiere "/ etc" til JFFS og deretter gjøre det vanlige "/ etc" monteringspunktet, pek på det. Å gjøre det, vil både åpne opp en verden av muligheter, fordi "/ etc" blir lesbar (som jeg personlig har ventet på å gi eller ta 7 år nå) og aktivere pakker som forventer atferden, for å fungere riktig.
- Opprett katalogen som vil holde "/ etc":
mkdir -p / jffs / geek / etc
- Rekursivt kopiere hele "/ etc" mens du beholder alle underkataloger, filattributter og symbolske lenker.
cp -a / etc / * / jffs / geek / etc /
- Manuelt (for nå) "bind mount" katalogen "/ etc" til JFFS en:
mount -o bind / jffs / geek / etc / / etc /
Sett inn Optware-katalogen ("/ opt")
Opkg fra OpenWRT, forventer å bli brukt når ruteren er fastvare er bygget. Som sådan, er FileSystem ennå ikke på ruteren, og det er derfor fortsatt gjenstand for endring, det er ikke noe problem å installere til noe sted på FileSystem. Det er derfor Opkg-konfigurasjonsfilen peker pakker for å installere til "root" (/) av FileSystem. Vi bruker imidlertid Opkg etter fastvaren ble bygget og installert på ruteren, og da vi ikke kan endre roten til filsystemet for å være skrivebeskyttet, vil vi peke på alle installasjoner som skal installeres under "/ opt". Men for øyeblikket peker "/ opt" også på en skrivebeskyttet plassering på ruterenens firmware. For å overvinne dette, vil vi gjøre "/ opt" pek på JFFS, som er lesbar.
- For å gjøre dette, opprett katalogen som vil inneholde Optware-pakkene:
mkdir -p / jffs / opt
- Manuelt (for nå) "bind mount" katalogen "/ opt" til JFFS en:
mount -o bind / jffs / opt / / opt /
Merk: Utenom omfanget av denne veiledningen, mer avanserte brukere vil kanskje endre dette monteringspunktet, for å peke på en HD.
Justerer Opkg-konfigurasjonsfilen
Vi vil at Opkg-konfigurasjonsfilen skal være hvor Opkg søker etter det som standard (som er "/ etc") og justert for å installere til "/ opt".
- For å gjøre dette, flytt oppkg-konfigurasjonsfilen som er installert av Opkg-pakken, til skrivbar "/ etc" -sted:
mv /jffs/etc/opkg.conf / etc /
- Endre destinasjonen for Optware installasjoner å være "/ opt" i stedet for "root" (/).
For å gjøre dette, navigerer vi med "vi" -editoren eller WinSCP til "/ etc /" og gjør "opkg.conf" -filens innhold:vi /etc/opkg.conf
Gjør det slik ut:
src / gz stillbilder http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
dest root / opt
dest ram / tmp
lists_dir ext / var / opkg-lister
alternativ overlay_root / overlayMerk: Du kan endre "list_dir" -direktivet for å peke til et sted som ikke er i RAM, men heller på JFFS. Selv om dette vil lindre deg fra å oppdatere lister, før du kan installere tilleggsprogramvare (hvis ruteren startes på nytt fra siste gang), vil du miste ca. 1,5 MB av det knappe JFFS-rommet, og du vil kompensere for erosjonen.
Hei kjære
Du bør kunne se at Opkg jobber ved å utgjøre oppdateringen og lister opp kommandoer.
- Hvis alt gikk bra, bør du se at Opkg-lister har blitt oppdatert uten feil, og du er klar til å implementere skriptet i neste trinn:
opkg oppdatering; opkg liste
- Ta deg tid til å begynne å utforske pakkene som er tilgjengelige på lageret ... .
Startup script
Vi trenger nå å gjøre det slik at alt nødvendig montering og stiing skjer automatisk når ruteren starter. For det formål har vi opprettet for deg, dette initialiserings-geek-init-skriptet.
- Last ned, hent det og legg det under "/ jffs / geek / etc /". (Vurder å gjøre dette med WinSCP).
- Gjør skriptet kjørbart ved å gå inn i sine egenskaper med WinSCP eller utføre:
chmod + x /jffs/geek/etc/geek-init.sh
- Gjør skriptet utført på ruterenes oppstart, ved hjelp av WebGUI. Under Administrasjon -> Kommandoer, i tekstboksen, sett:
/jffs/geek/etc/geek-init.sh web-gui
Og klikk "Lagre oppstart".
Kicking dekkene
Hvis alt gikk bra, bør du nå kunne starte om ruteren og fortsatt bruke Opkg pakkebehandling. Det er å oppdatere, liste og installere programmer.
La oss teste at alt fungerer ved å installere "netstat" -kommandoen, som for en eller annen grunn er utelatt fra DD-WRTs bygger i det siste. Før vi gjør dette, utfør netstat-kommandoen i terminalen, og du vil se at du er revet av en feil fra skallet, og sier "-sh: netstat: ikke funnet".
- Ditt første skritt vil alltid være, for å oppdatere Opkg-lister, for å få de nyeste pakkelistene fra depotet:
opkg oppdatering
- Hvis du ikke vet hvilken pakke som inneholder "netstat" -kommandoen, kan du filtrere resultatene ved hjelp av.
opkg list | grep netstat
- Og installer nå "netstat" ved å bruke:
opkg installer net-tools-netstat
Og nå, når du utfører netstat-kommandoen igjen virker det ... ryddig ha? :)
Frem til de fremtidige artiklene der vi skal installere og konfigurere programvarepakker ved hjelp av denne metoden, kan du ha tonnevis av nørdgøy å utforske den enorme mengden programvare som nå er rett ved fingeren din.
Hvis en slik maskin er en virtuell umulighet, må det logisk være en endelig usannsynlighet. Så alt jeg trenger å gjøre for å gjøre en er å finne ut hvor nøyaktig det er, mate den figuren i den endelige usannsynligheten generatoren, gi den en frisk kopp veldig varm te og slå den på ... ... ... Den eneste tingen de virkelig ikke liker, er en "Smart-Ass".