Änderungen

Zur Navigation springen Zur Suche springen
2.752 Bytes hinzugefügt ,  02:27, 6. Apr. 2014
keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:  +
{{Vorlage:überarbeiten}}
 +
 
=Einleitung=
 
=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 <b><tt>loader</tt></b>, der sich um alle
 
Zentrales Element aller Firmware-Funktionen ist der <b><tt>loader</tt></b>, der sich um alle
 
Abhängigkeiten und Variablen kümmert. Der Loader wird automatisch beim Booten
 
Abhängigkeiten und Variablen kümmert. Der Loader wird automatisch beim Booten
erzeugt und legt eine Kopie aller Scripte (bzw. aller <b><tt>functions</tt></b>) in der
+
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
 
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,  
 
die Moeglichkeit automatisiert spezielle Versionen bauen zu lassen (z.b. ohne LOG-Meldungen,  
 
Kommentare entfernen, profiling, debugging...). Auch werden zur Laufzeit nur
 
Kommentare entfernen, profiling, debugging...). Auch werden zur Laufzeit nur
wirklich benoetigte Module (automatisch) initialisert. Der Loader liegt unter
+
wirklich benoetigte Module (automatisch) initialisert. Der Loader liegt unter '''/tmp/loader'''
 
  −
/tmp/loader
  −
 
   
und sollte bei eigenen Scripten am Anfang geladen werden:
 
und sollte bei eigenen Scripten am Anfang geladen werden:
   Zeile 16: Zeile 19:  
  . /tmp/loader
 
  . /tmp/loader
   −
Das Erzeugen des <b><tt>loader</tt></b> kann so angestossen werden:
+
Das Erzeugen des '''loader''' kann so angestossen werden:
    
  /etc/kalua_init
 
  /etc/kalua_init
   −
Wer eigene Funktionssammlungen mit in den <b><tt>loader</tt></b> integriert haben moechte,
+
Nach dem ''sourcen'' des '''loader''' mit <tt>. /tmp/loader</tt> 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 <tt>/etc/kalua/</tt> anschauen.
 
sollte sich das Verzeichnis <tt>/etc/kalua/</tt> anschauen.
 +
 +
Wenn man sich per SSH auf dem Router einloggt, wird in /etc/profile der '''loader''' automatisch "gesourced" (geladen).
    
==Beispiele==
 
==Beispiele==
   −
Jedes Beispiel benoetigt zwingend den geladenen <b><tt>loader</tt></b>
+
Jedes Beispiel benoetigt zwingend den geladenen '''loader'''
      Zeile 34: Zeile 44:  
Vorbereitung durch Konfiguration aller Parameter:
 
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_user" "sms77_username"
 
  _nvram set "fff_sms_pass" "sms77_passwort"              # entweder Klartext oder verschluesselt
 
  _nvram set "fff_sms_pass" "sms77_passwort"              # entweder Klartext oder verschluesselt
_nvram set "fff_sms_phonebook" "person1=0176/1234567;person2=0175/99887766"
+
  _nvram set commit "daten fuer SMS-Dienst eingegeben"    # Grund fuers Log angeben / resetfest abspeichern
  _nvram set commit "daten fuer SMS-Dienst eingegeben"    # Grund fuers Log angeben
      
Absenden:
 
Absenden:
 
   
 
   
 
  _sms send "person1" "mein text steht hier"              # Name wird aus Telefonbuch genommen
 
  _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:
 +
 +
<tt>wget -O - "http://ip_des_routers/cgi-bin-tool.sh?OPT=startshell</tt>
 +
 +
von einem anderem Router aus kann man den gleichen Befehl folgendermaßen absetzen:
 +
 +
<tt>_tool remote ip_des_routers startshell</tt>
 +
 +
=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)
 +
<pre>
 +
config 'interface' 'wlanap'
 +
        option 'ifname' 'wlan0-1'
 +
        option 'proto'  'static'
 +
        option 'ipaddr' '10.63.xx.yy'
 +
        option 'netmask' '255.0.0.0'
 +
</pre>
 +
* /etc/config/olsrd: ''wlanap'' zu Interfaceliste für wlan hinzufügen (ohne gehts nicht, aber theoretisch sollte man es nicht brauchen)
 +
<pre>
 +
list interface 'wlan wlanap'
 +
</pre>
 +
* /etc/config/wireless: Anlegen des AP-Modus:
 +
<pre>
 +
config wifi-iface
 +
        option device  radio0
 +
        option network  wlanap
 +
        option mode    ap
 +
        option ssid    'weimarnetz-tp-dev'
 +
        option encryption 'none'
 +
</pre>
 +
* 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)
219

Bearbeitungen

Navigationsmenü