Firmwareentwicklung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 19: | Zeile 19: | ||
===Wunschliste unwichtig=== | ===Wunschliste unwichtig=== | ||
===Fehlerliste (bugreport)=== | ===Fehlerliste (bugreport)=== | ||
− | ===Neue Firmware selbst bauen (buildprozess, howto)=== | + | ===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. | * 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. | * 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. | ||
Zeile 32: | Zeile 32: | ||
# nun haben wir eine direkt herunterladbare Datei fw.tgz, die | # nun haben wir eine direkt herunterladbare Datei fw.tgz, die | ||
− | # alle weimarnetz-spezifischen Dateien enthaelt. | + | # alle (evtl. geaenderten) weimarnetz-spezifischen Dateien enthaelt. |
# nun muessen wir noch alle zusaetzlich installierten | # nun muessen wir noch alle zusaetzlich installierten | ||
# Software-Pakete herausfinden und in ein Archiv packen: | # Software-Pakete herausfinden und in ein Archiv packen: | ||
PAKETE="batman2 busybox-awk freifunk-dnsmasq netcat zlib librrd1 rrdtool1 rrdcollect rrdcgi1 freifunk-statistics-de" | PAKETE="batman2 busybox-awk freifunk-dnsmasq netcat zlib librrd1 rrdtool1 rrdcollect rrdcgi1 freifunk-statistics-de" | ||
− | + | 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 /www/ipkg.tgz "$F1" "$F2" "$F3" | ||
exit | exit | ||
Zeile 72: | Zeile 75: | ||
sed '/runchecks/d' etc/init.d/S53olsrd >S53olsrd | sed '/runchecks/d' etc/init.d/S53olsrd >S53olsrd | ||
mv S53olsrd >etc/init.d/S53olsrd | mv S53olsrd >etc/init.d/S53olsrd | ||
+ | chmod 777 etc/init.d/S53olsrd | ||
# holen und formatieren der aktuellen nervseite: | # 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 | # nun alles wieder einpacken und neues firmwareimage erzeugen | ||
Zeile 86: | Zeile 93: | ||
./gen-openwrt -v $N trx >$N | ./gen-openwrt -v $N trx >$N | ||
− | # | + | # Nun muessen wir noch eine Schmalspur-Variante fuer Geraete mit |
− | # und | + | # 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 lib/libcrypt-0.9.27.so | ||
+ | rm usr/sbin/nc | ||
+ | rm www/cgi-bin-registrator.html | ||
+ | rm usr/sbin/batman | ||
+ | |||
+ | # und die neue version bauen: | ||
+ | |||
+ | tar cvzf ../root.tgz * | ||
+ | cd .. | ||
+ | N="weimarnetz_firmware-schmalspur-$X-$Z-trx.bin" | ||
+ | ./gen-openwrt -v $N trx >$N | ||
+ | |||
+ | # und wenn man moechte, noch das SVN | ||
svn checkout https://svn.sourceforge.net/svnroot/weimarnetz-fw/ | svn checkout https://svn.sourceforge.net/svnroot/weimarnetz-fw/ |
Version vom 17. September 2006, 21:42 Uhr
Aktueller Stand
Stabile und empfehlenswerte Version
- Version 1.00 , Codename: "Papst_contra_Mohammed"
- Normale Version: [link1]
- Schmalspur-Version für Geräte mit nur 2 Megabyte Flash: [link2]
Nightly Build
- siehe Changelog
- http://www.stud.tu-ilmenau.de/~babi-mtr/wirelessweimar/weimarnetz-edition-1160161200-17sep2006-19uhr51-trx.bin
Features, Funktionsübersicht
Roadmap bzw. Blick in die Zunkunft
Logbuch der Änderungen (changelog)
Wunschliste wichtig (ToDo, feature requests)
ToDo Bastian
ToDo Andere
Wunschliste unwichtig
Fehlerliste (bugreport)
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.
EIGENER_ROUTER=$(route -n|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/*reg* www/cgi-bin/*kinder* # 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: PAKETE="batman2 busybox-awk freifunk-dnsmasq netcat zlib librrd1 rrdtool1 rrdcollect rrdcgi1 freifunk-statistics-de" 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 /www/ipkg.tgz "$F1" "$F2" "$F3" 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://212.222.128.68/sven-ola/ipkg/_kit/" KIT_VERSION="freifunk-openwrt-kit-1.2.5-de" wget $KIT_URL$KIT_VERSION".tgz" tar xvzf $KIT_VERSION".tgz" 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/fw.tgz" wget "http://$EIGENER_ROUTER/ipkg.tgz" mkdir weimar cd weimar tar xvzf ../root.tgz tar xvzf ../fw.tgz tar xvzf ../ipkg.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.: # kleiner workaround fuer weimarnetz-cron-ersatz: sed '/runchecks/d' etc/init.d/S53olsrd >S53olsrd mv S53olsrd >etc/init.d/S53olsrd chmod 777 etc/init.d/S53olsrd # 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 lib/libcrypt-0.9.27.so rm usr/sbin/nc rm www/cgi-bin-registrator.html rm usr/sbin/batman # und die neue version bauen: tar cvzf ../root.tgz * cd .. N="weimarnetz_firmware-schmalspur-$X-$Z-trx.bin" ./gen-openwrt -v $N trx >$N # und wenn man moechte, noch das SVN svn checkout https://svn.sourceforge.net/svnroot/weimarnetz-fw/ cd weimarnetz-fw/trunk/firmware/ rm -fR * svn rm * wget "http://$ROUTER/fw.tgz" tar xvzf fw.tgz rm fw.tgz svn add * svn commit -m "$X-$Z"