[Freifunk-Bonn] Firmware Build

Jan Lühr ff at jluehr.de
Sa Dez 13 14:17:13 CET 2014


Hallo,


Am 12/13/2014 12:28 PM, schrieb hede:
> Am Fri, 12 Dec 2014 23:24:01 +0100 schrieb Jan Lühr <ff at jluehr.de>:
> 
>> Kommentare zu den einzelnen Punkten siehe unten:
>>
>> Am 12/12/2014 11:11 PM, schrieb hede:
>>> Ich hab mir mal was gebastelt: kbu-Freifunk als ipk-Package zum Nachinstallieren auf OpenWRT 14.07.
>>
>> Cool - das ist auf jeden Fall ein interessenter Punkt. 
> 
> Ums vorweg zu nehmen: Es soll nicht das offizielle Image ersetzen, nicht dass das wer meint. 

Nein. Keine Sorge.

> Für den DAU, der Freifunk betreiben will und der die schwarzen Fenster (shell) nicht mag, ist das ganz sicher nichts. Da ist eine einfache Firmware wie die aktuelle offizielle, die nicht konfiguriert werden muss, wesentlich besser.

Das stimmt. Interessant ist aber die integration in den Build-Prozess.
In dem Moment wo wir OpenWRT nicht selbst kompilieren, kann man ohne
fiese Warnungen kernel-Module, etc. aus den OpenWRT Quellen nutzen.

Es wäre daher nicht verkehr, ein Paket zu haben, dass man bspw. über den
Image-Builder nachschieben kann.

> Ziel ist eher ein Paket, das sich vielleicht gar auf Gerätemodellen installieren lässt, die so direkt gar nicht im Blickfeld der Entwickler sind. So nach dem Motto den gerätespezifischen Part liefert OpenWRT, das kbu-ff-Paket eine logische Schicht darüber... falls das umsetzbar ist.

Das ist eine schwierige Frage.
Aktuell bauen wir für den kompletten ar71xx-Zweig die Geräte. Wir haben
nur leider nicht viele vers. Typen. s.d. wir nur sehr beschränkt testen
können.

Ich weiß nicht, ob wir die Konfiguration 1:1 auf andere Plattformen
übernehmen können.
Verschiedene Interfaces und Features dort machen fast immer ein
händischen Eingreifen erforderlich.
Hier sollten wir am besten zwischen Software (batman-adv, fastd) und der
zugh. Konfiguration trennen.

> Außerdem hatte ich keine Doku gefunden, die die Änderungen zwischen OpenWRT Upstream und der Freifunk-Firmware schön zusammenfasst. Dafür wäre so ein Paket ja auch irgendwie tauglich. Gibt es so etwas? Hatte ich nicht gefunden.

Es gibt so gesehen keine Änderungen. Wir liefern OpenWRT + fastd + avahi
+ batman-adv + Config aus.

>>
>> Hier bin ich noch etwas unsicher: Afair verlangen OpenWRT Kernel-Module
>> genau den Kernel für die sie gebaut wurden als Paketabh. Die
>> ausgewählten Features werden als Hash in der Versionsnummer codiert. Wie
>> bist Du hier vorgegangen um das Kernel Modul laden zu können.
> 
> Das Problem hatte ich auch erst. Mit einem Buildroot aus dem git geht das natürlich nicht, da erhält man beim Installieren Fehlermeldungen. Ist mir auch passiert. 
> 
> Die Lösung ist, einfach mit dem OpenWRT-SDK genau in der Version zu kompilieren, mit der das Image gebaut wurde. Praktischerweise gibt es das und es ist für alle ar71xx/generic-Modelle das selbe, daher der Link [2].

das SDK ist mir bei dem Versuch batman-adv zu bauen auf die Nase
gefallen. Irgendein binary fehlte - afair. Evtl. kann ich Dir mal über
die Schulter sehem, das Du gemacht hast.

> Wie gesagt, das ist bezüglich Benutzbarkeit derzeit aber eher von theoretischer Natur, da mein hede-kbu-ff-Package ja noch nicht fertig ist. Das automatische postinit ist noch komplett deaktiviert. 

Fokussier Dich nicht auf Benutzbarkeit :)

Interessant sind imho auch vor allem Updates: Anstelle den Router neu zu
flash'n klickt man in der Luci-GUI (Software-Tab) auf Upgrade und die
Firmware wird aktualisiert - falls genügend Platz auf dem Gerät zur
Verfügung steht.

> Und falls ich das weiter entwickel, wäre es günstiger, postinit und die enabler-Skripte näher am an den dazugehörigen Skripten in der offiziellen Firmware zu lassen. Da hab ich ganz schön was verändert, so dass Änderungen/Verbesserungen in der offiziellen Firmware Handarbeit bedeuten.
> 
> 
> Für weitere Kontrollen würde ich gerne wissen, was bei der offiziellen Firmware bei folgenden Befehlen ausgegeben wird. Günstigerweise ebenfalls bei einem WDR3600/4300:
> 
> brctl show
> batctl if
> for i in $(ls /sys/devices/virtual/net/*/batman_adv/no_rebroadcast); do echo -n "$i: "; cat $i; done

Ich denke, das einfachst ist, wenn Du Dich dort selber umsiehst. Wir
haben im Keller des C4 noch Geräte, die Du nach Herzenslust flash'n kannst.

> Und anscheinend ist collectd oder alfred noch nicht korrekt. Vielleicht gibts da auch Versions-Inkompatibilitäten. Mit alfred -r kann ich einige Dinge aus dem Mesh abfragen, das scheint korrekt zu funktionieren, auch wenn das ein 2014er alfred ist. Aber der traffic-Graph meines Routers unter https://register.kbu.freifunk.net/nodes wird noch nicht korrekt aktualisiert. Da stimmt was nicht. Gibts Doku, wie der arbeitet? Wie kommt der an die Daten? Ist das fdd3:5d16:b5dd:3::6, an den collectd was schicken sollte?

So in etwa. Das ist aber auch alles ein wenig WIP, s.d. wir darüber
nochmal in Ruhe nachdenken müssen.

> Außerdem steht mein Knoten mehrfach in manchen Listen (hede1), aber das kommt nicht durch meine Firmwarebastelei.

Never mind :-).

>>
>> Ich find's auf jeden Fall genial, wie Du Dich einbringst und würde mich
>> gerne mal mit Dir zusammenhocken. Bist Du schon mal bei einem Treffen
>> gewesen? Aktuell steht ein neues Firmware-Release an, für das wir noch
>> Hilfe gebrauchen können.
> 
> Nein, noch nicht. Zum letzten Bonner Treffen wollte ich, da ist mir dann aber was dazwischen gekommen. Es gibt ja schon ein paar andere, die ebenfalls an alternativen Firmwares basteln, da hab ich zum Teil durchaus schon rein geguckt. Ein neues offizielles wäre ja mit einer geplanten Umstellung auf batman-adv CV15 (und neuerem OpenWRT) durchaus ebenfalls sinnvoll. Insbesondere weil CV15 ja nun eine neue, länger haltende COMPAT_VERSION werden soll.

Ok - aber das kann ja noch was werden .

Gruß, Jan



Mehr Informationen über die Mailingliste Freifunk-Bonn