Vorherige Firmware per Konsole aktivieren

Fragen zur LANCOM Management Windows Software/ LANtolls: LANconfig, LANmonitor, WLANmonitor.

Moderator: Lancom-Systems Moderatoren

Antworten
chriswalg
Beiträge: 10
Registriert: 06 Sep 2020, 19:52

Vorherige Firmware per Konsole aktivieren

Beitrag von chriswalg »

Hallo,

gibt es einen Konsolen-Befehl, um die vorherige Firmware zu aktivieren?

Gruß Christian
DanLo
Beiträge: 65
Registriert: 08 Jan 2019, 12:44

Re: Vorherige Firmware per Konsole aktivieren

Beitrag von DanLo »

Die Firmwares sind unter

Code: Alles auswählen

/Firmware/Table-Firmsafe
aufgeführt. Da den Befehl

Code: Alles auswählen

set X act
(X is die Position der Firmare die du aktivieren willst, also 1 oder 2) eingeben, dann mit

Code: Alles auswählen

do /other/boot-system
neu starten.
chriswalg
Beiträge: 10
Registriert: 06 Sep 2020, 19:52

Re: Vorherige Firmware per Konsole aktivieren

Beitrag von chriswalg »

Vielen Dank

jetzt stellen sich noch folgende Herausforderungen für mein Powershell-Script:
  • auszulesen, welche Version auf welchem Firmwarespeicher (1 oder 2) liegt. Kann ich auch über sysinfo parsen?
  • setzen der aktiven Firmware mit einer Befehlszeile "z. B. set /Firmware/Table-Firmsafe X act". Was so nicht funktioniert. Gibt es eine passende Syntax?
backslash
Moderator
Moderator
Beiträge: 7010
Registriert: 08 Nov 2004, 21:26
Wohnort: Aachen

Re: Vorherige Firmware per Konsole aktivieren

Beitrag von backslash »

Hi chriswalg
auszulesen, welche Version auf welchem Firmwarespeicher (1 oder 2) liegt. Kann ich auch über sysinfo parsen?
steht doch in der Tabelle... aber wenn du den Sysinfo parsen willst, das müßte die erste Ziffer im FIRMWARE_STATUS sein (beachte, daß da die Zählung bei 0 beginnt)
setzen der aktiven Firmware mit einer Befehlszeile "z. B. set /Firmware/Table-Firmsafe X act". Was so nicht funktioniert. Gibt es eine passende Syntax?
fast... Tabellenzeilen sind wie Unterverzeichnisse, d.h. du mußt den Pad dahin vollständig angeben, also "set /Firmware/Table-Firmsafe/X act" (oder kürzer "set /f/t/X a")

Gruß
Backslah
Dr.Einstein
Beiträge: 2893
Registriert: 12 Jan 2010, 14:10

Re: Vorherige Firmware per Konsole aktivieren

Beitrag von Dr.Einstein »

Hi,

reicht nicht in 99% der Fälle der "neue" Befehl

Code: Alles auswählen

do /Firmware/Switch-Firmware


völlig aus? Die laufende Firmware wird doch im Regelfall neuer sein als die Firmware auf der 2. Partition? Mal von irgendwelchen spontanen Tests abgesehen.

Gruß Dr.Einstein
Benutzeravatar
Jirka
Beiträge: 5225
Registriert: 03 Jan 2005, 13:39
Wohnort: Ex-OPAL-Gebiet
Kontaktdaten:

Re: Vorherige Firmware per Konsole aktivieren

Beitrag von Jirka »

Genau, dafür wurde der Befehl doch extra mal geschaffen, dass man mehrere Router am Stück nach einem Firmware-Update, was man rückgängig machen will, wieder per Script zurücksetzen kann. Vorher, also als es den Befehl noch nicht gab, musste man noch Verrenkungen machen (Notizzettel):

Code: Alles auswählen

abgedeckte Szenarien:

1) tatsächlich laufende FW in 1 oder 2 und aktiv, anderer Platz a) inaktiv oder b) leer oder minimal+inaktiv
   -> Position_current_FW 1 oder 2; a) Position_inactive_FW 2 oder 1; -> b) unset inactive u. booten
2) tatsächlich laufende FW in 1 oder 2 und inaktiv, anderer Platz a) aktiv (aber nicht tatsächlich aktiv) oder b) minimal+aktiv (aber nicht tatsächlich aktiv)
   -> unset current; a) 
3) tatsächlich laufende FW gar nicht vorh., ein Platz leer, der andere aktiv (aber nicht tatsächlich aktiv) oder minimal+aktiv (aber nicht tatsächlich aktiv)




ls /3/2   -> contains minimal -> Abbruch
ls /3/2/1 @ ${__FWVERSION}.${__FWBUILD} -> contains " active" -> setenv Position_active_FW 1 -> goto
ls /3/2/2 @ ${__FWVERSION}.${__FWBUILD} -> contains " active" -> setenv Position_active_FW 2 -> goto
                                           ansonsten unsetenv -> goto
ls /3/2/2 @ ${__FWVERSION}.${__FWBUILD} -> contains " inactive" -> unsetenv inactive -> goto
ls /3/2/1 @ ${__FWVERSION}.${__FWBUILD} -> contains " inactive" -> unsetenv inactive -> goto
                                        -> contains " inactive" -> setenv Position_inactive_FW 1 ; setenv Position_FW_Var_erst /4/2
                                           ansonsten unsetenv beide Variablen; 

                      ansonsten -> setenv Position_active_FW 2 ; setenv Position_inactive_FW 1 ; setenv Position_FW_Var_erst /4/2
# diese Auswertung basiert aber auf der Tabelle der Firmwares. Die aktiv laufende Firmware muss dort aber nicht aktiv sein.


# Script "Andere FW aktivieren"
# Funktioniert nur, wenn im Gerät das Firmware-Script läuft, was die Variablen erzeugt, die die Position der aktiven FW angeben
# abwarten, damit dieses Script auch Geräte hinter Routern erreicht, dann inaktive FW aktivieren und anschließend neu booten (wenn Variablen vorhanden)
sleep 5s ; set /3/2/${Position_inactive_FW} 1 ; do ${Position_FW_Var_erst} ; sleep 1m ; LoadFirmware /last

${vorherige_FW_aktivieren}

# Vergleich zur letzten aktiven FW
cd /3/2/${Position_active_FW}
Antworten