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 nu kan. How-To Geek dyker in i hur man installerar Opkg-programvara på DD-WRT.
Bild av Jean Spector och Aviad Raviv
Om du inte redan har gjort det, se till att kolla in tidigare artiklar i serien:
- Förvandla din hemrouter till en superdriven router med DD-WRT
- Hur man tar bort annonser med Pixelserv på DD-WRT
Förutsatt att du känner till dessa ämnen, 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 sin router.
Prövningar
Jag har nyligen köpt en ny
Buffalo WZR-HP-AG300H
som levereras med en ny varumärkesversion av
DD-WRT
. På grund av att den här routern har en USB-port anslöt jag omedelbart en HD och försökte använda “
Optware, rätt sätt
”Wiki-guide. Tyvärr har jag snabbt upptäckt att routern som jag fick, är Atheros-baserad och manuset från den wikisidan inte stöder den. Så jag har börjat gräva (som jag alltid gör) och stött på flera guider (
1
,
2
,
3
och
4
) som syftade till att förklara hur man får Opkg att fungera manuellt. Även om deras bidrag (bland andra källor på webben) till den här guiden var ovärderligt, är några av instruktionerna (IMHO) helt enkelt inte raka framåt. Till exempel att ge dig "lib" -filerna fisk, men lär dig inte hur man fiskar den från källan. Att också behöva använda en Linux-formaterad HD eller åtminstone en partition av en (
vilket faktiskt inte ens fungerar på de firmware jag har testat med
). Det är därför jag kände behovet av att skapa nedan kortfattad, enkel att följa och reproducerbar procedur för att få
OpenWRT
Opkg-pakethanteraren att arbeta med sådana routrar.
Uppdatering: Kapaciteten för monteringspartitioner har införts på nytt i den ommärkta versionen på 17798 alpha-byggnaden.
Vad är Opkg?
Opkg är en pakethanterare som apt / aptitude och yum. Det fungerar som en ersättning för Ipkg-pakethanterare , och kan användas för att installera programvara som: Överföring BitTorrent-demon, ssmtp-e-postavsändaren och Knockd en demon som kör skript efter en viss utlösningssekvens för port, för att nämna några. Från OpenWRT-webbplats :
Opkg-verktyget (en ipkg-gaffel) är en lättviktspakethanterare som används för att ladda ner och installera OpenWrt-paket från lokala paketförvar eller sådana som finns på Internet.
Opkgförsöker lösa beroenden med paket i förvaret - om detta misslyckas rapporterar det ett fel och avbryter installationen av det paketet.
Så med hjälp av Opkg kan vi installera saker som vi gjorde med Ipkg på ” Släpp loss ännu mer kraft från din hemrouter ”Guide. De stora skillnaderna är:
- För att ge exemplen på SSMTP och Knockd, din verkligen, var tvungen att räkna ut beroenden manuellt. Förfarandet för att göra detta manuellt är besvärligt och inte särskilt enkelt. Opkg gör detta automatiskt.
- Den här gången blir vi det lägger till ovanpå den inbyggda programvaran, istället för att byta ut den. Medan det ersattes var det en utmärkt geekövning, det var utan tvekan farligt, benäget för problem, irreversibelt och värst av allt routerspecifikt. Det behöver inte sägas att detta är mycket enklare och säkrare.
Förutsättningar
Observera följande för att slutföra denna guide:
- Som nämnts ovan skapades och testades den här guiden Buffalo WZR-HP-AG300H med Buffalos "Pro" firmwareversion 17135. Den ska fungera på alla Atheros (ar71xx) -baserade routrar med vilken version av DD-WRT som helst av samma version eller högre, 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 ” Hur man tar bort annonser med Pixelserv på DD-WRT ”Guide. Faktum är att det antas att du kan göra allt som förklaras i guiden.
- Du måste kunna ansluta till routern med 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 postformaterat utrymme för basinstallationen. JFFS-utrymme är inte bara en förutsättning, det är en showpropp. Detta beror på att om din router inte har åtminstone ovan nämnda 4 MB postformaterat utrymme, kommer du inte att få någon verklig nytta av den här guiden och kommer att ha det bättre med Släpp loss ännu mer kraft från din hemrouter ”Guide för att installera Ipkg-paket direkt i firmware eller installera Ipkg-paket manuellt. Följ instruktionerna på “ Hur man tar bort annonser med Pixelserv på DD-WRT ”Guide 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 bara 2 MB utrymme för installationen, men då skulle vi förlora resultatet av "/ etc" blir skrivbar och skulle behöva åberopa Opkg, samtidigt som vi specificerar konfigurationsfilen manuellt varje gång ... vilket är som sooo lame ...
Låt oss spricka
Vid denna tidpunkt borde du ha aktiverat JFFS och kunna SSH / WinSCP i routern.
- Öppna en terminalsession 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 ska ersätta Ipkg som pakethanterare kommer vi att använda det för att manuellt installera Opkg installationspaket.
-
För att göra detta, ladda ner installationspaketet Opkg för ar71xx-arkitekturen från
OpenWRT-projektstam
:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
Anteckning 1: När detta skrivs är 618 den senaste versionen, detta kan komma att ändras i framtiden, så justera därefter.
Uttal: Det kan vara möjligt att den enda skillnaden i att få den här guiden att fungera för andra arkitekturer är att få Opkg-installatören från den tillämpliga arkitekturen för din router ... men detta är verkligen testat av din. -
Anropa Ipkg för att installera Opkg manuellt med:
ipkg installera opkg_618-2_ar71xx.ipk
Notera: Du kan, om du också vill, installera varje paket i förvaret manuellt på detta sätt. Men detta skulle innebära att du måste lösa beroenden på egen hand ... och vad skulle det vara kul i det?
Skaffa dynamiska biblioteksfiler (“lib”)
De nödvändiga "lib" -filerna för att få Opkg att fungera är en del av OpenWRT-distributionen. För att få dem måste man extrahera dem från "Root FileSystem" för nämnda distribution.
-
För att göra detta, ladda ner den senaste grundläggande "Root FileSystem" för openWRT-distributionen som innehåller de nödvändiga "libs från
OpenWRT-projektstam
:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
-
Extrahera det med:
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
-
Kopiera "libs" -filerna från "rootfs" som vi har extraherat ovan till "libs" -katalogen på vår JFFS, medan du behåller deras 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.
Åtgärda LD_LIBRARY_PATH ”
Vi måste berätta för routern, var vi ska leta efter de delade biblioteken (libs) vi just har "installerat" och att den måste göra detta
innan
de som följde med firmware.
-
För att göra detta ställer du in miljövariabeln LD_LIBRARY manuellt (för nu) för att göra den så att platsen där vi kopierade de nya lib-filerna blir den första i "PATH":
exportera LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH
Läs-skrivbar “/ etc”
Vi ska kopiera “/ etc” till JFFS och sedan göra den vanliga “/ etc” monteringspunkten, peka på den. Om du gör det kommer båda att öppna en värld av möjligheter, eftersom "/ etc" kommer att bli lässkrivbart (som jag personligen har väntat på att ge eller ta 7 år nu) och göra det möjligt för paket som förväntar sig detta beteende att fungera korrekt.
-
Skapa katalogen som innehåller "/ etc":
mkdir -p / jffs / geek / etc
-
Kopiera rekursivt hela “/ etc” medan alla underkataloger, filattribut och symboliska länkar bevaras.
cp -a / etc / * / jffs / geek / etc /
-
Manuellt (för tillfället) “bindmontera” katalogen “/ etc” till JFFS:
montera -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 byggs. Vid det tillfället finns inte FileSystem på routern ännu, och därmed ändras det ändå, det finns inga problem att installera någon plats på FileSystemet. Det är därför som Opkg-konfigurationsfilen pekar på paket som ska installeras till "root" (/) i FileSystem. Vi använder dock Opkg
efter
firmware byggdes och installerades på routern, och eftersom vi inte kan ändra filsystemets rot så att den kan läsas, kommer vi att peka på alla installationer som ska installeras under “/ opt”. Men för närvarande pekar “/ opt” också på en skrivskyddad plats på routerns firmware. För att övervinna detta kommer vi att "/ opt" peka på JFFS, som är skrivbar.
-
För att göra detta, skapa den katalog som innehåller Optwarepaket:
mkdir -p / jffs / opt
-
Manuellt (för tillfället) “bindmontera” katalogen “/ opt” till JFFS:
montera -o bind / jffs / opt / / opt /
Anmärkning: Även om det inte omfattas av denna guide, mer avancerade användare kanske vill ändra denna monteringspunkt, för att peka på en HD.
Justera Opkg-konfigurationsfilen
Vi vill att Opkg-konfigurationsfilen ska vara där Opkg söker efter den som standard (vilket är “/ etc”) och justeras för att installera till “/ opt”.
-
För att göra detta, flytta opkg-konfigurationsfilen som installerats av Opkg-paketet till den skrivbara "/ etc" -platsen:
mv /jffs/etc/opkg.conf / etc /
-
Ändra destinationen för Optware-installationer till att vara "/ opt" istället för "root" (/).
För att göra detta, med “vi” -redigeraren eller WinSCP, navigerar du till “/ etc /” och gör “opkg.conf” -filens innehåll: