Firmwareentwicklung

Aus Weimarnetz Wiki
Zur Navigation springen Zur Suche springen

Aktueller Stand

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)

  • 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"