Slik installerer du tilleggsprogramvare på Home Router (DD-WRT)

Innholdsfortegnelse:

Slik installerer du tilleggsprogramvare på Home Router (DD-WRT)
Slik installerer du tilleggsprogramvare på Home Router (DD-WRT)

Video: Slik installerer du tilleggsprogramvare på Home Router (DD-WRT)

Video: Slik installerer du tilleggsprogramvare på Home Router (DD-WRT)
Video: Terraforming Mars Strategy Guide TOP 10 TIPS - YouTube 2024, Mars
Anonim
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.
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å din hjemmerouter inn i en superdrevet router 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 leveres 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 til å arbeide manuelt. Mens 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å å gjøre bruk av en Linux formatert HD eller minst en partisjon av en (som egentlig ikke engang jobber med firmaene jeg har testet med). Derfor følte jeg behovet for å lage den nedenfor koncise, enkle å følge og reproduserbare prosedyren for å få OpenWRT Opkg pakkebehandling til å jobbe med slike rutere.

Oppdatering: Monteringspartisjonen har blitt gjeninnført i den re-branded versjonen på 17798 alpha build.

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:

The opkg utility (an ipkg fork) is a lightweight package manager used to download and install OpenWrt packages from local package repositories or ones located on the Internet.

Opkg

forsøker å løse avhengigheter 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:

  1. 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.
  2. 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:

  1. 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.
  2. 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" -guiden. Faktisk vil det antas at du er i stand til å gjøre alt som forklares i den guiden.
  3. 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.
  4. Plass til JFFS og omtrent 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 ville vi miste oppstarten av "/ etc" bli lesbar og måtte påkalle Opkg, mens du spesifiserte 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.

  1. Åpne en terminal økt til ruteren.
  2. 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.

  1. For å gjøre dette, last ned Opkg installasjonspakken for ar71xx-arkitekturen fra OpenWRT-prosjektet stammen:

    wget https://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 ikke testet av ditt.

  2. Invoke Ipkg å installere Opkg manuelt ved å bruke:

    ipkg install 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å egenhånd … og hva ville det være moro i det?

Å skaffe 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.

  1. For å gjøre dette, last ned det nyeste grunnleggende "Root FileSystem" for openWRT distrebution som inneholder de nødvendige "lib" s fra OpenWRT-prosjektet trunk:

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

  2. Trekk ut det ved å bruke:

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

  3. 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.

  1. For å gjøre dette settes LD_LIBRARY miljøvariabelen manuelt (for nå) for å gjøre det slik at stedet der vi kopierte de nye lib-filene, blir den første i "PATH":

    export 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 begge å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.

  1. Opprett katalogen som vil holde "/ etc":

    mkdir -p /jffs/geek/etc

  2. Rekursivt kopiere hele "/ etc" mens du beholder alle underkataloger, filattributter og symbolske lenker.

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

  3. 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. På den tiden er FileSystem ikke på ruteren ennå, 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.

  1. For å gjøre dette, opprett katalogen som vil inneholde Optware-pakkene:

    mkdir -p /jffs/opt

  2. Manuelt (for nå) "bind mount" "/ opt" -katalogen 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".

  1. For å gjøre dette, flytt oppkg-konfigurasjonsfilen som er installert av Opkg-pakken, til lesbar skrivbar "/ etc" -sted:

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

  2. Endre destinasjonen for Optware installasjoner å være "/ opt" i stedet for "root" (/). For å gjøre dette, bruker vi-redigereren eller WinSCP til "/ etc /" og gjør "opkg.conf" -filens innhold:

    vi /etc/opkg.conf

    Gjør det slik ut:

    src/gz snapshots https://downloads.openwrt.org/snapshots/trunk/ar71xx/packages dest root /opt dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay

    Merk: Du kan endre "list_dir" -direktivet for å peke til et sted som ikke er i RAM, men heller på JFFS. Mens 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.

  1. 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 update; opkg list

  2. Ta deg tid til å begynne å utforske pakkene som er tilgjengelige på lageret.

Startup script Vi må 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.

  1. Last ned, hent det og legg det under "/ jffs / geek / etc /". (Vurder å gjøre dette med WinSCP).
  2. Gjør skriptet kjørbart ved å gå inn i sine egenskaper med WinSCP eller utføre:

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

  3. 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 av 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".

  1. Ditt første skritt vil alltid være, for å oppdatere Opkg-lister, for å få de nyeste pakkelistene fra depotet:

    opkg update

  2. Hvis du ikke vet hvilken pakke som inneholder "netstat" -kommandoen, kan du filtrere resultatene ved hjelp av.

    opkg list | grep netstat

  3. Og nå installer "netstat" ved å bruke:

    opkg install 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 få tonnevis av nørdglede å utforske den enorme mengden programvare som nå er rett ved fingertipsene dine.

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 til den endelige usannsynligheten generatoren, gi den en frisk kopp veldig varm te og slå den på … … ………… Den eneste tingen de egentlig ikke liker, er en "Smart-Ass".

Anbefalt: