Aktueller Stand

  • Es exisitieren zwei verschiedene Versionen:
  • eine ganz Normale.
  • eine abgespeckte "Schmalspur"-Variante für Geräte mit nur 2 Megabyte Flash-Speicher.

Stabile und empfehlenswerte Version

Nightly Build

Features, Funktionsübersicht

Roadmap bzw. Blick in die Zunkunft

Einstellungen (Parameter der Weimarnetz-Firmware)

  • Hier soll das IP-Schema und alle Einstellungen hin
Kanal 5
BSSID 02:ca:ff:ee:ba:be
SSID Freifunk_in_Weimar

Logbuch der Änderungen (changelog)

  • Akutes / ToDo fuer die naechste Version:
    • Registrator: Hinweistext, wenn gerade jemand anderes den Registrator benutzt

Version 21okt2006-23uhr55

  • download
  • FERTIG , kleiner Bugfix VPN-Skript
  • FERTIG , kleiner Bugfix infopage (deaktivierung der testdownloads)
  • FERTIG , kleiner Bugfix Antennen_Autosensing

Version 20okt2006-13uhr05

  • download
  • FERTIG , kleiner Bugfix Nervseite (unregistrierte Laptops kamen nicht ins Internet)

Version 19okt2006-17uhr52

  • Achtung: Netzumstellung. WLAN-Einstellungen aendern sich...
  • download Normale Version (Linksys,Siemens etc. mit 4mb Flash)
  • download Schmalspurversion fuer Geraete mit 2mb Flash
  • fuer total kaputte zum selbstbauen: skripte, bilder, programme, programme2, kit
  • FERTIG , bugfixing: Registrator-Mailversand,Antennenautosensing
  • FERTIG , bei "Internet anwerfen"-Knopf umleitung auf naechsten DSLer
  • FERTIG , bugfix BATMAN III v0.1 - library fehlte

Version 17okt2006-1uhr36

  • download Normale Version
  • download Schmalspurversion
  • download Schmalspur-micro-version
  • FERTIG , umstellen auf FFF-v1.4.1
  • FERTIG , pong.swf und snake.swf noch dazu
  • FERTIG , bugfixing readonly-Modus
  • FERTIG , bugfixing AntennenAutosensing
  • FERTIG , Statusmeldung testweise eingebaut
  • FERTIG , Batman3-v0.1 integriert
  • FERTIG , Zentrales_Monitoring integriert
  • FERTIG , Antennentest-tool von Offlinehorst integriert

Version 10okt2006-21uhr03

  • download
  • FERTIG , umstellen auf FFF-v1.4
  • FERTIG , eigener Router immer unter "weimarnetz,kiste,box,router" erreichar
  • FERTIG , Ankuendigung von DNS,Webserver auf 104er Bereich geaendert
  • FERTIG , Integrierte Pakete: "batman2 busybox-awk freifunk-dnsmasq zlib librrd1 rrdcgi1 rrdcollect rrdtool1 freifunk-statistics-de netcat libncurses horst liblzo libopenssl vtun freifunk-olsr-viz-de kmod-tun freifunk-pppoecd-de"
  • FERTIG , Nervseite-Grafiken integriert
  • FERTIG , Tetris-Flash-Spiel integriert
  • FERTIG , Fehlersuchbild integriert

Version 25sep2006-17uhr03

  • download
  • FERTIG , umstellen auf FFF-v1.3.10
  • FERTIG , bugfix nervseite
  • FERTIG , bugfix cron.minutely
  • FERTIG , Integration von horst
  • FERTIG , Integration von tcpdump

Version 23sep2006-23uhr23

  • download
  • FERTIG , umstellen auf FFF-v1.3.9
  • FERTIG , Bugfix HNA4-Ankuendigungen fuer Interneteinspeiser
  • FERTIG , unnoetige Dateien geloescht
  • FERTIG , Bootreihenfolge veraendert Antennen_Autosensing
  • FERTIG , zwei Bier vernichtet

Version 18sep2006-17uhr03

  • download
  • FERTIG , umstellen auf FFF-V1.3.6
  • FERTIG , neues netcat-ipkg und anpassung registrator
  • FERTIG , speichersparen: rrd wird bei wenig speicher deaktiviert

Version 17sep2006-19uhr51

  • download
  • FERTIG , umstellen auf FFF-v1.3.5 (boah!)
  • FERTIG , nervseite: wenn vorlage noch nicht geladen - machen!
  • FERTIG , maclisten-verteilung: alle nachbarn pruefen - nicht nur einen
  • FERTIG , grobes umstellen auf neues OLSR-plaintext-PlugIn
  • FERTIG , accounting erstmal wieder rausgenommen
  • FERTIG , syslog auf 2*256kb verkleinert
  • FERTIG , URL der Nervseite aendern
  • FERTIG , registrator: mehr logging
  • FERTIG , BUG: registrator: blockiert manchmal, weil er _denkt_ er wird gerade benutzt
  • FERTIG , KISS: infoseitengenerierung nicht ueber wget sondern direkt machen
  • FERTIG , KISS: nervseiten-vorlage aus SVN heraustrennen
  • FERTIG , KISS: nervseiten-vorlage _ungepackt_ ins firmware-image legen
  • FERTIG , accounting integrieren

Version 8jul2006-11uhr36

  • nightly_build - 1.748.992 Bytes
  • FERTIG , ipk's, binarys und bilder aus dem SVN rausnehmen
  • FERTIG , firewall: paket mit ziel=WAN-Netz und quelle NICHT eigenes LAN = verbieten
  • FERTIG , registrator: netcat integrieren

Version 07juli2006-19uhr54

  • Download - 1.732.608 Bytes
  • FERTIG , nervseite+nervnerv joinen , nervseite holen = cgi-bin-nervseite?0
  • FERTIG , sanitizer: <walledgarden/> = Liste der freien Seiten fixen
  • FERTIG , heartbeat: fon-hack,speicherauslastung,traceroute inetgateway
  • FERTIG , domains einheitlich auf ".olsr"
  • FERTIG , maclistenverteilung: alle nachbarn probieren
  • FERTIG , nervseite: button "ich will ins internet"
  • FERTIG , registrator: mechanismus einbauen,damit nur ein nutzer gleichzeitig drauf zugreifen kann
  • FERTIG , easyconfig: knotennummer aus nvram-variable und nicht aus domain bestimmen
  • FERTIG , easyconfig: leerzeichen in kontaktdaten machten probleme
  • FERTIG , cron: skript saeubern und unnoetige /tmp/-kopie loeschen
  • FERTIG , statistik: integrieren
  • FERTIG , ipk-pakete nach /ipk und dann das verzeichnis loeschen.
  • FERTIG , BUG behoben: content-type wird immer doppelt ausgegeben,wenn man nervseite auf entfernten knoten abruft
  • FERTIG , easyconfig: wan_dns bei DSL wieder auf 141.54.1.3
  • FERTIG , easyconfig: sonderzeichen im hostnamen filtern
  • FERTIG , kleineres oder gar kein startbild

Version 30juni2006-13uhr33

  • Download - 1.531.904 Bytes
  • FERTIG , neue weimarnetzeinstellungen ab 01.07.2006: FunkKanal-5, 02:ca:ca:00:ba:be
  • nervseiten: template durch den sanitizer jagen
  • FERTIG , syslog vergroessern, logrotate auch anzeigen
  • FERTIG , funktuning auch ohne neustart
  • FERTIG , infopage: beim generieren wget nach 5 min killen
  • FERTIG , eigenes Startbild
  • FERTIG , BUG: nervseite: wenn nach dem holen dateigroesse = 0,dann verwerfen
  • FERTIG , sanitizer: adresse des geraets fuer nichtrelative links
  • FERTIG , infopage: rts_real/cts_real
  • FERTIG , walledgarden: iptables-fehlermeldungen unterdruecken
  • FERTIG , infopage: "override funkparameter_tuning"
  • FERTIG , infopage: force-11mbit
  • FERTIG , registrator: k-modus
  • FERTIG , infopage: alle adressen aus /proc/net/arp anzeigen
  • FERTIG , nervseite: bei zu vielen verbindungen,uebersicht generieren
  • FERTIG , nervseite: beim sperren anzeigen,wieviele verbindungen man offen hatte
  • FERTIG , registrierung: massenmailmodus
  • infopage: mehr logging,auch beim automatisch generieren
  • FERTIG , FON-Hack integrieren,damit billige FON-Router ganz normal weiterfunktionieren 8-)
  • FERTIG , BUG: warum leitet ausgefallener DSLer keinen DNS-inet-verkehr weiter? Auf Eselbremse darf kein DNS gestartet sein!?
  • FERTIG , batman: mehr logging
  • FERTIG , BUG: batman auf unbenutztem alias-interface starten, WIFI-DEV:2
  • FERTIG , dnsmasq: seltener hosts einlesen lassen. - alle 30min - Hostnamen werden erst nach 2 Stunden inaktivitaet geloescht
  • FERTIG , infopage: schnellmodus fuer alle netzknoten,die inet einspeisen
  • FERTIG , infopage: jens-modus (alle routen + etx)
  • FERTIG , infopage: jens2-modus (alle netzwerkverbindungen)
  • FERTIG , infopage: firmware-version auslesen
  • FERTIG , unixzeit+ 'weimarnetz' in den dateinamen/startseite integrieren
  • FERTIG , wenn viel speicher da ist,syslog vergroessern
  • FERTIG , CRON: kein cronskript mit exit verlassen!
  • FERTIG , easyconfig: Serveripadressen +1 unschön
  • FERTIG , Batman 0.06 integrieren
  • FERTIG , infopage: Baraucke-Modus um holen der macliste zu erzwingen
  • FERTIG , sanitizer: iframes ausfiltern
  • FERTIG , Nervseite: mehr logging
  • FERTIG , infopage: version/datum/zeit der macliste abfragbar
  • FERTIG , infopage: tracert zu beliebiger IP beauftragen
  • FERTIG , infopage: Speichertest nur bei Livedaten
  • FERTIG, Datumsfeld in MACadressen-liste
  • FERTIG , sanitizer "<script-tag" ueberpruefen
  • FERTIG , too_many_Verbindungen: zwischencheck mit 3mins Pause
  • FERTIG , MAC-Verteil-Mechanismus / Registrierung, siehe Fries43-ToDo
  • FERTIG , Speichercheck an kritischen stellen
  • FERTIG , neue nvram variablen fuer GPS
  • FERTIG , neue nvram variablen fuer netzknotennummer
  • FERTIG, WAN-DHCP aus,wenn kein inet zur verfuegung gestellt werden soll (speicher!)
  • FERTIG , wenn man auf entfernten router geht (und nicht auf seinen eigenen) soll keine nervseite kommen,sondern fff-startseite
  • FERTIG, sanitizer: tags auf nervseite,die script (javascript!) einschalten
  • FERTIG , wenn olsr-knoten auf router geht,soll es behandelt werden wie olsr-router und nicht wie mobiler knoten
  • FERTIG , registrierung integrieren
  • FERTIG , besseres default-template anzeigen,wenn nervseite noch nicht geladen ist
  • FERTIG , auf cron verzichten
  • FERTIG , eigene weimarnetz-firmware bauen
  • FERTIG , 10min laptops soll auf 15mins hochgesetzt werden
  • FERTIG , Namensaufloesung im internen Netz: DNSmasq soll per sigHUP alle minute /etc/hosts neu einlesen
  • FERTIG , laptops: probe_response_fix integrieren
  • FERTIG , forschung: batman2 integrieren inkl. "notaus" per WIKI
  • FERTIG , tcp-westwood integrieren

Wunschliste wichtig (ToDo, feature requests)

ToDo Bastian

    • registrator: automatisches backup der registrierungsdaten per mail, nur wenn sich DB aendert.
    • registratorclient: schutz vor auslesen aus dem internet,nur 127/104/10 im ersten Remote-IP-Oktett zulassen
    • registrator+client verschmelzen
    • nervseite kommt nicht alle 700minuten, sondern alle 5mb (oder so aehnlich)
    • Bestrafung bei geringer Uptime
    • sanitizer: knotenbetreiber-notiz & kontaktdaten & personalisierbarer teil (=ff_adm_note) in nervseite integrieren
    • infopage: Bandbreitentest integrieren
    • infopage: wrapper fuer abruf beliebiger kontaktseiten von extern (??? - SPAMsicher!)
    • infopage: Weg ins Internet
    • infopage: Router-Action
    • Antennenautosensing: nvram setzen
    • Messmodus einfuehren: Nachts (zwischen 3 und 5?) wird es moeglich sein, bestimmte einstellungen fuer das gesamte Netz zu testen.
      • RTS/CTS ein/aus
      • Sendeleistung regeln ein/aus
      • Frameburst ein/aus
      • Multicastrate oder WlanRate fest/auto
      • Batman ein/aus
      • etc.

ToDo Andere

  • css von nervseite und freifunk-firmware sollte gleich sein
    • also eigene .css-Datei entwerfen, die das ff.css ersetzt
  • verschiedene nervseiten ausformulieren
  • walled garden ausbauen
    • fuer die freigeschaltete webseiten muessen die IPs rausgesucht werden
    • einfach mit einem gesperrten/unregistrierten laptop an den eigenen netzknoten gehen und mit einem kabelrechner auf der nervseite nach und nach die IPs hinzufuegen und ueber cgi-bin-nervnerv den walled garden neu einlesen lassen und mit dem schleppi testen,ob man auf die seiten kommt.
    • Achtung: viele Webseiten haben mehrere IPs

Wunschliste - niedrige Priorität

    • dem Kunstturm eine Denkmalschutz-Plakette (emailliert) kaufen
    • easyconfig: lanifnames Problem lösen
    • easyconfig: GPS - anonym Hinweis und bessere Check auf Plausibilität
    • easyconfig: rechnernamen ankuendigen / Server in /etc/local.hosts integrieren / eingabefeld ueber javascript sichtbar
    • easyconfig: PicoPeeringAgreement abnicken - ( gesehen, gelacht, F8 )
    • easyconfig: modus um kindergarten in der shell auszufuehren
    • easyconfig: andere staedte - funktionsfaehig machen
    • easyconfig: warnung bei passwort "admin" -> nervseite
    • nervseite: dezentraler verteilmechanismus aehnlich macliste
    • nervseite: sauberes erkennen "aus welchem subnetz kommt remote-ip"
    • nervseite: extra nerv, wenn noch kein wiki-eintrag zum benutzer/knoten existiert
    • infopage: auf wunsch maschinenlesbarer output
    • infopage: funktion einbauen,um einen infopage-befehl automatisch an alle Router zu senden
    • infopage: netzkarte mit gps-infos malen
    • sanitizer: sms-versende-knopf
    • sanitizer: bruellbox als extra <tag>
    • sanitizer: <tag> wer/wieviel ist gerade im DC++ online
    • firewall: besseres & allgemeineres Design der Firewall/iptables/Umleitungs-Regeln
      • OLSR ueber VPN extra langsam sprechen
    • sendeleistung: algorithmus fuer sendeleistung/mrate finden
      • ueber entfernung zum nachbarn (GPS!) entscheiden, ob verbindung wichtig ist,oder nicht.
      • gute,bandbreitige (goodput/throughput) verbindungen wichtiger als 1mbit?
      • nachts einen messmodus einfuehren?
    • netzwerkmasken berichtigen: 104.63.0.0/16 & laptops
    • verschiedene Funktionen ueber das Wiki/nervseite ein/ausschaltbar machen:
      • mrate11,batman,txpwr,rateset,rate,selektive ausnahmen?
    • uhrzeit & nodeliste & macliste & nervseite_holen zusammenlegen
    • GPS-Daten als 1ten hostnamen und Routername als 2ten hostnamen eintragen,um GPS-Daten dezentral zu verteilen. evtl. auch an die broadcast-addy den GPS-Hostnamen vergeben. evtl. auch olsrd-service-plugin dafuer benutzen

Fehlerliste (bugreport)

  • Kindergarten: manchmal (nur bei neuen Routern?) werden die lanifnames durcheinander-gewuerfelt. Momentan behelfen wir uns mit dem Aendern eines Wertes (z.b. Sendeleistung) bei Verwalten/Drahtlos , speicher, neustart.

Neue Firmware selbst bauen (buildprozess, howto, SVN)

  • Dies ist ein Notizzettel zum bauen einer neuen Firmware. Saemtliche Schritte habe ich fuer ein Linux-System dokumentiert. Eigentlich kann man ein komplettes Copy&Paste machen und schon ist alles fertig.
  • Der normale Weg ist, sich die aktuelle Weimarnetz-Firmware auf den Router zu packen, alle Aenderungen auf dem Router vorzunehmen und dann diese Anleitung nachzumachen.
  • zum Arbeiten mit dem SVN empfiehlt sich die Lektüre Subversion - Versionskontrolle im Weimarnetz
  • einfaches Einsehen des SVNs: http://svn.sourceforge.net/viewvc/weimarnetz-fw/trunk/firmware/
EIGENER_ROUTER=$(route|awk '/default/{printf $2}')
ssh $EIGENER_ROUTER

# nun sind wir auf dem Router

cd /
tar cvzhf www/fw.tgz usr/sbin/*weimar* etc/init.d/*weimar* www/*nervseite www/*info* www/*registr* www/cgi-bin/*kinder* www/cgi-bin-speed www/cgi-bin-map www/cgi-bin/telnet

# nun haben wir eine direkt herunterladbare Datei fw.tgz, die 
# alle (evtl. geaenderten) weimarnetz-spezifischen Dateien enthaelt. 
# nun muessen wir noch alle zusaetzlich installierten 
# Software-Pakete herausfinden und in ein Archiv packen:
# das Archiv wird aus Platzgruenden in die RAM-Disk geleitet
# und ein zusaetzlicher, umgebogener Webserver gestartet

ipkg update
ipkg install batman
ipkg install busybox-awk
ipkg install freifunk-dnsmasq
ipkg install freifunk-statistics-de
ipkg install http://openwrt.alphacore.net/netcat_0.7.1_mipsel.ipk
ipkg install horst
ipkg install vtun
ipkg install freifunk-olsr-viz-de
ipkg install freifunk-pppoecd-de

PAKETE="$(ipkg status|awk '{if(s==1&&$1=="Package:")printf $2" ";if($2=="dropbear")s=1}')"
F1="/usr/lib/ipkg/info/*"
F2="/usr/lib/ipkg/status"
F3="$(for F in $PAKETE;do ipkg files $F|awk '{if($0!="/")system("ls -ld "sprintf("%s",substr($0,2)))}'|awk '{if($5>0)print $9}';done)"
tar cvzf /tmp/ipkg.tgz $F1 $F2 $F3
tar cvzf /tmp/images.tgz www/images/Info_* www/images/*.swf www/images/intro.jpg
httpd -h /tmp/ -p 81
exit

# nun haben wir eine direkt herunterladbare Datei ipkg.tgz,
# haben also alles was wir brauchen und sind wieder auf unserem Rechner
# wir laden und das aktuelle Kit von sven-ola's freifunk-seite
# herunter und entpacken dieses auf unserem Rechner

KIT_URL="http://styx.commando.de/sven-ola/testing/_kit/"
KIT_VERSION="freifunk-openwrt-kit-1.3.6-de"
wget "$KIT_URL$KIT_VERSION.tar.gz"
tar xvzf "$KIT_VERSION.tar.gz"
cd $KIT_VERSION

# nun machen wir uns ein Verzeichnis in der die komplette
# Verzeichnisstruktur und alle Dateien wie sie auf dem Router
# sind reinkopiert werden. Das Grundsystem ist im Kit schon dabei.
# die zwei Dateien, die wir eben auf dem Router erstellt
# haben, nehmen wir von dort oder aus dem SVN

wget "http://$EIGENER_ROUTER:81/fw.tgz"
wget "http://$EIGENER_ROUTER:81/ipkg.tgz"
wget "http://$EIGENER_ROUTER:81/images.tgz"
mkdir weimar
cd weimar
tar xvzf ../root.tgz
tar xvzf ../fw.tgz
tar xvzf ../ipkg.tgz
tar xvzf ../images.tgz

# ok,nun ist fast alles fertig. Wir haben nun noch die Chance
# nach www/ ein eigenes bild zu kopieren und ein paar kleine
# Aenderungen durchzufuehren, z.b.: 

# holen und formatieren der aktuellen nervseite:

URL="http://wireless.subsignal.org/index.php?title=Nervseite"
F1="www/nervseite-vorlage"
wget -O - "$URL"|sed '/-- NERVSEITE:START --/,/-- NERVSEITE_LEEREKONTAKTDATEN:END --/!d' >"$F1"

# nun alles wieder einpacken und neues firmwareimage erzeugen
# das firmwareimage wird schon nach unixzeit und datum benannt:

tar cvzf ../root.tgz *
cd ..
X=$(date -Ih|awk -F[-T] '{print($1-1970)*31536000+$2*2592000+$3*86400+$4*3600}')
Z=$(date -R|awk -F"[, :]" '{printf("%s%s%s-%suhr%s",$3,tolower($4),$5,$6,$7)}')
N="weimarnetz_firmware-$X-$Z-trx.bin"
./gen-openwrt -v $N trx >../$N

# Nun muessen wir noch eine Schmalspur-Variante fuer Geraete mit
# nur 2Mb Flash-Speicher bauen. Dazu schmeissen wir scheinbar
# ueberfluessigen Muell raus. Insbesondere grosse Dateien 8-)
# erstmal verschaffen wir uns einen Ueberblick:

cd weimar
ls -alR|awk '{if(substr($0,1,2)=="./")dir=substr($0,3,length($0)-3);print $5,dir"/"$9,$10,$11,$12}'|sort -n

# nun sehen wir den ganzen Kram,der sich lohnt. Hier mein Vorschlag:

rm www/images/intro.jpg
RRD="$(find -name "*rrd*")"
rm $RRD
rm usr/bin/dropbearmulti
rm usr/bin/netcat
rm www/cgi-bin-registrator.html
rm usr/sbin/batman
rm usr/sbin/tcpdump
rm lib/libncurses.so.5.2
rm usr/lib/libpcap.so.0.8.3


# und die neue version bauen:

tar cvzf ../root.tgz *
cd ..
N="weimarnetz_firmware-schmalspur-$X-$Z-trx.bin"
./gen-openwrt -v $N trx >$N

# nun haben wir zwei firmware-dateien, die schmalspurvariante ist ca. 300Kb kleiner
# und wenn man moechte, nun noch das SVN aktualisieren

#NUR BEIM ERSTEN MAL:
svn checkout https://svn.sourceforge.net/svnroot/weimarnetz-fw/

cd firmware/
#Sonst:
cd firmware/
svn update
#weiter
wget "http://$EIGENER_ROUTER:81/fw.tgz"
tar xvzf --overwrite fw.tgz
rm fw.tgz
svn add * --force
svn commit -m "$X-$Z"