Firmware zu groß für Ubiquiti Unifi AC Mesh #290

Open
opened 2023-08-27 20:24:51 +02:00 by fbl · 0 comments
Owner

Die aktuelle Firmwareversion 20230330 ist zu groß für den Ubiquiti Unifi AC Mesh. Dabei ist die Firmware selbst genau so groß, dass für das overlay Dateisystem nur ein einziger Erase-Block übrig bleibt (4KiB), für jffs2 sind aber mindestens 3 Erase-Blocks nötig. Dies führt dazu, dass das jffs2 nicht gemounted werden kann. OpenWrt startet dann stattdessen mit einem overlayfs in einem tmpfs. Die Änderungen werden also nur im RAM gehalten und sind nach einem Neustart weg.

Der Platz ist so knapp, weil die Unifis ihren Flash in zwei Boot Slots teilen (kernel0 und kernel1), und OpenWrt sich in früheren Versionen an diese Trennung gehalten und generell nur einen der beiden Boot Slots genutzt hat. Daher bleiben nur 7744 KiB Flash übrig. In zukünfigen OpenWrt Versionen werden die beiden Partitionen vereint (siehe e4a76673ff) und sind dann gemeinsam 15488 KiB groß.

Mit dem Upgrade auf OpenWrt v23.05 (#289) wird das Problem also erst einmal verschwinden.

Dennoch stellt sich die Frage, warum die zu große Firmware nicht bereits beim Kompilieren einen Fehler oder zumindest eine Warnung gibt, denn dort sind die Größen bereits bekannt. Dies sollte analysiert werden, damit wir nicht bei noch mehr Geräte über dieses Problem stolpern.

Die aktuelle Firmwareversion `20230330` ist zu groß für den Ubiquiti Unifi AC Mesh. Dabei ist die Firmware selbst genau so groß, dass für das overlay Dateisystem nur ein einziger Erase-Block übrig bleibt (4KiB), für jffs2 sind aber [mindestens 3 Erase-Blocks](https://openwrt.org/faq/too_few_erase_blocks) nötig. Dies führt dazu, dass das jffs2 nicht gemounted werden kann. OpenWrt startet dann stattdessen mit einem overlayfs in einem tmpfs. Die Änderungen werden also nur im RAM gehalten und sind nach einem Neustart weg. Der Platz ist so knapp, weil die Unifis ihren Flash in zwei Boot Slots teilen (kernel0 und kernel1), und OpenWrt sich in früheren Versionen an diese Trennung gehalten und generell nur einen der beiden Boot Slots genutzt hat. Daher bleiben nur 7744 KiB Flash übrig. In zukünfigen OpenWrt Versionen werden die beiden Partitionen vereint (siehe https://github.com/openwrt/openwrt/commit/e4a76673ff4f655ba0698d9edb9efbacd0f82fff) und sind dann gemeinsam 15488 KiB groß. Mit dem Upgrade auf OpenWrt v23.05 (#289) wird das Problem also erst einmal verschwinden. Dennoch stellt sich die Frage, warum die zu große Firmware nicht bereits beim Kompilieren einen Fehler oder zumindest eine Warnung gibt, denn dort sind die Größen bereits bekannt. Dies sollte analysiert werden, damit wir nicht bei noch mehr Geräte über dieses Problem stolpern.
fbl added the
bug
label 2023-08-27 20:24:51 +02:00
fbl added this to the next-bugfix milestone 2023-08-27 20:30:00 +02:00
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: freifunk-franken/firmware#290
No description provided.