Picture of Roland
Registered 12 years 349 days
Roland Saturday, 23 January 2016, 01:54 PM in response to Thomas 251
1 of 1 users consider this post helpful
Re: Firmwareupdate und Config-Sicherung über CF-Card: geht fast
Eine von der Firmware-Version abhängige update-Struktur ist ganz einfach zu lösen:

In den Endgeräten und Gateway's gebt Ihr die update-url wie folgt ein:

.../drive/CF0/update/#f/

Das führt dazu, dass die Endgeräte die eigene Hardware-Bezeichnung als Dateinamen hinten dran hängen. Der gesamte Pfad eines IP240 (Hier mit der Firmware Version 1001122) würde daraufhin so lauten:

.../drive/CF0/update/1001122/update-IP240.htm

wobei die 1001122 über den Platzhalter #f immer mit der aktuellen Firmware ersetzt wird.

Auf dem update-Server braucht Ihr dann nur jeweils einen Ordner für die aktuelle Firmware zu erstellen. In diesem Fall mit dem Ordnernamen 1001122.

Die Geräte schauen dann in den eingestellten Abständen ob es in dem update-script, welcher speziell für ihre aktuelle Firmware Version erstellt wurde, update-Kommandos gibt.

Für ein anstehendes Firmware-update müssen nur die update-Dateien im aktuellen Firmware-Ordner angepasst, und die dortigen update-Kommandos für das anstehende Firmware-update geändert werden.

Der Vorteil: Für jede bisher vorhandene Firmware-Version gibt es passende Firmware-Ordner und update-Dateien in denen passend die Kommandos dauerhaft vorgehalten werden.

Selbst wenn Endgeräte aus dem Lagerbestand oder Endgeräte die zum Zeitpunkt eines Update nicht im Netz waren irgendwann ins Netz gehängt werden und einen deutlich älteren Firmware Stand haben, ziehen diese Step für Step die gleichen update-Schritte hoch wie alle anderen Endgeräte auch.

Weiterer Vorteil: Funktionen, die erst ab einer bestimmten Version verfügbar sind, können in der entsprechenden Datei aktiviert werden. Die Endgeräte erhalten darüber die Funktionen automatisch, sobald sie diesen update-Schritt erreicht haben.

In den update-Dateien gibt es dann die Kommandos für einen Firmware- Bootcode update

mod cmd UP0 prot http://..../DRIVE/CF0/Firmware/1001122/ no-op 1001122
mod cmd UP0 boot http://..../DRIVE/CF0/Firmware/1001122/ iresetn 1001122

bei diesen beiden Kommandos wird auf eine Firmware-Datei verwiesen, die nur dann geladen werden darf, wenn die aktuelle im Gerät gespeicherte Check-Variabel (1001122) von der im Kommando angegeben abweicht.

Wenn ich die Endgeräte beispielsweise von der Version 1001122 auf die 1001133 heben möchte, trage ich in der update-Datei als Variabel und als neuen Firmware-Quellordner die 1001133  ein. Die Endgeräte vergleichen ihre aktuell gespeicherte Variabel (1001122) mit der angegebenen 1001133, da diese abweicht heißt das für das Endgerät dass es die verlinkte Firmware Datei aus dem Ordner \1001133\ laden soll. Die notwendigen Dateinamen ergänzen die Geräte automatisch. Gleichzeitig wird bei erfolgtem Firmware-Update die Variabel 1001133 als neue Check-Variabel im Gerät eingetragen. Besucht das Endgerät die update-Datei erneut, sind die beiden Variabeln identisch und das Gerät lädt die Firmware-Datei nicht erneut herunter.

Es müssen immer nur die neuen Ordner für die neuen Firmware-Versionen auf dem update-Ordner angelegt werden, und in den update-Dateien der bisherigen Version die mod cmd UP0 Kommados auf die neueste Version verlinkt werden. Die update-url's in den Geräten bleiben von Beginn bis Ende die gleiche.
Mit dieser Variante kann man ganz individuell entscheiden, wann welche Hardware-Variante auf welche Firmware-Version gezogen werden soll.

update.JPG

← You can define your color theme preference here