michi1983
Goto Top

Mikrotik - Wo liegen die Packages?

Hallo Admins,

vielleicht eine doofe Frage, aber wo genau liegen auf meinem RB4011 die Packages?

Warum ich frage:
Ich beziehe mich auf diesen Forumspost im Mikrotik Forum (#3).

Ich würde meinem CapsMan gerne sagen, dass er den cAP "freundlich mitteilen" soll, dass sie die selbe Version des CapsMan verwenden sollen.

Hierzu müsste ich aber den Pfad angeben, wo die Packages auf meinem RB4011 liegen, wenn ich das richtig verstanden habe.

Allerdings habe ich keine disks.

Unter files, habe ich im Rootverzeichnis lediglich meine 2 Standardfolder /pub und /skins.

Was müsste ich hier angeben?

Danke und Gruß
Michi

Content-ID: 668367

Url: https://administrator.de/contentid/668367

Printed on: December 14, 2024 at 15:12 o'clock

150704
150704 Sep 25, 2024 updated at 09:27:33 (UTC)
Goto Top
Beliebigen neuen Ordner erstellen, oder existierenden benutzen, "pub" kannst du auch verwenden wenn du willst, dann in diesen alle Firmware-NPKs rein werfen (Pakete für alle bei dir genutzten Devices/Prozessorvarianten die du upgraden willst) und den Pfad dann im CAPsMan angeben
/interface wifi capsman set package-path=/mypath
michi1983
michi1983 Sep 25, 2024 at 09:29:30 (UTC)
Goto Top
Hi @150704,

danke für die Antwort.

Das heißt aber, dass ich das immer manuell machen muss?

Der Hintergrund meiner Frage:
Ich habe auf dem RB4011 selbst ein Script über den Scheduler laufen, der mir regelmäßig auf Updates prüft, diese dann runterlädt und selbständig installiert (inkl. RouterBOARD upgrade und reboot etc.)

Die werden dann also nicht irgendwo unter /pub/packages (nur als Beispiel) gespeichert, damit ich darauf referenzieren kann?

Gruß
Michi
150704
150704 Sep 25, 2024 updated at 09:39:05 (UTC)
Goto Top
Zitat von @michi1983:

Das heißt aber, dass ich das immer manuell machen muss?
Nein, kannst du natürlich auch skripten ...
Der Hintergrund meiner Frage:
Ich habe auf dem RB4011 selbst ein Script über den Scheduler laufen, der mir regelmäßig auf Updates prüft, diese dann runterlädt und selbständig installiert (inkl. RouterBOARD upgrade und reboot etc.)

Die werden dann also nicht irgendwo unter /pub/packages (nur als Beispiel) gespeichert, damit ich darauf referenzieren kann?
Nein, die werden beim "install" command installiert und dann anschließend automatisch gelöscht.
Du kannst sie aber bspw. erst mal nur herunterladen über den "download" command und dann wegkopieren oder alternativ per "/tool fetch" command direkt von der Mikrotik Seite runterladen und in deinen Ordner schmeißen.
Aber mit der Firmware des RB4011 kanst du nur CAPs aktualisieren die die selbe Prozessor-Architektur wie der RB4011 haben!!

Wichtig ist also das du immer die richtige Firmware für deine CAPs lädst die deren Prozessor-Architektur entspricht! Du kannst nicht einfach nen CAP ax mit ner ARM Variante flashen, der braucht die ARM64 Variante ...
150704
Solution 150704 Sep 25, 2024 updated at 11:15:08 (UTC)
Goto Top
Hier mal ein kleines Skript welches den Download für mehrere Architectures in einen Ordner beim Update-Check erledigt
# base download url
:local BASEURL "https://download.mikrotik.com/routeros"  
# local download path
:local DOWNLOADPATH "firmware"  
# architectures to download
:local ARCHES {"arm";"arm64"}  

/system package update {
	# check for updates
	check-for-updates duration=20s
	# get current and new version
	:local CURRENTVERSION [get installed-version]
	:local NEWVERSION [get latest-version]

	# if newer version is available download new version or if no firmware is present yet download current firmwares
	:if ($CURRENTVERSION != $NEWVERSION || [:len [/file find name ~ "^$DOWNLOADPATH/.*\\.npk\$"]] = 0) do={  
		# remove old firmware files from download folder
		/file remove [find name ~ "^$DOWNLOADPATH/.*\\.npk\$"]  
		# download firmwares for desired architectures
		:foreach ARCH in=$ARCHES do={
			/tool fetch url="$BASEURL/$NEWVERSION/routeros-$NEWVERSION-$ARCH.npk" output=file dst-path="$DOWNLOADPATH/"  
		}
		# install new firmware locally
		install
	}
}

Und wie gesagt in der CAPsMAN config dann nicht vergessen den Pfad und gewünschte upgrade policy anzugeben
/interface wifi capsman set package-path="firmware"  upgrade-policy=suggest-same-version  

Beim nächsten Provisioning-Vorgang entweder durch den Reboot des CAPsMAN oder durch manuell angeworfenes Provisioning wird den CAPs dann die neue Firmware angeboten und diese führen dann das Upgrade durch.

Bootloaderupdate nicht vergessen. Das stößt man sinnigerweise über ein Skript im Scheduler bei jedem Neustart an welches die aktuelle und neue Bootloader-Version vergleicht und wenn eine neue verfügbar ist, das Update durchführt und einen erneuten Reboot auslöst.
/system routerboard {
	:if ([get upgrade-firmware] != [get current-firmware]) do={
		upgrade
                :delay 2
		/system reboot
	}
}
michi1983
michi1983 Sep 25, 2024 at 11:19:51 (UTC)
Goto Top
Wichtig ist also das du immer die richtige Firmware für deine CAPs lädst die deren Prozessor-Architektur entspricht! Du kannst nicht einfach nen CAP ax mit ner ARM Variante flashen, der braucht die ARM64 Variante ...

Das ist mir klar, danke. Alle meine APs sind cAP AC (und somit ARM, wie der RB4011).

Vielen Dank für das Script, das teste ich gleich mal aus face-smile

Gruß
Michi
150704
150704 Sep 25, 2024 updated at 12:00:15 (UTC)
Goto Top
Zitat von @michi1983:
Alle meine APs sind cAP AC (und somit ARM, wie der RB4011).
In dem Fall brauchst du gar kein Skript und der Pfad im CAPsMAN kann leer bleiben, wenn alle CAPs die selbe Architecture wie der CAPsMAN haben nutzt der automatisch das installierte OS als Quelle für das Package.

https://help.mikrotik.com/docs/display/ROS/WiFi#WiFi-CAPsMANGlobalConfig ...
package-path (string |; Default: )
Folder location for the RouterOS packages. For example, use "/upgrade" to specify the upgrade folder from the files section. If an empty string is set, CAPsMAN can use built-in RouterOS packages, note that in this case only CAPs with the same architecture as CAPsMAN will be upgraded.

michi1983
michi1983 Sep 25, 2024 at 12:11:02 (UTC)
Goto Top
Ach herrje, RTFM würde helfen :/ Sorry dafür