Firmware-Dokumentation

Aus wireless.subsignal.org
(Weitergeleitet von Firmware-Dokumentation API)
Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf bitte mit, ihn zu verbessern, und entferne anschließend diese Markierung.

Einleitung

Diese Seite soll Einblick in die Firmware geben und uns verstehen helfen, wie sie funktioniert, warum manche Dings so gelöst wurden, wie sie uns nun vorliegen

Loader

Zentrales Element aller Firmware-Funktionen ist der loader, der sich um alle Abhängigkeiten und Variablen kümmert. Der Loader wird automatisch beim Booten erzeugt und legt eine Kopie aller Scripte (bzw. aller functions) in der RAM-Disk an. Vorteil dieser Variante ist nicht nur der schnellere Zugriff, sondern auch die Moeglichkeit automatisiert spezielle Versionen bauen zu lassen (z.b. ohne LOG-Meldungen, Kommentare entfernen, profiling, debugging...). Auch werden zur Laufzeit nur wirklich benoetigte Module (automatisch) initialisert. Der Loader liegt unter /tmp/loader und sollte bei eigenen Scripten am Anfang geladen werden:

#!/bin/sh
. /tmp/loader

Das Erzeugen des loader kann so angestossen werden:

/etc/kalua_init

Nach dem sourcen des loader mit . /tmp/loader stehen verschiedene Hilfsfunktionen zur Verfuegung, z.b.

_       # listet alle Bibliotheken auf
_wifi   # listet alle Funktionen der Bibliothek wifi auf

Wer eigene Funktionssammlungen mit in den loader integriert haben moechte, sollte sich das Verzeichnis /etc/kalua/ anschauen.

Wenn man sich per SSH auf dem Router einloggt, wird in /etc/profile der loader automatisch "gesourced" (geladen).

Beispiele

Jedes Beispiel benoetigt zwingend den geladenen loader


SMS versenden

Momentan wird nur der Dienst sms77.de unterstuetzt. (Versand als "BasicPlus")

Vorbereitung durch Konfiguration aller Parameter:

_nvram set "fff_sms_phonebook" "person1=0176/1234567;person2=0175/99887766"
_nvram set "fff_sms_user" "sms77_username"
_nvram set "fff_sms_pass" "sms77_passwort"               # entweder Klartext oder verschluesselt
_nvram set commit "daten fuer SMS-Dienst eingegeben"     # Grund fuers Log angeben / resetfest abspeichern

Absenden:

_sms send "person1" "mein text steht hier"               # Name wird aus Telefonbuch genommen


Optimierung der Sendeleistung

_nvram set "fff_optimize_neigh" "gateway"     # string: gateway|wifi-IP|off|leer = irgendeiner (default)
_nvram set "fff_optimize_nlq"   "950"         # integer: Wunsch NLQ, 950 = 0.950 ; default = 900

Starten des SSH-Servers/Telnet

Bei Geräten mit weniger als 32mb RAM werden einige Dienste 30 Minuten nach dem Bootvorgang beendet um Speicher zu sparen. Über ein REST/HTTP-Interface kann man dies einfach wieder starten:

wget -O - "http://ip_des_routers/cgi-bin-tool.sh?OPT=startshell

von einem anderem Router aus kann man den gleichen Befehl folgendermaßen absetzen:

_tool remote ip_des_routers startshell

Adhoc- und AP-Modus parallel betreiben

Warum?

Da viele Endgeräte immer noch Probleme haben, sich in Adhoc-Netzwerke einzuwählen soll auf Geräten, die es unterstützen auch der für die meisten bequemere AP-Modus betrieben werden. In der Luft werden dann zwei WLANs pro Router angezeigt: Das gemeinsame weimarnetz und das AP-Netzwerk weimarnetz-$hostename

Anpassungen

  • /etc/config/dhcp: Startadresse auf 3 erhöhen, damit die zusätzlich IP Platz hat
  • /etc/config/network: Anlegen eines zweiten Netzwerkinterfaces wlanap mit eigener IP (WLAN-IP + 1)
config 'interface' 'wlanap'
        option 'ifname' 'wlan0-1'
        option 'proto'  'static' 
        option 'ipaddr' '10.63.xx.yy' 
        option 'netmask' '255.0.0.0'
  • /etc/config/olsrd: wlanap zu Interfaceliste für wlan hinzufügen (ohne gehts nicht, aber theoretisch sollte man es nicht brauchen)
list interface 'wlan wlanap'
  • /etc/config/wireless: Anlegen des AP-Modus:
config wifi-iface
        option device   radio0
        option network  wlanap
        option mode     ap
        option ssid     'weimarnetz-tp-dev'
        option encryption 'none'
  • zusätzlich muss das Paket hostapd installiert werden


Probleme

  • als OLSR-Interface wird nun immer 10.63.23.2 angegeben
  • es will nicht klappen, dass nur wlan0 für Adhoc und wlan0-1 für AP verwendet wird, die Zuordnungen werden sogar vertauscht und es geht...
  • Der Splash Screen (Captive Portal) zeigt keine externen Inhalte (Wiki, Newsserver)