Hjemmeside » hvordan » Sådan installeres ekstra software på din Home Router (DD-WRT)

    Sådan installeres ekstra software på din Home Router (DD-WRT)

    Har du nogensinde ønsket at have ekstra funktionalitet som Email, Bit-torrent eller endda MySQL direkte på din router? Nå måske nu kan du. How-To Geek dives til, hvordan man installerer Opkg software på DD-WRT.

    Billede af Jean Spector og Aviad Raviv

    Hvis du ikke allerede har det, skal du være sikker på, og se tidligere artikler i serien:

    • Skift din Home Router til en Super-Powered Router med DD-WRT
    • Sådan fjerner du annoncer med Pixelserv på DD-WRT

    Forudsat at du er bekendt med disse emner, skal du fortsætte med at læse. Husk at denne vejledning er lidt mere teknisk, og begyndere skal være forsigtige, når de modder deres router.

    trængsler

    Jeg har for nylig købt en ny Buffalo WZR-HP-AG300H, som følger med en ny mærkevareversion af DD-WRT. På grund af at denne router har en USB-port, sluttede jeg straks en HD og forsøgte at bruge wiki-guiden "Optware, The Right Way". Desværre har jeg hurtigt fundet, at den router, jeg fik, er Atheros-baseret og scriptet fra den wiki-side, understøtter det ikke. Så jeg har begyndt at grave (som jeg altid gør) og kom på tværs af flere guider (1, 2, 3 og 4), der havde til formål at forklare, hvordan man får Opkg til at arbejde manuelt. Mens deres bidrag (blandt andet kilder på nettet) til denne vejledning var uvurderlig, er nogle af instruktionerne (IMHO) simpelthen ikke ligefrem nok. For eksempel giver dig "lib" -filerne fisk, men lærer dig ikke, hvordan du fisker det fra kilden. Også nødt til at gøre brug af en Linux formateret HD eller i det mindste en partition af en (som faktisk ikke engang arbejder på firmwares jeg har testet med). Derfor følte jeg behovet for at oprette nedenstående koncise, enkle at følge og reproducerbare procedure for at få OpenWRT Opkg pakkechef til at arbejde på sådanne routere.

    Opdatering: Den monteringspartitioneringskapacitet er genindført i den nye brandversion på 17798 alpha build.

    Hvad er Opkg?

    Opkg er en pakke manager som apt / aptitude og yum. Det fungerer som en erstatning for Ipkg-pakkeadministratoren og kan bruges til at installere software som: Transmission BitTorrent-dæmonen, ssmtp-e-mail-afsenderen og Knockd en daemon, der udfører scripts efter en bestemt portudløsende sekvens for at nævne nogle få. Fra OpenWRT-webstedet:

    Opkg-værktøjet (en ipkg-gaffel) er en letpakkepakke, der bruges til at downloade og installere OpenWrt-pakker fra lokale pakkeregister eller dem, der findes på internettet. Opkg forsøger at løse afhængigheder med pakker i lageret - hvis det fejler, vil det rapportere en fejl og afbryde installationen af ​​den pakke.

    Så ved at bruge Opkg kan vi installere ting som vi gjorde med Ipkg på "Unleash even more Power fra din Home Router" guide. De væsentligste forskelle er:

    1. For at give eksemplerne på SSMTP og Knockd, måtte din virkelig finde ud af afhængighederne manuelt. Fremgangsmåden til at gøre dette manuelt er generende og ikke meget ligefrem. Opkg gør dette automatisk.
    2. Denne gang vil vi være tilføjer software oven på den firmware, der er på plads, snarere end at erstatte den. Under udskiftning var det en fremragende geek øvelse, det var uden tvivl: farligt, tilbøjelige til problemer, irreversible og værste af alle router specifikke. Det er overflødigt at sige, at dette er langt enklere og sikrere.

    Forudsætninger

    For at udfylde denne vejledning bemærk følgende:

    1. Som nævnt ovenfor blev denne vejledning oprettet og testet på Buffalo WZR-HP-AG300H med Buffalo's "Pro" firmware version 17135. Den skal fungere på alle Atheros (ar71xx) baserede routere med enhver version af DD-WRT af samme revision eller over , men din kilometertal kan meget.
    2. Du skal aktivere SSH på routeren, samt installere og bruge WinSCP til at oprette forbindelse til det. Dette blev forklaret i vejledningen "Sådan fjerner du annoncer med Pixelserv på DD-WRT". Faktisk antages det, at du er i stand til at gøre alt, hvad der forklares i den vejledning.
    3. Du skal kunne oprette forbindelse til routeren ved hjælp af en terminal (SSH anbefales). Nogle pointers om hvordan man gør dette er på DD-WRT wiki.
    4. Plads til JFFS og ca. 4 MB postformateret plads til basisopsætningen. JFFS-rum er ikke kun en forudsætning, det er en showstop. Dette skyldes, at hvis din router ikke har mindst de ovenstående 4 MB postformateret plads, vil du ikke få nogen reel fordel af denne vejledning, og det vil være bedre ved at bruge "Slip endnu mere strøm fra din hjemmerouter" guide til at installere Ipkg pakker direkte i firmware eller installere Ipkg pakker manuelt. Følg instruktionerne i "Guide til fjernelse af annoncer med Pixelserv på DD-WRT" guide for at aktivere JFFS, og se, hvor meget ledig plads du rent faktisk har efter den er formateret.

    Bemærk: Det er muligt at gøre dette med kun 2 MB plads til opsætningen, men så vil vi miste resultatet af "/ etc" bliver læsbare og skulle påkalde Opkg, mens du angiver konfigurationsfilen manuelt hver gang ... som er som så lammede ...  

    Lad os få revner

    På dette tidspunkt skulle du have aktiveret JFFS og kunne SSH / WinSCP ind i routeren.

    1. Åbn en terminal session til routeren.
    2. Opret en midlertidig mappe, som vi vil arbejde i:

      mkdir / tmp / 1
      cd / tmp / 1

    Brug Ipkg til at installere Opkg
    Mens vi skal erstatte Ipkg som pakkechef, bruger vi den til manuelt at installere Opkg installationspakken.

    1. For at gøre dette skal du downloade Opkg installationspakken til ar71xx-arkitekturen fra OpenWRT-projektstammen:

      wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk

      Note 1: På tidspunktet for denne skrivning er 618 den nyeste version, det kan blive udsat for ændringer i fremtiden, så tilpass derefter.
      Note 2: Det kan være muligt, at den eneste forskel i at få denne vejledning til at arbejde for andre arkitekturer er at få Opkg installatøren fra den gældende arkitektur til din router ... men dette er uprøvet af din virkelig.

    2. Invoke Ipkg til manuelt at installere Opkg ved hjælp af:

      ipkg installere opkg_618-2_ar71xx.ipk

      Bemærk: Du kan også, hvis du har lyst, installere alle pakker i lageret manuelt på denne måde. Men det ville betyde, at du bliver nødt til at løse afhængighederne på egen hånd ... og hvad ville det være sjovt i det?

    Indhentning af de dynamiske biblioteksfiler ("lib" s)
    De nødvendige "lib" -filer til at opbygge Opkg-arbejde er en del af OpenWRT-distributionen. For at få dem skal man udtrække dem fra "Root FileSystem" af fordelingen.

    1. For at gøre dette skal du downloade det nyeste grundlæggende "Root FileSystem" til openWRT distrebutionen, som indeholder de nødvendige "lib" s fra OpenWRT-projektstammen:

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

    2. Uddrag det ved hjælp af:

      tjære xvzf openwrt-ar71xx-generic-rootfs.tar.gz

    3. Kopier "libs" -filerne fra de "rootfs", vi har hentet ovenfor til "libs" -mappen på vores JFFS, samtidig med at de bevarer deres attributter og symbolske links:

      cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /

      Bemærk: Du får beskeder, der siger, at underkatalogerne udelades. Da vi ikke behøver andet end "lib" -filerne, er det fint, og du kan sikkert ignorere disse meddelelser.

    Fastgørelse af LD_LIBRARY "PATH"
    Vi skal fortælle routeren, hvor vi skal kigge efter de fælles biblioteker (libs), vi lige har "installeret", og at den skal gøre det Før dem der fulgte med firmwaren.

    1. For at gøre dette sætter LD_LIBRARY miljøvariablen manuelt (for nu) for at gøre det sådan, hvor vi kopierede de nye lib-filer, bliver den første i "PATH":

      eksport LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH

    Læsbar "/ etc"
    Vi skal kopiere "/ etc" til JFFS og derefter lave det normale "/ etc" mount point, pege på det. Hvis du gør det, vil begge åbne en verden af ​​muligheder, fordi "/ etc" bliver læsbar (som jeg personligt har ventet på at give eller tage 7 år nu) og aktivere pakker, der forventer denne adfærd, for at fungere korrekt.

    1. Opret den mappe, der vil holde "/ etc":

      mkdir -p / jffs / geek / etc

    2. Rekursivt kopiere hele "/ etc", samtidig med at alle undermapper, filattributter og symbolske links bevares.

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

    3. Manuelt (for nu) "bind mount" "/ etc" biblioteket til JFFS one:

      mount -o bind / jffs / geek / etc / / etc /

    Indstil Optware-mappen ("/ opt")
    Opkg fra OpenWRT, forventer at blive brugt, når routerens firmware er bygget. På et sådant tidspunkt er FileSystem endnu ikke på routeren, og det er derfor stadig genstand for ændringer, at der ikke er noget problem at installere til ethvert sted på FileSystem. Derfor opsætter Opkg-konfigurationsfilen pakker, der skal installeres til "root" (/) i FileSystem. Vi bruger dog Opkg efter firmwaren blev bygget og installeret på routeren, og da vi ikke kan ændre roden i filsystemet til læsning, kan vi pege på alle installationer, der skal installeres under "/ opt". I øjeblikket peger "/ opt" imidlertid også på et skrivebeskyttet sted på routerens firmware. For at overvinde dette vil vi lave "/ opt" punkt på JFFS, som er læsbar.

    1. For at gøre dette skal du oprette den mappe, der vil indeholde Optware-pakkerne:

      mkdir -p / jffs / opt

    2. Manuelt (for nu) "bind mount" "/ opt" -kataloget til JFFS one:

      mount -o bind / jffs / opt / / opt /

      Bemærk: Mens det er uden for denne vejledning, mere avancerede brugere vil måske ændre dette monteringspunkt for at pege på en HD.

    Justering af Opkg-konfigurationsfilen
    Vi vil have Opkg-konfigurationsfilen, hvor Opkg søger efter det som standard (som er "/ etc") og justeret for at installere til "/ opt".

    1. For at gøre dette skal du flytte opkg-konfigurationsfilen, der er installeret af Opkg-pakken, til læsbar "/ etc" -sted:

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

    2. Skift destination for Optware installationer til at være "/ opt" i stedet for "root" (/).
      For at gøre dette skal vi "editor" eller WinSCP navigere til "/ etc /" og gøre "opkg.conf" filens indhold:

      vi /etc/opkg.conf

      Få det til at ligne:

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

      Bemærk: Du kan ændre direktivet "lists_dir" for at pege på et sted, der ikke er i RAM, men snarere på JFFS. Selvom dette vil afhjælpe dig fra at opdatere listerne, før du kan installere yderligere software (hvis din router genstartes fra sidste gang), ville du miste ca. 1,5 MB af det knappe JFFS-rum, og du ville kompensere for dets erosion.

    Hej skat
    Du skal kunne se, at Opkg arbejder ved at udstede opdateringen og lister kommandoer.

    1. Hvis alt gik godt, skal du se, at Opkg listerne er opdateret uden fejl, og du er klar til at gennemføre scriptet i næste trin:

      opkg opdatering; opkg liste

    2. Tag dig tid til at begynde at udforske de tilgængelige pakker på lageret ... .

    StartUp script
    Vi skal nu gøre det, så alle de nødvendige monteringer og vejning sker automatisk, når routeren starter. Til dette formål har vi skabt for dig dette initierings geek-init script.

    1. Download, så tag det ud og læg det under "/ jffs / geek / etc /". (Overvej at gøre dette med WinSCP).
    2. Gør scriptet eksekverbart ved at gå ind i dets egenskaber med WinSCP eller udføre:

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

    3. Gør scriptet udført på routerens opstart, ved hjælp af WebGUI. Under Administration -> Kommandoer, i tekstboksen, sæt:

      /jffs/geek/etc/geek-init.sh web-gui

      Og klik på "Gem start".

    Springer dækene
    Hvis alt gik godt, skal du nu kunne genstarte routeren og stadig bruge Opkg-pakkechefen. Det er at opdatere, liste og installere applikationer.
    Lad os teste, at alt fungerer ved at installere "netstat" kommandoen, som af en eller anden grund er blevet udeladt fra DD-WRTs bygger på det seneste. Før vi gør dette, udfør netstat-kommandoen i terminalen, og du vil se, at du er revet af en fejl fra skallen og siger "-sh: netstat: ikke fundet".

    1. Dit første skridt vil altid være at opdatere Opkg listerne, for at have de nyeste pakker notering fra lageret:

      opkg opdatering

    2. Hvis du ikke ved, hvilken pakke der indeholder kommandoen "netstat", kan du filtrere resultaterne ved hjælp af.

      opkg list | grep netstat

    3. Og nu installer "netstat" ved hjælp af:

      opkg installer net-tools-netstat

      Og nu, når du udfører netstat-kommandoen igen virker det ... neat ha? :)

    Indtil de fremtidige artikler, hvor vi vil installere og konfigurere softwarepakker ved hjælp af denne metode, kan du have masser af nørd sjov at udforske det store antal software, der nu er lige ved fingerspidserne.


    Hvis en sådan maskine er en virtuel umulighed, skal det logisk være en endelig usandsynlighed. Så alt hvad jeg skal gøre for at gøre en er at finde ud af, hvordan det er usandsynligt det er, foder dette tal til den endelige usandsynlighed generator, giv det en frisk kop rigtig varm te og tænde den ... ... ... Den eneste ting de virkelig ikke kan lide, er en "Smart-Ass".