maltepöggel.de

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.

Bild: USBFunk an einem Router

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.

mkdir ./package/utils/usbfunk
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:

make menuconfig

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.

Bild: menuconfig

Wir bestätigen mit Exit und speichern die Konfiguration.

Um das einzelne Paket zu bauen muss nun zuerst die Toolchain vorbereitet werden:

make tools/install
make toolchain/install

Nun wird das eigentliche Paket (zusammen mit seinen Abhängigkeiten) erstellt:

make package/usbfunk/compile
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.

make -j5

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-1.0_1.0.9-1_ramips.ipk
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!

Bild: OpenWRT Konsole

Viel Erfolg!

Downloads