Så här installerar du ytterligare programvara på din hemrouter (DD-WRT)
Har du någonsin velat ha ytterligare funktioner som E-post, Bit-torrent eller till och med MySQL direkt på din router? Nå kanske du kan. How-To Geek dykar till hur man installerar Opkg-programvaran på DD-WRT.
Bild av Jean Spector och Aviad Raviv
Om du inte redan har det, se till och kolla in tidigare artiklar i serien:
- Vänd din hemrouter till en superdriven router med DD-WRT
- Så här tar du bort annonser med Pixelserv på DD-WRT
Förutsatt att du är bekant med de ämnena, fortsätt läsa. Tänk på att den här guiden är lite mer teknisk, och nybörjare bör vara försiktiga när de modderar routern.
vedermödor
Jag har nyligen köpt en ny Buffalo WZR-HP-AG300H som levereras med en re-branded version av DD-WRT. På grund av att den här routern har en USB-port, anslutde jag genast en HD och försökte använda wiki-guiden "Optware, The Right Way". Tyvärr har jag snabbt upptäckt att routern som jag fick är Atheros-baserad och skriptet från den wikisidan, stöder det inte. Så jag har börjat gräva (som jag alltid gör) och kom över flera guider (1, 2, 3 och 4) som syftade till att förklara hur man får Opkg att arbeta manuellt. Medan deras bidrag (bland andra källor på webben) till den här guiden var ovärderliga, är några av instruktionerna (IMHO) helt enkelt inte raka framåt. Till exempel får du "lib" -filerna, men lär dig inte hur man fiskar den från källan. Också behöva använda en Linuxformaterad HD eller åtminstone en partition av en (som faktiskt inte ens fungerar på de firmware jag har testat med). Det var därför jag kände behovet av att skapa det nedanförklara, enkla att följa och reproducerbara förfarandet för att få OpenWRT Opkg-pakethanteraren att arbeta med sådana routrar.
Uppdatering: Den monterade partitionskapaciteten har återinförts till den re-branded versionen på 17798 alpha build.
Vad är Opkg?
Opkg är en paketchef som apt / aptitude och yum. Den fungerar som ersättning för Ipkg-pakethanteraren och kan användas för att installera programvara som: Transmission BitTorrent-demonen, ssmtp-e-post avsändaren och Knockd-en-demon som utför skript efter en angiven portutlösande sekvens för att nämna några. Från OpenWRT-webbplatsen:
Opkg-verktyget (en ipkg-gaffel) är en lättpackningshanterare som används för att ladda ner och installera OpenWrt-paket från lokala paketförteckningar eller på Internet.
Opkg
försöker lösa avhängighet med paket i förvaret - om det misslyckas kommer det att rapportera ett fel och avbryta installationen av det paketet.
Så vi använder Opkg kan vi installera saker som vi gjorde med Ipkg på "Unleash Even More Power från Your Home Router" guide. De stora skillnaderna är:
- För att ge exemplen på SSMTP och Knockd, måste du verkligen räkna ut beroendet manuellt. Förfarandet för att göra det manuellt är störande och inte särskilt rakt framåt. Opkg gör det automatiskt.
- Den här gången kommer vi att vara tillsats programvara ovanpå den fasta programvaran som finns på plats, istället istället ersätta den. Under ersättning var det en utmärkt geekövning, det var utan tvivel: farligt, utsatt för problem, irreversibla och värsta av alla routrar specifika. Det behöver inte sägas att detta är sätt enklare och säkrare.
förutsättningar
För att slutföra den här guiden notera följande:
- Som nämnts ovan har denna guide skapats och testats på Buffalo WZR-HP-AG300H med Buffalo's "Pro" firmwareversion 17135. Den ska fungera på alla Atheros (ar71xx) baserade routrar med vilken version av DD-WRT av samma revision eller över , men din körsträcka kan mycket.
- Du måste aktivera SSH på routern, samt installera och använda WinSCP för att ansluta till den. Detta förklarades i guiden "Ta bort annonser med Pixelserv på DD-WRT". Faktum är att det kommer att antas att du kan göra allt som förklaras i den guiden.
- Du måste kunna ansluta till routern med hjälp av en terminal (SSH rekommenderas). Några tips om hur man gör detta finns på DD-WRT wiki.
- Utrymme för JFFS och cirka 4 MB postformat utrymme för basinstallationen. JFFS-utrymme är inte bara en förutsättning, det är ett showstopp. Detta beror på att Om din router inte har åtminstone ovan nämnda 4 MB postformaterat utrymme, får du ingen reell nytta av den här guiden och blir bättre med "Släpp ut ännu mer ström från din hemrouter" vägledning för att installera Ipkg-paket direkt i firmware eller installera Ipkg-paket manuellt. Följ anvisningarna i "Guide till borttagning av annonser med Pixelserv på DD-WRT" för att aktivera JFFS och se hur mycket ledigt utrymme du faktiskt har efter den är formaterad.
Notera: Det är möjligt att göra detta med endast 2 MB utrymme för installationen, men då skulle vi förlora uppkomsten av "/ etc" att bli skrivbar och skulle behöva anropa Opkg, samtidigt som du konfigurerar konfigurationsfilen manuellt varje gång ... vilket är som så lama ...
Kan få sprickbildning
Vid denna tidpunkt borde du ha aktiverat JFFS och kan SSH / WinSCP in i routern.
- Öppna en terminal session till routern.
- Skapa en tillfällig katalog som vi kommer att arbeta i:
mkdir / tmp / 1
cd / tmp / 1
Använd Ipkg för att installera Opkg
Medan vi kommer att ersätta Ipkg som paketchef, kommer vi att använda den för att manuellt installera Opkg installationspaketet.
- För att göra detta, ladda ner Opkg installationspaketet för ar71xx-arkitekturen från OpenWRT-projektstammen:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
Anteckning 1: Vid tidpunkten för detta skrivande är 618 den senaste versionen, det kan komma att förändras i framtiden, så justera därefter.
Anteckning 2: Det kan vara möjligt att den enda skillnaden i att få den här guiden till att fungera för andra arkitekturer är att få Opkg installatören från den tillämpliga arkitekturen för din router ... men det här är inte testat av din sanning. - Invoke Ipkg för att manuellt installera Opkg med:
ipkg installera opkg_618-2_ar71xx.ipk
Notera: Du kan också, om du vill, installera varje paket i förvaret manuellt på så sätt. Men detta skulle innebära att du kommer att behöva lösa beroendet självt ... och vad skulle det vara kul i det?
Hämta de dynamiska biblioteksfilerna ("lib" s)
De nödvändiga "lib" -filerna för att göra Opkg-arbetet är en del av OpenWRT-distributionen. För att erhålla dem måste man extrahera dem från "Root FileSystem" av nämnda distribution.
- För att göra det, ladda ner det senaste grundläggande "Root FileSystem" för openWRT distrebution som innehåller de nödvändiga "lib" s från OpenWRT-projektstammen:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
- Extrahera det med:
tjära xvzf openwrt-ar71xx-generic-rootfs.tar.gz
- Kopiera "libs" -filerna från de "rootfs" som vi har extraherat ovan till "libs" -katalogen på våra JFFS, samtidigt som de behåller sina attribut och symboliska länkar:
cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /
Notera: Du får meddelanden som säger att underkatalogerna utelämnas. Eftersom vi inte behöver något annat än "lib" -filerna, är det bra och du kan säkert ignorera dessa meddelanden.
Fixera LD_LIBRARY "PATH"
Vi måste berätta för routern, var du ska leta efter de delade biblioteken (libs) som vi just installerat och att den behöver göra innan de som följde med firmware.
- För att göra det här ställer LD_LIBRARY-miljövariabeln manuellt (för nu) för att göra det så är den plats där vi kopierade de nya lib-filerna den första i "PATH":
exportera LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH
Lässkrivbar "/ etc"
Vi ska kopiera "/ etc" till JFFS och sedan göra den vanliga "/ etc" monteringspunkten, peka på den. Genom att göra det kommer båda att öppna en värld av möjligheter, eftersom "/ etc" blir lässkrivbar (som jag personligen har väntat på att ge eller ta 7 år nu) och aktivera paket som förväntar sig detta beteende, för att fungera korrekt.
- Skapa katalogen som kommer att hålla "/ etc":
mkdir-p / jffs / geek / etc
- Rekursivt kopiera hela "/ etc" samtidigt som du behåller alla underkataloger, filattribut och symboliska länkar.
cp -a / etc / * / jffs / geek / etc /
- Manuellt (för nu) "binda montera" katalogen "/ etc" till JFFS-en:
mount -o bind / jffs / geek / etc / / etc /
Ställ in Optware-katalogen ("/ opt")
Opkg från OpenWRT, förväntar sig att användas när routerns firmware är byggd. Då är FileSystem ännu inte på routern, och ändå ändå föremål för förändring, det finns inga problem att installera till någon plats på FileSystem. Det är därför Opkg-konfigurationsfilen pekar paket för att installera till "root" (/) i FileSystem. Vi använder dock Opkg efter firmwareen byggdes och installerades på routern, och eftersom vi inte kan ändra filsystemets rutt för att vara skrivbar, kommer vi att peka på alla installationer som ska installeras under "/ opt". För närvarande pekar "/ opt" också på en skrivskyddad plats på routerns firmware. För att övervinna detta kommer vi att göra "/ opt" peka på JFFS, som är lässkrivbar.
- För att göra detta, skapa katalogen som innehåller Optware-paketen:
mkdir -p / jffs / opt
- Manuellt (för nu) "binda montera" "/ opt" -katalogen till JFFS-en:
mount -o bind / jffs / opt / / opt /
Obs! Medan du inte längre omfattas av den här handboken, mer avancerade användare kanske vill ändra denna monteringspunkt, för att peka på en HD.
Justering av Opkg-konfigurationsfilen
Vi vill att Opkg-konfigurationsfilen ska vara där Opkg letar efter det som standard (vilket är "/ etc") och justeras för att installeras till "/ opt".
- För att göra detta flyttar du opkg-konfigurationsfilen som installerats av Opkg-paketet till lässkrivbar "/ etc" -plats:
mv /jffs/etc/opkg.conf / etc /
- Ändra destinationen för Optware-installationer att vara "/ opt" istället för "root" (/).
För att göra detta, navigera till "/ etc /" med "vi" -redigeraren eller WinSCP och gör "opkg.conf" -filens innehåll:vi /etc/opkg.conf
Gör det som:
src / gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
dest root / opt
dest ram / tmp
lists_dir ext / var / opkg-listor
alternativ overlay_root / overlayNotera: Du kan ändra "list_dir" -direktivet för att peka på en plats som inte finns i RAM, utan snarare på JFFS. Även om detta skulle lindra dig från att uppdatera listorna, innan du kan installera ytterligare programvara (om din router startas om från sista gången), skulle du förlora cirka 1,5 MB av det knappa JFFS-utrymmet och du skulle kompoundera till erosionen.
Hej älskling
Du borde kunna se att Opkg arbetar genom att utge uppdateringen och listar kommandon.
- Om allt gick bra bör du se att Opkg-listorna har uppdaterats utan fel och du är redo att implementera manuset i nästa steg:
opkg uppdatering; opkg lista
- Ta dig tid att börja utforska de paket som finns på förvaret ... .
StartUp script
Vi behöver nu göra det så att alla nödvändiga montering och banning sker automatiskt när routern startar. För det ändamålet har vi skapat för dig, det här initieringsprogrammet för geek-init.
- Hämta, ta bort det och placera det under "/ jffs / geek / etc /". (Överväg att göra detta med WinSCP).
- Gör manuset körbart genom att gå in i dess egenskaper med WinSCP eller exekvera:
chmod + x /jffs/geek/etc/geek-init.sh
- Gör skriptet exekverat på routerns start, med hjälp av WebGUI. Under Administration -> Kommandon, i textrutan, sätt:
/jffs/geek/etc/geek-init.sh web-gui
Och klicka på "Spara start".
Skickar däcken
Om allt gick bra borde du nu kunna starta om routern och fortfarande använda Opkg-pakethanteraren. Det vill säga att uppdatera, lista och installera program.
Lets test att allt fungerar genom att installera "netstat" -kommandot, som av någon anledning har utelämnats från DD-WRTs byggnader nyligen. Innan vi gör det här, kör netstat-kommandot i terminalen och du kommer att se att du är riven av ett fel från skalet och säger "-sh: netstat: inte hittat".
- Ditt första steg kommer alltid att vara att uppdatera Opkg-listorna, för att få de senaste paketförteckningarna från förvaret:
opkg uppdatering
- Om du inte vet vilket paket som innehåller "netstat" -kommandot, kan du filtrera resultaten med.
opkg list | grep netstat
- Och installera nu "netstat" med:
opkg installera net-tools-netstat
Och nu, när du kör nätverket kommandot igen fungerar det ... snyggt ha? :)
Fram till de kommande artiklarna där vi installerar och konfigurerar programvarupaket med hjälp av den här metoden kan du ha massor av nötkörer roligt och utforska den stora mängden programvara som nu är rätt vid fingertopparna.
Om en sådan maskin är en virtuell omöjlighet, måste det logiskt vara en begränsad osannolikhet. Så allt jag måste göra för att göra en är att utröna hur exakt osannolikt det är, mata den siffran i den slutgiltiga sannolikhetsgeneratorn, ge den en ny kopp väldigt hett te och sätt på det ... ... ... En sak de gillar verkligen inte, är en "Smart-Ass".