- 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 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"
tar cvzf /www/ipkg.tgz /usr/lib/ipkg/info/* $(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)
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
# holen und formatieren der aktuellen nervseite:
wget -O - "http://wireless.subsignal.org/index.php?title=Nervseite"|sed '/-- NERVSEITE:START --/,/-- NERVSEITE_LEEREKONTAKTDATEN:END --/!d' >www/nervseite-vorlage
# 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
# und schmalspurversion (ohne SSH und intro-bild) bauen:
# und gleich noch ins SVN hochladen
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"