Har du noen gang ønsket å ha tilleggsfunksjonalitet som E-post, Bit-torrent eller til og med MySQL direkte på ruteren din? Vel, nå kan du. 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 gjort det, må du sjekke ut tidligere artikler i serien:
- Gjør hjemme-ruteren din til en superdrevet ruter med DD-WRT
- Slik fjerner du annonser med Pixelserv på DD-WRT
Forutsatt at du er kjent med disse emnene, fortsett å lese. Husk at denne guiden er litt mer teknisk, og nybegynnere bør være forsiktige når de modrer ruteren.
Trengsler
Jeg har nylig kjøpt en ny
Buffalo WZR-HP-AG300H
som kommer med en ommerket 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-guide. Dessverre har jeg raskt funnet ut at ruteren jeg har, er Atheros-basert, og skriptet fra den wiki-siden støtter ikke det. Så jeg har begynt å grave (som jeg alltid gjør) og kom over flere guider (
1
,
2
,
3
og
4
) som hadde som mål å forklare hvordan man får Opkg til å fungere manuelt. Selv om deres bidrag (blant andre kilder på nettet) til denne guiden var uvurderlig, er noen av instruksjonene (IMHO) rett og slett ikke rett frem. For eksempel å gi deg «lib» -filene fisk, men ikke lære deg å fiske den fra kilden. Må også bruke en Linux-formatert HD eller i det minste en partisjon av en (
som faktisk ikke en gang fungerer på firmware jeg har testet med
). Derfor følte jeg behovet for å lage en kortfattet, enkel å følge og reproduserbar prosedyre for å få
OpenWRT
Opkg pakkeleder for å jobbe med slike rutere.
Oppdatering: Muligheten for montering av partisjoner er blitt introdusert i den nye merkevaren på 17798 alpha build.
Hva er Opkg?
Opkg er en pakkeleder som apt / aptitude og yum. Det fungerer som en erstatning for Ipkg pakkeleder , og kan brukes til å installere programvare som: Overføring BitTorrent-demon, ssmtp-e-postavsenderen og Knockd en demon som utfører skript etter en spesifisert utløsingssekvens for porten, for å nevne noen. Fra OpenWRT-side :
Oppk-verktøyet (en ipkg-gaffel) er en lett pakkebehandling som brukes til å laste ned og installere OpenWrt-pakker fra lokale pakkelager eller de som er lokalisert på Internett.
Opkgforsøker å løse avhengigheter med pakker i repositoriene - hvis dette mislykkes, rapporterer det en feil og avbryter installasjonen av den pakken.
Så ved hjelp av Opkg kan vi installere ting som vi gjorde med Ipkg på " Slipp løs enda mer kraft fra din hjemme-router " guide. De største 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 plagsom og ikke veldig rett frem. Opkg gjør dette automatisk.
- Denne gangen blir vi det legge til programvare på toppen av fastvaren som er på plass, i stedet for å erstatte den. Mens du byttet ut det var en utmerket geekøvelse, var det uten tvil: farlig, utsatt for problemer, irreversibel og verst av alle rutespesifikke. Unødvendig å si at dette er mye enklere og tryggere.
Forutsetninger
Merk følgende for å fullføre denne veiledningen:
- Som nevnt ovenfor ble denne guiden opprettet og testet på Buffalo WZR-HP-AG300H med Buffalos "Pro" firmwareversjon 17135. Den skal fungere på alle Atheros (ar71xx) -baserte rutere med hvilken som helst versjon av DD-WRT av samme revisjon eller høyere, men kjørelengden din kan være veldig.
- Du må aktivere SSH på ruteren, samt installere og bruke WinSCP å koble til den. Dette ble forklart i “ Slik fjerner du annonser med Pixelserv på DD-WRT " guide. Det vil faktisk antas at du er i stand til å gjøre alt som er forklart i denne guiden.
- Du må kunne koble til ruteren ved hjelp av en terminal (SSH anbefales). Noen tips om hvordan du gjør dette, er på DD-WRT wiki .
- Plass til JFFS og omtrent 4 MB innleggsformatert plass for basisoppsettet. JFFS-plass er ikke bare en forutsetning, det er en showstopper. Dette er fordi, hvis ruteren din ikke har minst ovennevnte 4 MB med postformatert plass, vil du ikke få noen reell nytte av denne veiledningen, og det vil være bedre å bruke " Slipp løs enda mer kraft fra din hjemme-router ”Guide for å installere Ipkg-pakker direkte i fastvaren eller installere Ipkg-pakkene manuelt. Følg instruksjonene på “ Slik fjerner du annonser med Pixelserv på DD-WRT ”Guide for å aktivere JFFS, og se hvor mye ledig plass du faktisk har etter den er formatert.
Merk: Det er mulig å gjøre dette med bare 2 MB plass til oppsettet, men da vil vi miste resultatet av "/ etc" blir leseskrivelig og må påkalle Opkg, mens vi spesifiserer konfigurasjonsfilen manuelt hver gang ... så lamme ...
La oss få sprekker
På dette tidspunktet burde du ha aktivert JFFS og er i stand til å SSH / WinSCP inn i ruteren.
- Åpne en terminalsession til ruteren.
-
Opprett 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 prosjektstamme
:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
Merknad 1: I skrivende stund er 618 den nyeste versjonen. Dette kan bli endret i fremtiden, så juster deretter.
Uttale: Det kan være mulig at den eneste forskjellen i å få denne guiden til å fungere for andre arkitekturer, er å få Opkg-installatøren fra gjeldende arkitektur for ruteren din ... men dette er ikke testet av deg. -
Påkalle Ipkg for å installere Opkg manuelt ved å bruke:
ipkg installerer opkg_618-2_ar71xx.ipk
Merk: Du kan, hvis du også vil, installere hver pakke i depotet manuelt på denne måten. Dette vil imidlertid bety at du må løse avhengighetene på egenhånd ... og hva ville være gøy i det?
Få dynamiske bibliotekfiler (“lib” s)
De nødvendige “lib” -filene for å få Opkg til å fungere, er en del av OpenWRT-distribusjonen. For å skaffe dem, må man trekke dem ut fra "Root FileSystem" i nevnte distribusjon.
-
For å gjøre dette, last ned den siste grunnleggende "Root FileSystem" for openWRT-distribusjonen som inneholder de nødvendige "libs fra
OpenWRT prosjektstamme
:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
-
Pakk den ut med:
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
-
Kopier "libs" -filene fra "rootfs" vi har hentet ut til "libs" -katalogen på vår JFFS, mens du bevarer attributtene og symbolske koblingene:
cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /
Merk: Du vil få meldinger om at underkatalogene blir utelatt. Siden vi ikke trenger annet enn "lib" -filene, er dette greit, og du kan trygt ignorere disse meldingene.
Å fikse LD_LIBRARY_PATH ”
Vi må fortelle ruteren hvor vi skal se etter delte biblioteker (libs) vi nettopp har "installert", og at den må gjøre dette
før
de som fulgte med fastvaren.
-
For å gjøre dette angir du LD_LIBRARY-miljøvariabelen manuelt (for nå), slik at den blir stedet der vi kopierte de nye lib-filene, blir den første i "PATH":
eksporter LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH
Leseskrivbar “/ etc”
Vi skal kopiere “/ etc” til JFFS og deretter lage det vanlige “/ etc” monteringspunktet, peke på det. Å gjøre det, vil begge åpne en verden av muligheter, fordi “/ etc” blir leseskrivbar (som jeg personlig har ventet på å gi eller tar 7 år nå) og gjør det mulig for pakker som forventer denne oppførselen, å fungere riktig.
-
Lag katalogen som inneholder "/ etc":
mkdir -p / jffs / geek / etc
-
Kopier hele “/ etc” rekursivt 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:
monter -o bind / jffs / geek / etc / / etc /
Still Optware-katalogen (“/ opt”)
Opkg fra OpenWRT, forventer å bli brukt når ruteren har fastvare. På det tidspunktet er FileSystemet ikke på ruteren ennå, og dermed fortsatt kan endres, det er ikke noe problem å installere noe sted på FileSystemet. Derfor peker Opkg-konfigurasjonsfilen pakker for å installere til "roten" (/) til FileSystem. Imidlertid bruker vi Opkg
etter
fastvaren ble bygget og installert på ruteren, og da vi ikke kan endre roten til filsystemet for å kunne leses, vil vi peke på alle installasjoner som skal installeres under “/ opt”. Imidlertid peker “/ opt” for øyeblikket også på en skrivebeskyttet plassering på rutens fastvare. For å overvinne dette vil vi gjøre "/ opt" poeng til JFFS, som kan leses.
-
For å gjøre dette, opprett katalogen som inneholder Optware-pakkene:
mkdir -p / jffs / opt
-
Manuelt (foreløpig) "bind monter" katalogen "/ opt" til JFFS-en:
monter -o bind / jffs / opt / / opt /
Merk: Selv om omfanget av denne veiledningen ikke mer avanserte brukere vil kanskje endre dette monteringspunktet, for å peke på en HD.
Justere Opkg-konfigurasjonsfilen
Vi vil at Opkg-konfigurasjonsfilen skal være der Opkg søker etter den som standard (som er “/ etc”) og justeres for å installere til “/ opt”.
-
For å gjøre dette, flytt opkg-konfigurasjonsfilen som er installert av Opkg-pakken til den lesbare "/ etc" -plasseringen:
mv /jffs/etc/opkg.conf /etc/
-
Endre destinasjonen for Optware-installasjoner til å være “/ opt” i stedet for “root” (/).
For å gjøre dette, naviger til “vi” -editoren eller WinSCP til “/ etc /” og gjør innholdet til “opkg.conf”: