[TL-WR1043NDv4] Zurück zur originalen Firmware

Hallo,

ich habe das o.g. Router-Modell mit Freifunk-Firmware und möchte nun zurück zur originalen. Dazu habe ich folgende Anleitung hier im Forum gefunden:

Der Anleitung nach habe ich mir folgendes Archiv beim Hersteller runtergeladen:

https://static.tp-link.com/res/down/soft/TL-WR1043ND(EU)_V4_160607.zip

Darin enthalten ist die Firmware „wr1043ndv4_eu-up-ver3-16-9-P1[20160607-rel58297].bin“. Der Anleitung entsprechend müsste diese dem Namen nach ohne „boot part“ kommen und daher direkt flashbar sein. Wenn ich es nun über die Freifunk-Weboberfläche versuche, den Haken bei „Konfiguration behalten“ nehme ich natürlich raus, bekomme ich folgende Fehlermeldung:

„Die übermittelte Datei ist keine gültige Firmware für dieses Gerät.“

Lege ich die Firmware per SCP in den tmp-Ordner und versuche den Flashvorgang nun über SSH anzustoßen, bekomme ich eine ganz ähnliche Meldung:

„sysupgrade /tmp/wr1043ndv4_eu-up-ver3-16-9-P1[20160607-rel58297].bin
Image metadata not found
Invalid image type.
Image check failed.“

Mache ich irgendetwas falsch? Stimmt evtl. etwas nicht mit der vom Hersteller angebotenen Firmware?

Ich hoffe ihr könnt mir helfen und danke schon mal im Voraus!

Der U-Boot header ist noch in dem .bin file siehe:

binwalk  wr1043ndv4_eu-up-ver3-16-9-P1\[20160607-rel58297\].bin 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
23204         0x5AA4          U-Boot version string, "U-Boot 1.1.4 (Jun  7 2016 - 15:56:11)"
23252         0x5AD4          CRC32 polynomial table, big endian
24552         0x5FE8          uImage header, header size: 64 bytes, header CRC: 
...

D.h. Du brauchst eine „stripped“ Version, also U-Boot weg, und wahrscheinlich noch den CRC32 header.

Siehe: back to original firmware

Also ich habe schon zuvor testweise mit folgendem Befehl den U-Boot header „weggeschnitten“:

dd if=wr1043ndv4_eu-up-ver3-16-9-P1\[20160607-rel58297\].bin of=wr1043ndv4_eu-up-ver3-16-9-P1\[20160607-rel58297\]_stripped.bin skip=257 bs=512

Auch das hat nicht funktioniert. Da du ja jetzt aber vermutest, dass auch der CRC32 header weg muss, muss ich bei dem Befehl wohl den „skip“-Parameter anpassen/vergrößern. Hättest du da einen Tipp, auf wieviel das sein müsste, ausgehend von der originalen Firmware?

Vielen Dank!

Ja, genau. Alles bis zum uImage Header wegschneiden.
Der fängt bei

24552         0x5FE8

an. Also bis dahin wegschneiden.

bs=512 auf 1 setzen und genau die Anzahl der Bytes angeben, die weg müssen. Das die bs (BlockSize) 512 ist, muss nicht unbedingt stimmen.

Hallo richan,
je nach Art der Firmware kannst du auch ein normales Image direkt von TP-Link einspielen. Das Image gibt es unter Download für TL-WR1043ND | TP-Link Deutschland Unter [OpenWrt Wiki] TP-Link TL-WR1043ND gibt es die Original OpenWrt Anleitung. Es gibt auch noch die Möglichkeit über tftp aber da weiss ich nicht ob das beim 1043 funktioniert. Viel Erfolg

Nein.
Zumindest wenn die Freifunk-Firmware auf OpenWRT basiert ist mir nicht bekannt, wie das gehen sollte. solange man den sysupgrade-Befehl (per cli oder über das Webfrontend) benutzen möchte, muss immer gemäß Beschreibung im Wiki (https://openwrt.org/toh/tp-link/tl-wr1043nd#back_to_original_firmware) oder oben von @misanthropos, vorn eine exakte Menge an Bytes weggeschnitten werden.

Wenn wir natürlich auch den Bootloader unter „Firmware“ fassen, dann geht es „ohne Abschneiden“. Denn Pushbutton-TFTP funktioniert bei dem Bootloader.