WR841N - SPI Bausteine austauschen / Flash aufrüsten

Hallo und Danke fürs Feedback,
ja, auf die Idee mit dem dmesg sind wir beim hacken letzte Nacht auch gekommen. Nur etwas blöd, dass die (2) Geräte schon umgebaut sind und in der Domänen FF-LD sind, während ein nicht-umgebautes Gerät in FF-KA ist, dumm gelaufen…
Trotzdem haben wir da einen entscheidenden Unterschiede gefunden (Router mit Original-Chip):
[ 0.700000] m25p80 spi0.0: found gd25q32, expected m25p80
[ 0.710000] m25p80 spi0.0: gd25q32 (4096 Kbytes)
[ 0.710000] 5 tp-link partitions found on MTD device spi0.0
[ 0.720000] Creating 5 MTD partitions on „spi0.0“:
[ 0.720000] 0x000000000000-0x000000020000 : „u-boot“
[ 0.730000] 0x000000020000-0x000000154430 : „kernel“
[ 0.730000] 0x000000154430-0x0000003f0000 : „rootfs“
[ 0.740000] mtd: device 2 (rootfs) set to be root filesystem
[ 0.750000] 1 squashfs-split partitions found on MTD device rootfs
[ 0.750000] 0x000000380000-0x0000003f0000 : „rootfs_data“
[ 0.760000] 0x0000003f0000-0x000000400000 : „art“
[ 0.760000] 0x000000020000-0x0000003f0000 : „firmware“
Und die relevanten Stellen des Umbaus:
[ 0.700000] m25p80 spi0.0: found s25fl064k, expected m25p80
[ 0.720000] m25p80 spi0.0: s25fl064k (8192 Kbytes)

[ 0.770000] 0x0000007f0000-0x000000800000 : „art“
[ 0.770000] 0x000000020000-0x0000007f0000 : „firmware“

Also: ART liegt am Ende, beim 1:1 Kopieren natürlich nicht und der EZP2010 scheint beim stupiden Kopieren einfach den Inhalt zu duplizieren. Vielleicht kann das Jemand verifizieren?
Und: es wurde ein 8 MB Flash erkannt.
Werde berichten, wenn wir die Dinger (ohne Löten) wieder gangbar gemacht haben…

1 „Gefällt mir“

Wenn am Ende ein kleines Konvertierungs-Script für die ARTpartition (also deren dump) bei übrig sein sollte, bitte in ein GIT ablegen und/oder hier pasten.
(Ich habe aktuell zwar noch keine Massenaktion vor, aber demnächst soll es hier einen kleineren EasterHack geben wo noch Workshops gesucht werden.)

2 „Gefällt mir“

bin da nicht ganz fit, aber as far as i know muss das da liegen, an dieser Adresse und nicht dort…

das kann aber @anon75826926 oder andere vielleicht schneller beantworten. Mir war jedenfalls so als ich mich mit der Manipulation von der ART beschäftigt hab. (mehr TXpower als 12 db an den kleinen tp710)

Bedeutet, man kann zwar den Chip 1:1 kopieren, kann aber nur 4MB nutzen, weil ART nicht am Ende ist? Wird dann ART überhaupt gelesen?

Moin!

Ich habe mich dem Thema auch mal angenommen und meinen eh schon ziemlich hingerichteten Zombie-WR841v10 noch etwas weiter gemodded.

Also:

root@Alfeld-Talweg-16MB-841:/# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.3M      2.3M         0 100% /rom
tmpfs                    13.6M    136.0K     13.4M   1% /tmp
/dev/mtdblock3           12.3M    496.0K     11.8M   4% /overlay
overlayfs:/overlay       12.3M    496.0K     11.8M   4% /
tmpfs                   512.0K         0    512.0K   0% /dev

Der Hardware-mäßige Umbau war absolut easy.
Ich habe vorher /dev/mtd0 (u-boot) sowie /dev/mtd4 (die ART-Partition) nach /tmp kopiert und dann via SCP runtergeladen.

Wichtig zum Erfolg des Moddes ist es, den u-boot durch diese Version zu ersetzen:

Der tolle Unterschied zum normalen U-Boot (neben anderer praktischer Features) ist, dass diese Version automatisch die Flash-Größe an Ihrer JEDEC-ID erkennt (also so wie ein Programmer das auch macht).

Also wird einfach ein neuer leerer Flash genommen, man lädt das 128kByte mtd0.bin Image und ersetzt den Anfang durch ein fertiges Image des pepe2k u-boots.
Das ganze wird auf den Flash gespielt und der Flash kommt in den Router.
Nach dem Einlöten des Flashes lässt sich über Halten der Reset-Taste beim Starten ein Webserver auf 192.168.1.1 aktivieren.
http://192.168.1.1/
hier lädt man dann die Firmware hoch
http://192.168.1.1/art.html
Unter dieser URL lässt sich dann das Backup der ART-Partition hochladen.

LEDE dazuzubringen, 16MByte Images für den 841er nach ar71xx-generic auszuspucken war auch erstaunlich einfach.
Hierzu muss ich später nochmal eine genaue Anleitung schreiben. Dabei hat NeoRaider jedenfalls auch sehr geholfen :smile:

root@Alfeld-Talweg-16MB-841:/# iwinfo client0 info
client0   ESSID: "hannover.freifunk.net"
      Access Point: 5A:61:F7:7F:7C:10
      Mode: Master  Channel: 1 (2.412 GHz)

WLAN / die ART-Partition habe ich dabei übr. auch nicht kaputt gemacht :smile:

Viele Grüße,
Manawyrm

9 „Gefällt mir“

Wenn ich mir was wünschen dürfte:
Einen Workshop oder ein Youtube-Tutorial.

Einfach damit mehr Leute ihre 841er aufbohren.

@adorfer: Ein YouTube-Video werde ich denke ich schon machen, wie so oft bei mir, aber für zu Hause ist das leider noch nichts ):
Man benötigt zwangsweise einen EEPROMer. (mit nem JTAG Adapter könnte das auch klappen, hab ich aber nicht.).
Zumindest halt um auf den neuen Chip ursprünglich mal den neuen U-Boot draufzuladen. Alles andere bekommt man dann per Ethernet/TFTP nachgeladen. (auch die ART-Partition usw.), aber das Henne-Ei-Problem muss man irgendwie lösen.

Ansonsten muss man halt zwangsweise Gluon selbst bauen.
Wer vor diesen beiden Dingen keine Angst hat, kann diesen Hack umsetzen.

Wenn man sich beim Löten nicht gerade völlig blöde anstellt, kann man immerhin nicht allzuviel kaputt machen, wenn alles schiefgeht, lötet man halt wieder den 25Q32 ein und lässt es erstmal.

2 „Gefällt mir“

Moin,

so wirds gemacht :smile:

@adorfer: Bitte sehr :smile:

Viele Grüße,
Manawyrm

11 „Gefällt mir“

Sehr geil Dankeschön!

Jemand mit JTAG müsste mal testen, wie (gut) das mit nem JTAG-Programmer geht…

Auch: Das ist natürlich absolut beta! Ich habe noch keinerlei Langzeiterfahrungen.
Auch: Autoupdater unbedingt ausschalten! Ich habe keine Ahnung, was Sysupgrade auf dieser Hardware veranstaltet.

1 „Gefällt mir“

Gibt es inzwischen ein modifiziertes Gluon-Target, damit das bei Lede&Co aus dem AR71xx-tiny herauskommt?
(ich habe gerade mal 20 Chips bestellt für die Umrüstung)

Joa, also in dem Video zeige ich, wie man das umbaut.
Wir haben dann ja mehr als genug Platz, daher wird das dann auch ein ar71xx-generic…

Muss man aber halt schon immer manuell reinpatchen, das wird nicht in den „mainline“ aufgenommen.

Aber wenn man doch sowieso am Flash dran ist, warum keine neue Hw-ID, irgendwas was frei ist und frei bleibt…
Wenn wir das für FF als Standard etablieren, dann wäre es doch mit etwas gutem Willen auch möglich, dafür ein Target zu bekommen.

1 „Gefällt mir“

Jo, die Hardware-ID steht ja in der ersten Partition bei dem Bootloader und die habe ich auch verändert.

NeoRaider meinte aber schon, dass Sie das eher nicht so gerne Upstream haben würden…

Kannst du daraus vielleicht einen Patch bauen, den kann man ja dann optional einbauen?

Super Anleitung, vielen Dank fürs Schreiben :smile:

Ja, da könnte man mal nen Patch draus machen…

Koennte man nicht in die obersten beiden Bits der 841er - Version (also der id) die Flashgröße kodieren?
Also 00 für 4MB. 01 für 8MB, 10 für 16 und 11 für 32MB? Dass TP-Link zu Lebzeiten über eine 841v99 kommt ist doch eher unwahrscheinlich.

1 „Gefällt mir“

Habe mich nun damit befasst und der Mod ist jetzt AU fähig. Die Doku im Erklärbär ist ebenfalls schon aktualisiert.

Sobald ich weiß wie bau ich einen Patch dafür, muss mich aber noch einlesen.

Wenn der Autoupdater irgendwie sichergestellt ist, dann kann ich hier die Großproduktion auf den nächsten Events starten, damit möglichst viele 841er 8MB Flash bekommen.

Hi,
Danke an @anon68922371 und @Manawyrm für die getane Arbeit und die Patchanleitungen - wenn man das so nennen darf.
Nachdem klar war, dass die weit oben beschriebene Version immer noch eine 4MB-Version in einem 8MB-Flash war und man sich richtig reinfuchsen muss, um es zum Laufen zu kriegen, haben wir das damals nicht mehr weiter verfolgt. Die umgefriggelten Router liefen irgendwann, wie, kann ich mich nicht mehr erinnern.
Haben uns mal an das gluon-Bauen in der Domäne ffka gewagt, da gibt es durchaus noch einige Hürden, zumindest wenn man das nicht jeden Tag macht. Am Schluss war es dann eine ‚make -i …‘ um die Fehler zu ignorieren.
Für v2016.2.5 hätte ich einen Patch beizusteuern, er wird nach ‚make update‘ ausgeführt. Der lässt sich auch auf v2016.2.4 anwenden, da rätsele ich aber noch, warum nur das 16MB-, nicht aber das 8MB-Image gebaut wird.
Die Anwendung auf der Hardware als finaler Test steht auch noch aus, nächste Woche bekomme ich meine Chips.
@anon68922371 kann man den Patch irgendwie anhängen? … falls Interesse besteht.