Zum mobilen Betrieb ist zum einen ein Akkupack mit passendem Hohlstecker-Adapter nötig, sowie ein Router mit USB-Schnittstelle. Hier exemplatisch ein TP-Link TL-WR1043ND. Zum Tethern wird außerdem ein Android-Smartphone benötigt.
Zuerst Paketquellen aktualisieren und nötige Pakete installieren:
opkg update
opkg install kmod-usb2 kmod-usb-net
eventuell ist es notwendig, folgende Pakete auch zu installieren. [1]
kmod-usb-net-rndis kmod-usb-net-cdc-ether usbutils udev
USB-Modul laden:
insmod ehci-hcd
uci del network.wan
uci set network.wan=interface
uci set network.wan.ifname=usb0
uci set network.wan.proto=dhcp
uci commit network
ifup wan
Unter Android läuft die App "GPS Logger", welcher nicht nur in Dateien schreiben kann, sondern auch parametrisierte http-Anfragen versenden kann. Längen- und Breitengrat werden also über eine spezielle URL an ein CGI-Script im uhttpd gesendet.
Die URL kann wie folgt aussehen:
http://node.ffhb.de/cgi-bin/setGeo?10?20
Folgendes Script liegt in lib/gluon/status-page/www/cgi-bin
und nimmt Breiten- und Längengrad entgegen:
#!/bin/sh
echo "Content-type: text/html"
echo ""
long=$(env | grep REQUEST_URI | cut -d"?" -f2 )
lat=$(env | grep REQUEST_URI | cut -d"?" -f3 )
echo ""
$(/bin/sed -i "s/.*latitude.*/option latitude \'$lat'/" /etc/config/gluon-node-info)
$(/bin/sed -i "s/.*longitude.*/option longitude \'$long'/" /etc/config/gluon-node-info)
In der Android-App unter Protokollierungseinstellungen muss nun als "Logge zu einem Server" folgender Link angegeben werden:
http://NODE_IP/cgi/setGeo?%LON?%LAT
Der Haken bei "Logge zu einem Server" muss gesetzt werden.
Quellen:
Android-App: