Wollten Sie schon immer zusätzliche Funktionen wie E-Mail, Bit-Torrent oder sogar MySQL direkt auf Ihrem Router haben? Nun, vielleicht kannst du es jetzt. How-To Geek befasst sich mit der Installation der Opkg-Software auf DD-WRT.
Bild von Jean Spector und Aviad Raviv
Wenn Sie es noch nicht getan haben, lesen Sie die vorherigen Artikel in der Reihe:
- Verwandeln Sie Ihren Heimrouter in einen Super-Power-Router mit DD-WRT
- So entfernen Sie Werbung mit Pixelserv auf DD-WRT
Angenommen, Sie sind mit diesen Themen vertraut, lesen Sie weiter. Beachten Sie, dass diese Anleitung etwas technischer ist und Anfänger beim Modifizieren ihres Routers vorsichtig sein sollten.
Schwierigkeiten
Ich habe kürzlich einen neuen gekauft
Buffalo WZR-HP-AG300H
welches mit einer umbenannten Version von kommt
DD-WRT
. Aufgrund der Tatsache, dass dieser Router über einen USB-Anschluss verfügt, habe ich sofort eine Festplatte angeschlossen und versucht, die “
Optware, der richtige Weg
Wiki-Guide. Leider habe ich schnell festgestellt, dass der Router, den ich erhalten habe, auf Atheros basiert und das Skript von dieser Wiki-Seite ihn nicht unterstützt. Also habe ich angefangen zu graben (wie immer) und bin auf mehrere Führer gestoßen (
1
,
2
,
3
und
4
) mit dem Ziel zu erklären, wie Opkg manuell funktioniert. Während ihr Beitrag (neben anderen Quellen im Internet) zu diesem Leitfaden von unschätzbarem Wert war, sind einige der Anweisungen (IMHO) einfach nicht einfach genug. Wenn Sie beispielsweise die "lib" -Dateien fischen, lernen Sie jedoch nicht, wie Sie sie von der Quelle aus fischen. Außerdem muss eine Linux-formatierte Festplatte oder mindestens eine Partition von einer verwendet werden (
Dies funktioniert nicht einmal mit den Firmwares, mit denen ich getestet habe
). Aus diesem Grund hatte ich das Bedürfnis, das unten stehende übersichtliche, einfach zu befolgende und reproduzierbare Verfahren zu erstellen, um das zu erhalten
OpenWRT
Opkg Paketmanager für die Arbeit mit solchen Routern.
Update: Die Funktion zum Mounten von Partitionen wurde in der neu gebrandeten Version des Alpha-Builds 17798 wieder eingeführt.
Was ist Opkg?
Opkg ist ein Paketmanager wie apt / aptitude und yum. Es dient als Ersatz für die Ipkg Paketmanager und kann zum Installieren von Software verwendet werden, z Übertragung BitTorrent-Daemon, der ssmtp-E-Mail-Absender und Knockd Ein Daemon, der Skripte nach einer bestimmten Portauslösesequenz ausführt, um nur einige zu nennen. Von dem OpenWRT-Site :
Das Dienstprogramm opkg (ein ipkg-Fork) ist ein kompakter Paketmanager, mit dem OpenWrt-Pakete von lokalen Paket-Repositorys oder solchen im Internet heruntergeladen und installiert werden.
OpkgVersuche, Abhängigkeiten mit Paketen in den Repositorys aufzulösen. Wenn dies fehlschlägt, wird ein Fehler gemeldet und die Installation dieses Pakets abgebrochen.
Mit Opkg können wir also Dinge installieren, wie wir es mit Ipkg auf dem “ Setzen Sie noch mehr Strom aus Ihrem Heimrouter frei " leiten. Die Hauptunterschiede sind:
- Um die Beispiele für SSMTP und Knockd zu nennen, mussten Sie die Abhängigkeiten wirklich manuell herausfinden. Das Verfahren, dies manuell zu tun, ist lästig und nicht sehr einfach. Opkg macht das automatisch.
- Diesmal werden wir sein Hinzufügen Software auf der vorhandenen Firmware, anstatt sie zu ersetzen. Das Ersetzen war zwar eine hervorragende Übung für Geeks, aber ohne Zweifel: gefährlich, problemanfällig, irreversibel und am schlimmsten routerspezifisch. Natürlich ist dies viel einfacher und sicherer.
Voraussetzungen
Beachten Sie Folgendes, um diesen Leitfaden zu vervollständigen:
- Wie oben erwähnt, wurde dieses Handbuch erstellt und getestet Buffalo WZR-HP-AG300H mit Buffalos "Pro" -Firmware-Version 17135. Es sollte auf allen Atheros (ar71xx) -basierten Routern mit jeder DD-WRT-Version derselben Version oder höher funktionieren, aber Ihr Kilometerstand kann sehr hoch sein.
- Sie müssen SSH auf dem Router aktivieren sowie installieren und verwenden WinSCP um sich damit zu verbinden. Dies wurde im „ So entfernen Sie Werbung mit Pixelserv auf DD-WRT " leiten. In der Tat wird davon ausgegangen, dass Sie in der Lage sind, alles zu tun, was in diesem Handbuch erklärt wird.
- Sie müssen über ein Terminal eine Verbindung zum Router herstellen können (SSH wird empfohlen). Einige Hinweise dazu finden Sie auf der DD-WRT Wiki .
- Speicherplatz für JFFS und ca. 4 MB nachformatierter Speicherplatz für das Basis-Setup. JFFS-Platz ist nicht nur eine Voraussetzung, sondern auch ein Show-Stopper. Dies liegt daran, dass Sie, wenn Ihr Router nicht über mindestens die oben genannten 4 MB nachformatierten Speicherplatz verfügt, keinen wirklichen Nutzen aus diesem Handbuch ziehen und besser mit der Option " Setzen Sie noch mehr Strom aus Ihrem Heimrouter frei ”Anleitung zum Installieren von Ipkg-Paketen direkt in der Firmware oder zum manuellen Installieren der Ipkg-Pakete. Befolgen Sie die Anweisungen auf der “ So entfernen Sie Werbung mit Pixelserv auf DD-WRT ”, Um JFFS zu aktivieren und zu sehen, wie viel freier Speicherplatz Sie tatsächlich haben nach dem es ist formatiert.
Hinweis: Es ist möglich, dies mit nur 2 MB Speicherplatz für das Setup zu tun, aber dann würden wir das Ergebnis verlieren, dass "/ etc" lesbar wird und Opkg aufrufen müsste, während die Konfigurationsdatei jedes Mal manuell angegeben wird sooo lahm ...
Lass uns knacken
Zu diesem Zeitpunkt sollten Sie JFFS aktiviert haben und in der Lage sein, SSH / WinSCP in den Router einzubinden.
- Öffnen Sie eine Terminalsitzung zum Router.
-
Erstellen Sie ein temporäres Verzeichnis, in dem wir arbeiten werden:
mkdir / tmp / 1
cd / tmp / 1
Verwenden Sie Ipkg, um Opkg zu installieren
Während wir Ipkg als Paketmanager ersetzen werden, werden wir es verwenden, um das Opkg-Installationspaket manuell zu installieren.
-
Laden Sie dazu das Opkg-Installationspaket für die ar71xx-Architektur von der herunter
OpenWRT-Projekttrunk
:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
Anmerkung 1: Zum Zeitpunkt dieses Schreibens ist 618 die neueste Version. Dies kann sich in Zukunft ändern. Passen Sie sie daher entsprechend an.
Aussprache: Möglicherweise besteht der einzige Unterschied darin, dass dieses Handbuch für andere Architekturen funktioniert, darin, das Opkg-Installationsprogramm von der für Ihren Router geltenden Architektur abzurufen. Dies wird jedoch von Ihnen wirklich nicht getestet. -
Rufen Sie Ipkg auf, um Opkg manuell zu installieren, indem Sie:
ipkg install opkg_618-2_ar71xx.ipk
Hinweis: Wenn Sie möchten, können Sie jedes Paket auf diese Weise manuell im Repository installieren. Dies würde jedoch bedeuten, dass Sie die Abhängigkeiten selbst lösen müssen… und was würde das für einen Spaß machen?
Abrufen der dynamischen Bibliotheksdateien ("lib" s)
Die erforderlichen "lib" -Dateien, damit Opkg funktioniert, sind Teil der OpenWRT-Distribution. Um sie zu erhalten, muss man sie aus dem "Root FileSystem" dieser Distribution extrahieren.
-
Laden Sie dazu das neueste grundlegende „Root FileSystem“ für die openWRT-Distribution herunter, das die erforderlichen „libs from the
OpenWRT-Projekttrunk
:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
-
Extrahieren Sie es mit:
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
-
Kopieren Sie die "libs" -Dateien aus den oben extrahierten "rootfs" in das "libs" -Verzeichnis unserer JFFS, wobei Sie ihre Attribute und symbolischen Links beibehalten:
cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /
Hinweis: Sie erhalten Meldungen, dass die Unterverzeichnisse weggelassen werden. Da wir nur die "lib" -Dateien benötigen, ist dies in Ordnung und Sie können diese Nachrichten sicher ignorieren.
Reparieren des LD_LIBRARY_PATH ”
Wir müssen dem Router mitteilen, wo er nach den gemeinsam genutzten gemeinsam genutzten Bibliotheken (libs) suchen soll und dass er dies tun muss
Vor
diejenigen, die mit der Firmware geliefert wurden.
-
Stellen Sie dazu die Umgebungsvariable LD_LIBRARY (vorerst) manuell ein, damit der Speicherort, an den wir die neuen lib-Dateien kopiert haben, der erste im „PATH“ ist:
exportiere LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH
Leseschreibbares "/ etc"
Wir werden "/ etc" in JFFS kopieren und dann den regulären "/ etc" -Montagepunkt darauf verweisen lassen. Dies eröffnet sowohl eine Welt der Möglichkeiten, da „/ etc“ lesbar wird (worauf ich persönlich seit 7 Jahren gewartet habe) und Pakete, die dieses Verhalten erwarten, korrekt funktionieren.
-
Erstellen Sie das Verzeichnis, in dem "/ etc" gespeichert ist:
mkdir -p / jffs / geek / etc.
-
Kopieren Sie rekursiv die Gesamtheit von "/ etc", während Sie alle Unterverzeichnisse, Dateiattribute und symbolischen Links beibehalten.
cp -a / etc / * / jffs / geek / etc /
-
Manuell (vorerst) "binden" Sie das Verzeichnis "/ etc" an das JFFS-Verzeichnis:
mount -o bind / jffs / geek / etc / / etc /
Stellen Sie das Optware-Verzeichnis ein ("/ opt")
Opkg von OpenWRT wird voraussichtlich verwendet, wenn die Firmware des Routers erstellt wird. Da sich das Dateisystem zu diesem Zeitpunkt noch nicht auf dem Router befindet und sich daher noch ändern kann, ist die Installation an einem beliebigen Ort im Dateisystem problemlos möglich. Aus diesem Grund verweist die Opkg-Konfigurationsdatei die zu installierenden Pakete auf das Stammverzeichnis (/) des Dateisystems. Wir verwenden jedoch Opkg
nach dem
Die Firmware wurde auf dem Router erstellt und installiert. Da wir das Stammverzeichnis des Dateisystems nicht so ändern können, dass es lesbar ist, werden alle zu installierenden Installationen unter "/ opt" angezeigt. Derzeit verweist "/ opt" jedoch auch auf einen schreibgeschützten Speicherort in der Firmware des Routers. Um dies zu überwinden, werden wir "/ opt" auf JFFS verweisen, das lesbar ist.
-
Erstellen Sie dazu das Verzeichnis, das die Optware-Pakete enthält:
mkdir -p / jffs / opt
-
Manuell (vorerst) "bind mount" das "/ opt" -Verzeichnis an das JFFS-Verzeichnis:
mount -o bind / jffs / opt / / opt /
Hinweis: Während dies den Rahmen dieses Handbuchs sprengt, Fortgeschrittene Benutzer möchten diesen Einhängepunkt möglicherweise ändern, um auf eine Festplatte zu verweisen.
Anpassen der Opkg-Konfigurationsdatei
Wir möchten, dass die Opkg-Konfigurationsdatei dort ist, wo Opkg standardmäßig danach sucht ("/ etc") und an die Installation auf "/ opt" angepasst wird.
-
Verschieben Sie dazu die vom Opkg-Paket installierte opkg-Konfigurationsdatei an den lesbaren Ort "/ etc":
mv /jffs/etc/opkg.conf / etc /
-
Ändern Sie das Ziel für Optware-Installationen in "/ opt" anstelle von "root" (/).
Navigieren Sie dazu mit dem "vi" -Editor oder WinSCP zu "/ etc /" und erstellen Sie den Inhalt der Datei "opkg.conf":