Danke Tarek! Habe mir aber erlaubt, das einmal rechtschreibmäßig zu parsen :)
Am 12.04.2018 um 01:16 schrieb Jan-Tarek Butt via Nordwest:
Hallo zusammen,
Wir hatten bei dem letzten Firmware release die Images für die AP-AC Mesh/Lite/Pro aus dem autoupdater genommen. Wie sich im Nachhinein herausstellte, gab es einen Fehler in der OpenWRT Dokumentation. Die Dokumentation ist nun gefixt[0].
Ein wenig technischen Hintergrund will ich euch natürlich auch mitgeben, da ich ja weiß, wie sehr sich einige danach sehnen :)
Jeder, der schon einmal einen der o.G. Geräte geflasht hat, weiß, dass die Geräte zwei Kernel Partitionen haben. Das ist auf ein Flipflop Flash zurückzuführen und ist daher eigentlich ein ganz nettes Feature. Um nun eine Freifunk Firmware drauf installiert zu bekommen, muss man sowohl kernel0 als auch kernel1 mit der Freifunk Firmware beflashen. Das ist darauf rückzuführen, dass der Bootloader signierte Images bevorzugt und somit wird das Stock Image immer gebootet. Als Beispiel: Flasht man nur Kernel 0 oder 1 und lässt auf der anderen weiterhin die Stock, so würde immer nur die Stock Firmware von kernel1 gebootet werden, da wie oben schon erwähnt der bootloader die Stock Firmware bevorzugt. Nun kommen wir zur Problemsituation. Wird ein sysupgrade z.B. durch den autoupdater ausgeführt, so wird einer der beiden Kernel Partitionen mit dem neuen Image geflasht die andere Partition beinhaltet nach wie vor das alte Image nun besteht eine (50|50) Chance das von der upgedateten Kernel Partition gebootet wird. Das ist soweit kein Problem. Das Problem entsteht, wenn von der 2. Partition gebootet wird das führt dann u.a. zu Kernel ABI Problemen was somit in einem gebrickten Router endet.
Die Auswahl der Kernel Partition findet mit Hilfe der BS (Bootsector ?) Partition statt. Diese ist in Lede read only (ro) im Kernel hinterlegt. Um nun sicherzustellen, dass dauerhaft von der richtigen Partition gebootet wird, muss ein null Byte in die BS Partition geschrieben werden. Dieses ist allerdings nicht aus dem lede System möglich, was leider dazuführt das alle die einen der o.g. Router Modelle betreiben ihr Gerät erst mit der Original Firmware recovern müssen und dann wieder beide Kernel Partitionen mit einer Freifunk Firmware beflashen müssen. Zusätzlich muss ein null Byte in die BS Partition geschrieben werden, damit sicher gestellt ist, dass immer von der kernel0 Partition gebootet wird, siehe dazu auch in der Doku [0].
Eine Diskussion dazu auf unserer dev liste findet ihr hier [1]. @Ulf hast du Lust einen Blog Artikel daraus zu zaubern? Das wäre durchaus eine wichtige Notiz für Router Betreiber.
Schöne grüße und gute Nacht :) Tarek
[0] https://openwrt.org/toh/ubiquiti/unifiac#installing_openwrt
[1] https://lists.ffnw.de/hyperkitty/list/dev@lists.ffnw.de/thread/5C5VWAONJTEHN...
Nordwest mailing list -- nordwest@lists.ffnw.de To unsubscribe send an email to nordwest-leave@lists.ffnw.de