Benutzung des USBFunk Interfaces unter OpenWRT
Crosscompilieren des USBFunk Konsolentools
Funksteckdosen über WLAN steuern können, diesen Wunsch wird der eine oder andere sicher schon mal gehabt haben. An anderer Stelle habe ich dafür das USBFunk Interface vorgestellt, um mittels eines Rechners über die USB Schnittstelle Schaltbefehle an 433MHz Funksteckdosen senden zu können.
Doch nicht immer muss für kleine Steuerungsaufgaben ein ganzer PC herhalten. Das im einfachsten Fall auch ein alter Router mit OpenWRT Betriebssystem eingesetzt werden kann möchte ich im Folgenden beweisen.
Auf genauere Details zum Compilierungsvorgang möchte ich dabei jedoch nicht eingehen. Dies ist im OpenWRT Wiki bestens erklärt.
Ich gehe davon aus, dass der OpenWRT Sourcecode bereits aus dem SVN ausgecheckt wurde, und wir uns im entsprechenden Verzeichnis befinden. Da das USBFunk Paket jedoch kein offizieller Bestandteil des OpenWRT Repository ist erstellen wir nun ein Verzeichnis und laden das passende Makefile nach.
wget http://maltepoeggel.de/data/usbfunk-openwrt/Makefile -P ./package/utils/usbfunk/
Anschließend muss die Paketauswahl konfiguriert werden. Wir führen dazu folgenden Befehl aus:
Unter dem Menüpunkt "Utilities" ist nun USBFunk auswählbar. Mit der Leertaste lässt sich das Paket selektieren. Steht hier ein <M> wird das Programm als zusätzliches Paket gebaut. <*> bedeutet, dass die Binärdatei fest in das read-only Dateisystem integriert wird.
Wir bestätigen mit Exit und speichern die Konfiguration.
Um das einzelne Paket zu bauen muss nun zuerst die Toolchain vorbereitet werden:
make toolchain/install
Nun wird das eigentliche Paket (zusammen mit seinen Abhängigkeiten) erstellt:
make package/usbfunk/install
Wer stattdessen das komplette System compilieren möchte, könnte make ohne die oben genannten Pfadangaben aufrufen. Dies dauert sehr lange und ist meist nicht nötig. Als Parameter kann dann noch -j3 (Dualcore CPU) oder -j5 (Quadcore CPU) angehängt werden um den Buildprozess zu beschleunigen. Wenn etwas fehlschlägt lassen sich die Compilermeldungen mit dem Schalter V=s ausgeben.
Falls es keine Fehler gab, sind wir irgendwann wieder auf der Konsole. Die Pakete befinden sich unter bin/[zielarchitektur]/packages/. Sie können zum Beispiel per SFTP in das /tmp Verzeichnis auf der Box kopiert, und von dort aus mittels "opkg" installiert werden:
opkg install /tmp/libusb-compat_0.1.4-1_ramips.ipk
opkg install /tmp/usbfunk_1.2-1_ramips.ipk
Das CLI Tool lässt sich nun auf der Konsole des OpenWRT Gerätes starten und das Interface wie gewohnt ansteuern!
Viel Erfolg!