[Problem] 4040 - komplettes neues Image inkl Bootloader bauen?

elfri

Neuer User
Mitglied seit
9 Mai 2010
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
Hallo Experten.
Ich erlaube mir mal einen neuen Thread zu starten, da mein Problem sich von hier (4040 fast ganz tot bis wir haben EVA wieder) doch schon reichlich verändert hat und man dort eine ganze Vorgeschichte lesen müsste.

Kurz gesagt: Fritte 4040, die nicht richtig booten mag und beim /etc/init-d/S45-openwrt aussteigt. WLAN-Hardware defekt? Oder nur nicht passende Daten im "urlader" (der hardware-spezifisch angepasst ist von AVM? Hier habe ich noch ein Verständnisproblem...mehr unten.)

Hoffe, man könnte ein "neues" für die Box passendes Flash-Image bauen (dabei brauche ich wohl noch Hilfe) und "draufbraten" (Fähigkeiten und Tools dafür mittlerweile vorhanden).
Warum der Aufwand bei etwas, das man für 40E gebraucht bekommt? Spaß..."muss doch gehen...!"...lernen...verstehen...Wege ebenen die andere vielleicht mal gehen müssen...

Habe kreuz und quer Threads gelesen, Tools angeschaut...yourfritz kenne ich (aber noch nicht komplett verstanden, s.u.), fritz-tools von openWRT auch.

Okay, ausführlich:

Was habe ich?
1. Eine 4040 "bad", die nach einem Recovery nicht mal mehr "EVA" kannte (thread oben), mittlerweile dank SPI flash Fähigkeiten aber zumindest wieder "beatmet" werden konnte und bis zu einer funktionierenden EVA kommt.
1.a -- von "bad" den ursprüngliche, zerschossenen flash-dump "bad01.dmp".
1.b -- aus besagtem "bad01.dmp" anhand der Partitionen auf spi0.0 mittels "dd" geschnippelt
1.b.1 -- "urlader" (der nicht mehr booted, aber zumindest sind in ihm noch MAC, Serial, Passwords etc erkennbar
1.b.2 -- tffs1 + tffs2 (ebenfalls mit erkennbaren Hardware/Software defaults)
1.b.3 -- root_kernel_spi (können wir wohl ignorieren, da aus jedem AVM-Download alias kernel.image zu gewinnen)
1.b.4 -- jffs2 - können wir wohl auch ignorieren, da in 1.b.3 enthalten (und leer)

2. Eine 4040 "good" zu Referenz-Zwecken, inkl. vollständigem SPI flash dump.

Linux. Windoof zur Hand falls unbedingt das AVM Recovery Tool ran müsste.

Versuch 1:
Aus Dumps der "good" und der "bad" Box habe ich mir davon die Teile "geschnitten" und ein "merged01.img" gebaut und auf den Flash gebraten.

aus "good": Urlader bis 0x0011dc00
aus "bad": urlader von 0x0011dc00(+1) bis 0x120000
aus "bad": tffs1 und tffs2 (*1; bzw: aus "good" und dann die Werte aus "bad" eingefügt)
aus "good": root_kernel_spi

*1: im "bad" tffs1 und 2 ist die Reihenfolge der Daten unterschiedlich; in "good" kommen erst Werte, und dann Feldnamen; in "bad" war es anders herum, und ein Image mit den Schnippseln aus "bad" ergibt mit binwalk ein unvollständiges Bild. Also habe ich letztlich die Schnippsel von "good" genommen und die MAC, Serial, Passwords etc aus "bad" eingebaut.

Kiste bootet danach einmal bis S45-openwrt, stieg dann aus, und produzierte beim Reboot ein ausführliches Log.
Ich habe beide Bootlogs (erster Start, und dann Re-Start mit Dump) per ttl console mitgeschnitten. Aber ich werde nicht schlau draus. Es scheint, sie liest irgendwo falsche Daten aus dem urlader-Teil der ihre spezifischen Werte enthält, erwischt dabei aber was, was nicht "wie erwartet" ist. Dann startet sie neu und schreibt die Fehlerlogs weg.
DANACH kommt sie nicht mehr über EVA hinaus, boot-loop. Bis ich das "merged01.img" wieder drauf brate.

Versuch 2:
Habe das "merged01.rom" mal auf die "good" box gebraten und gestartet.
Die startet dann auch nicht korrekt, verhält sich aber anders:
A) Good box mit Good-rom listet im boot log auf:
A1) -- DSL Mac, VOIP Mac, VCC2 + VCC3 Mac
A2) -- "execute /etc/init.d/E47-cpunet" und "execute /etc/init.d/E47-voip"
B) Good box mit merged01listet im boot log auf:
B1) -- *nur* VCC2 + VCC3 Mac
B2) -- *nur* "execute /etc/init.d/E47-voip"

Im boot log aus Versuch 2 (merged01 ROM auf GOOD box) findet sich Folgendes:
[ERR]cfg_hal_set_acfg_sec: non ASCII PSK not handled (sta-id 1)
und dann noch viel mehr, hier mal nur der erste relevante Teil des Logs (davor sieht alles genauso aus wie beim "guten" Log bis auf die obigen Unterschiede)

Code:
[20:50:00:718] [   28.757691][3]Reset complete for wifi core id : 1
[20:50:00:733] [   28.757767] hif_disable: Xhif_napi_destroy: NAPI 6 destroyed
[20:50:00:733] [   28.757807] hif_napi_destroy: no NAPI instances. Zapped.ath_sysfs_diag_fini: diag_fsattr
[20:50:00:749] [   28.758198][3]ath_ol_pci:  (Atheros/multi-bss)
<<<<< elfri merkt an: Bis hier her sieht das boot-log aus wie beim "good rom on good box" >>>>>>>>
[20:50:00:749] Jan  1 01:00:28 ddnsd[1464]: startup ($Revision$$CompileDate: Jul 16 2019 20:40:17 $)
[20:50:00:749] Jan  1 01:00:29 ddnsd[1464]: starting ...
[20:50:00:764]
[20:50:00:764] Jan  1 01:00:29 telefon[1471]: use clock_gettime(CLOCK_MONOTONIC)!
[20:50:00:764] ----------------------------BEGIN_WLAN_SUBSYSTEM_LOG----------------------------
[20:50:00:780] --BEGIN_META--
[20:50:00:780] class: WLAN-Subsystem Restart
[20:50:00:780] error: 0201
[20:50:00:780] count: 1
[20:50:00:780] reason: Error applying WLAN configuration
[20:50:00:780] --END_META--
[20:50:00:780]
[20:50:00:780] --BEGIN_WLAND_SUPPORT--
[20:50:00:780] 01:00:24: open
[20:50:00:780] 01:00.24/[0024.008]:[INF]derived config 'AP-only mode Dual', ID: 1 (0x00000000)
[20:50:00:802] 01:00.24/[0024.012]:[INF]nexus_init: Initialize Nexus API
[20:50:00:802] 01:00.24/[0024.012]:[ERR]nexus_comm_device_get_info: Cannot determine nexus right now - check again later(try again later)
[20:50:00:826] 01:00.28/[0028.077]:[INF]netlink_steering_messages_open:196 Created netlink socket 13 for steering messages
[20:50:00:826] 01:00.29/[0029.003]:[INF]config_exchange_master_init:900: ENTER
[20:50:00:826] 01:00.29/[0029.005]:[ERR]cfg_hal_set_acfg_sec: non ASCII PSK not handled (sta-id 1)
[20:50:00:826] 01:00.29/[0029.005]:[ERR]cfg_hal_set_acfg_vap:2013: failed to set security params for ath0
[20:50:00:842] 01:00.29/[0029.005]:[ERR]cfg_hal_set_acfg_profile:1572: failed to set up ACFG VAP profile for ath0
[20:50:00:854] 01:00.29/[0029.005]:[ERR]lib_hal_set_configuration:1157: cfg_hal_set_acfg_profile() failed
[20:50:00:854] 01:00.29/[0029.005]:[ERR]lib_hal_set_configuration: failed with status 0x80000001 (0x80000001)
[20:50:00:875] 01:00.29/[0029.006]:[ERR]cfg_mgr_event_handler_cb: apply configuration failed, derived config: 1, status 0x80000001
[20:50:00:875] 01:00.29/[0029.006]:[ERR]cfg_mgr_sanity_fail: Error applying WLAN configuration
[20:50:00:896]
[20:50:00:896] --END_WLAND_SUPPORT--
Irgendwie habe ich halt den Eindruck, dass in der Hardware was steht, was im Urlader fehlt / anders steht, und da steigt sie aus.... kann das sein?

So, also, wie bekomme ich aus den Dumps die ich habe die Daten, die ich brauche, um einen neuen korrekten "urlader" zu stricken (wenn es denn daran liegen kann?).
Die yourfritz-tools zum Auslesen aus einem "Eva" helfen mir nicht direkt, da ich ja mit dem "bad" Rom (Ursprungszustand, von "davor" als sie mal noch irgendwie ging habe ich keines) kein EVA habe, dass ich befragen kann.
Nur TFFS2+3 neu bauen ist vermutlich nicht die Lösung. Auch das "Counter" auslesen (kann man die nicht einfach alle auf "Null" setzen so also ob die box aus der Fabrik käme!?) klappt so nicht mehr.
Auch ist mein Verständnis (aber das kann falsch sein!): was im TFFS2+3 steht holt sie sich bei Bedarf aus dem Urlader - der Box-Spezifisch geflashed wird von AVM? Kann das sein?

So, puh. Also wenn jemand Lust hat hier der Sache auf den Grund zu gehen bin ich extrem dankbar. Ich bin mittlerweile "betriebsblind" und raffe nicht mehr, wo ich mit welchem Tool welche Daten hin"murksen" müsste damit Hardware+urlader sich wieder mögen - oder wie ich diagnostizieren kann, ob es tatsächlich ein Wlan-Harware-Defekt sein kann, der mich hier trifft.

Dank direktem "in-situ"-Flashen in der Box kann ich recht schnell alles mögliche "draufbraten", auch ohne EVA, sowohl auf die "bad" als auch die "good" box. Also wenn jemand "Selbstgebrannten" hat der verköstigt werden muss... hier gibt's "Tester".
 

elfri

Neuer User
Mitglied seit
9 Mai 2010
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
okay, ich glaube da habe ich einiges durcheinander...
Mal bei adam und eva anfangen - wörtlich.

Zwei Verständnisfragen - hoffe auf einen gnädigen der sie mir beantwortet - danke!

1. Stehen im Bootloader ("Environment"-Teil, "urlader_config", s.u.) noch Werte, die ich nicht im "eva_get_environment env" bekomme, nämlich "radio calibration data" oder sowas? Das suche ich ja... glaube ich... damit, falls ich jemals wieder einen korrekten Bootloader zusammen bekäme ich diese Hardware-Daten hätte. Jedenfalls sagen die openWRT-Kollegen in ihrem devicetree für die 4040 eben, dass dort die "urlader_config" liegt, die eines Backups würdig wäre:
[email protected] {
/* make a backup of this partition! */
label = "urlader_config";
reg = <0x0011dc00 0x00002400>;
read-only;

2. Wenn man in EVA also ein "GETENV xyz" macht (oder PeterPawns script das tun lässt), bekommt man dann die Werte aus dem "urlader_config" Bereich, oder aus tffs1/2?
Wie bekäme man die aus dem "urlader"? Eine "shell" auf der Box habe ich ja nicht, da sie eben ja nicht sauber booten will, somit komme ich nicht an ein /proc irgendwas...wo war das noch, wo man dort den bootloader dumpen könnte... gelesen, vergessen... ich doof...neu suche, zu viele Threads gelesen und nix gemerkt)

Was haben wir heute getan...

- Komme auf die "bad" box ins eva.

- Kann aus den YourFritz eva_tools ein "./eva_get_environment env 10.10.10.2 > env.txt" machen und bekomme eine vollständige (?) env.txt. Zumindest decken sich die Einträge mit den ttfs1/2 dumps, sowohl von der "good" als auch eben der "bad" box => es scheinen keine Zeilen zu fehlen. Die Nametable (s.u.) listet noch deutlich mehr Einträge auf, aber die sind dann wohl bei anderen Modellen in Verwendung (denn die "good" box ttfs-dumps haben diese ja auch nicht ausgespuckt !?)
HWRevision=227
HWSubRevision=4
ProductID=Fritz_Box_HW227
SerialNumber=K12345678901234
annex=Ohne
autoload=yes
bootloaderVersion=1.3243
country=049
firstfreeaddress=0x8817DA88
firmware_info=155.07.14
firmware_version=avme
flashsize=nor_size=0MB sflash_size=32768KB nand_size=0MB
jffs2_size=16
language=de
maca=7C:FF:4D:xx:yy:z4
macb=7C:FF:4D:xx:yy:z5
macwlan=7C:FF:4D:xx:yy:z6
macwlan2=7C:FF:4D:xx:yy:z7
macdsl=7C:FF:4D:xx:yy:z8
memsize=0x10000000
mtd0=0x2000000,0x2000000
mtd1=0x220000,0x2000000
mtd2=0x0,0x120000
mtd3=0x120000,0x1A0000
mtd4=0x1A0000,0x220000
my_ipaddress=10.10.10.2
prompt=Eva_AVM
tr069_passphrase=123456789012
tr069_serial=00040E-123456789012
usb_board_mac=7C:FF:4D:xx:yy:z9
usb_device_id=0x0000
usb_device_name=USB DSL Device
usb_manufacturer_name=AVM
usb_revision_id=0x0000
usb_rndis_mac=7C:FF:4D:xx:yy:zA
webgui_pass=abcdef1234
wlan_key=12341234123412341234
wlan_ssid=FRITZ!Box#4040#xx

- die tffs1/2 dumps habe ich mittlerweile auch mittels "./dissect_tffs_dump < tffs1-bad.bin" zerlegt bekommen (kann nicht mehr nachvollziehen warum mir das gestern nicht gelang...) und habe nun eine scheinbar vollständige nametable.txt (identisch mit der von "tffs1-good.bin").
cat nametable.txt # the BAD one
510 @M
431 AutoMDIX
259 DMC
459 HardwareFeatures
256 HWRevision
260 HWSubRevision
257 ProductID
258 SerialNumber
425 annex
385 autoload
512 bb0
513 bb1
514 bb2
515 bb3
516 bb4
517 bb5
518 bb6
519 bb7
520 bb8
521 bb9
386 bootloaderVersion
387 bootserport
428 bluetooth_key
388 bluetooth
424 country
389 cpufrequency
417 crash
390 firstfreeaddress
430 firmware_info
422 firmware_version
391 flashsize
457 gpon_serial
441 jffs2_size
416 kernel_args
415 kernel_args1
423 language
408 linux_fs_start
392 maca
393 macb
394 macwlan
406 macwlan2
458 macwlan3
395 macdsl
396 memsize
397 modetty0
398 modetty1
452 modulemem
432 mtd0
433 mtd1
434 mtd2
435 mtd3
436 mtd4
437 mtd5
438 mtd6
439 mtd7
442 mtd8
443 mtd9
444 mtd10
445 mtd11
446 mtd12
447 mtd13
454 mtd14
455 mtd15
399 my_ipaddress
453 plc_dak_nmk
400 prompt
451 provider
426 ptest
401 reserved
402 req_fullrate_freq
403 sysfrequency
449 tr069_passphrase
448 tr069_serial
509 urlader-version
404 usb_board_mac
418 usb_device_id
420 usb_device_name
421 usb_manufacturer_name
419 usb_revision_id
405 usb_rndis_mac
450 webgui_pass
440 wlan_cal
427 wlan_key
456 wlan_ssid

Das sieht alles recht "normal" aus, oder? Aber wenn's halt aus ttfs1/2 stammt, wohl auch nicht verwunderlich, die scheinen ja "OK".

- NICHT funktioniert dies: "./eva_get_environment count 10.10.10.2 > count.txt"; das bringt die Box aus EVA heraus reproduzierbar zum crash.
TTL Console spuckt noch diesen Dump aus:
[22:13:13:888]
[22:13:13:888] (AVM) EVA Revision: 1.3243
[22:13:13:888] (C) Copyright 2005 AVM Date: Dec 13 2016 Time: 16:13:32 (0) 3 0x0-0x240D
[22:13:13:928]
[22:13:13:928] [FLASH:] MACRONIX Uniform-Flash 32MB 256 Bytes WriteBuffe
[22:13:13:928] [FLASH:](Eraseregion [0] 512 sectors a 64kB)
[22:13:13:928] [SYSTEM:] CortexA9
[22:13:16:171]
Data_Abort_Handler: instr.:E5F2C001 at 8801889C (MMU_Status: 1008)
[21:34:50:085]
[21:34:50:085] Registers:
[21:34:50:085] CPSR: nzCvIFtSVC
[21:34:50:085] A1: 00000000
[21:34:50:085] A2: 00000040
[21:34:50:085] A3: 001A07D3
[21:34:50:085] A4: 001A07D4
[21:34:50:085] V1: 88022238
[21:34:50:085] V2: 88073C10
[21:34:50:085] V3: 881795CC
[21:34:50:085] V4: 8802454B
[21:34:50:085] V5: 00000000
[21:34:50:085] V6: 88073C98
[21:34:50:085] V7: 00002409
[21:34:50:085] V8: 00000000
[21:34:50:085] IP: 00000004
[21:34:50:085] SP: 881795C0
[21:34:50:085] LR: 88018908
[21:34:50:085] PC: 880188A0
[21:34:50:085] User Stack (0x8817B244):
[21:34:50:085] 0x8817B244: 0x200000D3
[21:34:50:223] 0x8817B248: 0x00000000
[21:34:50:223] 0x8817B24C: 0x00000040
[21:34:50:223] 0x8817B250: 0x001A07D3
[21:34:50:223] 0x8817B254: 0x001A07D4
[21:34:50:223] 0x8817B258: 0x88022238
[21:34:50:223] 0x8817B25C: 0x88073C10
[21:34:50:223] 0x8817B260: 0x881795CC
[21:34:50:223] 0x8817B264: 0x8802454B
[21:34:50:223] 0x8817B268: 0x00000000
[21:34:50:223] 0x8817B26C: 0x88073C98
[21:34:50:223] 0x8817B270: 0x00002409
[21:34:50:223] 0x8817B274: 0x00000000
[21:34:50:223] 0x8817B278: 0x00000004
[21:34:50:223] 0x8817B27C: 0x881795C0
[21:34:50:223] 0x8817B280: 0x88018908
[21:34:50:223] 0x8817B284: 0x880188A0
[21:34:50:223] 0x8817B288: 0x00000000
[21:34:50:223] 0x8817B28C: 0x00000000
[21:34:50:223] 0x8817B290: 0x00000000
[21:34:50:223] 0x8817B294: 0x00000000
[21:34:50:356] 0x8817B298: 0x00000000
[21:34:50:356] 0x8817B29C: 0x00000000
[21:34:50:356] 0x8817B2A0: 0x00000000
[21:34:50:356] 0x8817B2A4: 0x00000000
[21:34:50:356] 0x8817B2A8: 0x00000000
[21:34:50:356] 0x8817B2AC: 0x00000000
[21:34:50:356] 0x8817B2B0: 0x00000000
[21:34:50:356] 0x8817B2B4: 0x00000000
[21:34:50:356] 0x8817B2B8: 0x00000000
[21:34:50:356] 0x8817B2BC: 0x00000000
[21:34:50:356] 0x8817B2C0: 0x00000000
[21:34:50:356] 0x8817B2C4: 0x00000000.
<break>

Die zugehörige eva_get_environment_session.log sieht so aus, eigentlich "normal" (denke ich mir...), nur die count.txt ist "0" byte groß => gibt es bei einer 4040 keine "Counter"?? Oder ist das der Punkt, wo das script in die urlader_config greift, und die ist halt "bääh!"?
220 ADAM2 FTP Server ready
USER adam2
331 Password required for adam2
PASS adam2
230 User adam2 successfully logged in
SYST
215 AVM EVA Version 1.3243 0x0 0x240D
TYPE I
200 Type set to BINARY
MEDIA SDRAM
200 Media set to MEDIA_SDRAM
[email protected]
227 Entering Passive Mode (10,10,10,2,12,0)
RETR count
150 Opening BINARY data connection
6 Transfer complete

schiet, so spät... n8.
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,014
Punkte für Reaktionen
981
Punkte
113
Das suche ich ja... glaube ich...
Die "Datei" (Anführungszeichen, weil es nur eine Pseudo-Datei ist) heißt bei anderen Modellen "CONFIG" - die Schreibweise (groß oder klein) variiert manchmal, aber ich würde mit der Großschreibung beginnen.

Üblicherweise ist das allerdings (bei anderen Modellen/Plattformen) ein Block ab Offset 0x580 im Bootloader (aus dem Kopf, ich will jetzt nicht nachsehen) - warum der bei dieser Plattform (4040/7520/7530) jetzt so weit hinten stehen soll, weiß ich nicht. Das ist bei AVM eigentlich auch eher ungewöhnlich, daß man solche "festen Werte" ändert - immerhin betrifft das dann auch das Recovery-Programm, falls darüber ein Update des Urladers gemacht werden soll. Dann wird nämlich zuerst über "RETR CONFIG" dieser Bereich ausgelesen und - zumindest bei dem, was ich bisher gesehen habe in dieser Richtung - in das Image des Loader-Codes "eingepaßt", bevor der dann als Ganzes geflasht wird. [ EDIT: Aber bei dem IPQ40x8/9 mit seinem SBL (was für mich ein "secured boot loader" wäre, wenn ich raten sollte) wird das sicherlich alles noch ganz anders ablaufen - nur habe ich bisher keine Ahnung, wie das genau aussieht. ]

In diesem Bereich stehen jedenfalls (wieder bei anderen Modellen und ich würde das erst mal prüfen bei der 4040) die "Geburtsdaten" der Box, mit denen auch der FDT im Bootloader zusammengebaut wird, inkl. des Environments, was an den Kernel übergeben wird. Bei anderen Modellen stehen da auch noch Daten für die DECT- und WLAN-Chips und bei Cable-Boxen sogar noch weitere Daten.

Die Sache mit den Zählern für die bereits absolvierten Betriebsstunden muß man auch nicht so eng sehen ... das ist eher "old school" und es ist gut möglich, daß manche Modelle gar nicht mehr wirklich diese Zähler fortführen. Wenn sie vorhanden sind, werden sie üblicherweise von "/bin/run_clock" direkt ins TFFS geschrieben - ein "run_clock -i" löscht die Zähler sogar wieder, daher sind die auch nicht wirklich als "echter Tacho-Stand" zu interpretieren.

Den Rest der Protokolle habe ich mir nicht angesehen, weil ich schon in #1 nichts mehr verstanden habe von dem, was Du da machst bzw. machen willst. Ich würde hier erst mal mit "der guten Box" ermitteln, wo der Konfigurationsbereich im Urlader jetzt wirklich steht. Denn mit den "trust zones" und deren offensichtlich notwendigen Updates nach der Aktualisierung von Firmware, stellt diese Plattform schon etwas "Besonderes" dar in der Modellpalette von AVM und ich würde jede Erkenntnis von anderen Plattformen erst noch einmal gründlich verifizieren, bevor ich sie ohne weiteres auf diese übertrage.

Aus dem Problem in der S45-openwrt, wo ja offenbar die Firmware für den Atheros-WiSoC geladen wird, würde ich vielleicht sogar darauf tippen, daß da bei Dir irgendein solches "trust zone update" (die 4040 hat wohl zwei dieser "zones" und ich kann nur spekulieren, wofür sie genau gut sind - die Infos im "product brief" für die IPQ40x8/IPQ40x9 sind da auch nicht wirklich hilfreich: https://www.qualcomm.com/media/documents/files/ipq40x8-ipq40x9-product-brief.pdf) fehlt. Aber das ist auch nur Spekulation meinerseits ... ich hatte noch keine IPQ40x8/9-basierte FRITZ!Box in der Hand oder unter dem Messer. Das sind halt immer noch Exoten bei AVM und der Löwenanteil der (DSL-)Boxen (von AVM) arbeitet mit MIPS-Architektur. Diese "Trust Zones" sind hingegen ein Merkmal der ARM-Architektur (https://developer.arm.com/ip-products/security-ip/trustzone).
 
Zuletzt bearbeitet:

elfri

Neuer User
Mitglied seit
9 Mai 2010
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
Hallo Peter, vielen Dank für deine Antwort und die wie immer ergänzenden Hintergründe. Man kann alles lesen was du in den diversen Threads an Wissen teilst (krass!) aber sich nicht merken...too low on memory up in here :)

Was ich erreichen will? Na, "bad" bootet nicht mal mehr in EVA. Alter Thread, alte Geschichte. Also Plan: Klaue SPI Inhalt von "good" und "impfe" da die "Seele" von "Bad" rein. Die "Seele" ist das ENV und das CONFIG (wie ich von dir lernen durfte). ENV habe ich scheinbar oder könnte es bauen, denn tffs1/2 von "bad" habe ich ja. Also fehlt vielleicht nur noch CONFIG, was im BL steckt... und das holen wir uns jetzt nochmal nach "deinem Weg" und nicht wie von den openWRT-Jungs&Mädels per offset angegeben.

Okay, also "me against the GOOD one" für heute mal.

./eva_get_environment config 10.10.10.2 > config.bin

und siehe da, gibt einen hübschen Haufen, 4407 Byte um genau zu sein.

Diese 4407 Bytes sind im "urlader_good.bin" (was der erste Teil des gesamten Flash-Images der "Good" Box ist) bei Byte
1170432 (0x11DC00) bis 1174834 (0x11ED36).
Die Kollegen von openWRT sagen, der "relevante Teil" des Urladers startet bei (Trommelwirbel): 0x11DC00. Deren devicetree entry und "RETR config" sind sich also einig.
Bei der Länge sagen sie, man solle den Teil bis $((0x11DC00+0x00002400)) = 1179648 sichern. Okay, das ist etwas länger als das, was die Box zurückliefert. Im ROM kommen nach dem 0x11ED36 wo die Box aufhört zu liefern in meinem "good rom" bis zur 0x11FFFF (= 0x12000-1) auch nur noch "FF"
=> Fazit: Was ich durch "Schneiden aus dem BAD-Dump" von Adresse 0x11DC00 bis 0x11FFFF gewonnen habe ist das, was "RETR config" auch lieferte.

Im "Klartext" kann ich in diesen "Dumps" wie gesagt zuerst die ganzen MAC-Adressen, Passwörter etc erkennen. Danach kommt ab 0x11E000 nur noch "Ascii-Salat" - womit decodiere ich das (falls da was lesbares zu erwarten wäre!?). Und dann halt ab 0x11ED36 nur noch FF.

Bei der "BAD" box war der "Salat" etwas länger (oder kürzer?) muss ich nochmal abgleichen. Aber die MAC, Passwords etc waren genauso lesbar.

Deine "0x580" wäre 1408. Da sind bei mir erstmal massenweise Nullen bis bei 1000h mal was anderes kommt.

So, morgen versuche ich mal den gleichen Weg mit dem "zusammengeklebten" ROM von der "BAD" box. EVA geht da ja. Mal sehen, ob sie selbst mir diese Inhalte irgendwie anders zurückliefert per "RETR config" als ich es durch "schnippeln" bekommen habe. Ich schneide, die Box "liest" vielleicht und macht dabei noch was mit den Daten - oder legt einen "crash" hin, weil sie diese Daten nicht mag.

Erstmal Küchendienst und Bett :)
 

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
13,014
Punkte für Reaktionen
981
Punkte
113
Dann liegt bei diesen Modellen der Bereich wohl doch an einer anderen Stelle im Bootloader - wenn die Daten halbwegs identisch sind, dann haben die OpenWRT-Leute offenbar recht.

Ich weiß halt nicht, ob der Inhalt der SBL-Partition (meine "Interpretation" des Namens habe ich ja schon weiter oben aufgeschrieben) nicht am Ende doch irgendwie verschlüsselt wird - ich gehe mal davon aus, daß auch bei diesem SoC der Code an Adresse 0 des Flashs gestartet wird und damit zuerst der SBL funktionieren muß, bevor danach dann EVA aus der "urlader"-Partition gestartet werden kann.

Wenn die SBL-Partition genau deshalb verschlüsselt oder signiert wird, damit da nicht einfach jemand den Flash manipulieren kann, wird Dein Vorhaben vermutlich nicht funktionieren. Aber ich weiß zu wenig über diesen SBL - auch aus dem "tz_update" von AVM kann man da nicht wirklich etwas ableiten durch bloßes "Ansehen" des Binary-Files. Da braucht's dann eher einen Debugger (und natürlich eine funktionierende Box).

Ich rate einfach mal, daß das AVM-Programm in der "insecure"-Zone läuft und den zu signierenden/verschlüsselnden SBL-Code (oder sogar EVA, also den "urlader") vom OS in der "secure"-Zone behandeln läßt (wo dann auch private Keys aus dem Prozessor verfügbar sein werden), bevor er (bei Verschlüsselung) oder nachdem er (bei Signatur) in die entsprechende Flash-Partition verbracht wird. Andererseits scheint das "tz_update" auch erst beim nächsten Start, nachdem das neue OS (bei der 7520/7530 zumindest) in den NAND-Flash geschrieben wurde - bei der 4040 wird er vermutlich gleich beim ersten Start mit dem "tz_update" loslegen - tatsächlich irgendetwas zu bewegen ... nur ist das alles im reinen "Trockentest" eher schwer zu interpretieren, was da abläuft bzw. ablaufen soll.
 

elfri

Neuer User
Mitglied seit
9 Mai 2010
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
Kurzes (naja) update:
Das mit dem insecure und SBL etc ist glaube ich eher nicht das Thema, denn SIE BOOTET manchmal, sowohl FritzOS als auch (scheinbar öfter) openWRT. Bin mittlerweile eher bei einem Hardware-Problem. Bin damit jetzt mal zu den "Elektronikern" gegangen: forum.electronicwerkstatt.de bzw. "aktiver und momentan "führend": mikrocontroller.net

Hier nur mal die "Zusammenfassung", Behandlung eher in dem 2. Thread oben bei mc.net

Zunächst hatte ich irgendwann mal das komplette, originale "GOOD"-Image auf die "BAD"-Box geflashed. Erstmal passierte nichts besonderes...und dann auf einmal bei dem Zig-ten rumgemesse und geschaue bootete sie plötzlich KOMPLETT das "GOOD"-Image. Während sie dann so ein paar Minuten im terminal prompt stand und ich via TTL ein paar "ls" und "cd" machte und mir nebenbei was notierte - zack, reset von Geisterhand. Dann kam sie wieder nicht deutlich über EVA hinaus...ein paar Versuche später bootete sie nochmal "durch".

Da fing ich dann an mich zu wundern...und merkte, dass die DC-DC-Wandler-Gruppe 12V > 1.3xV bei "BAD" mit ~50C rund 20C wärmer als bei "GOOD". Die 1.37V sind bei "GOOD" ziemlich stabil, bei "BAD" sinken sie früher oder später teils auf 1.25V ab oder "Peaken" auch mal Richtung 1.47. Zeitlich dem Boot-Prozess nicht genau zuzuordnen. Mein MM ist zu träge und ein Oszi hab' ich nicht.

Die "BAD" Box zieht rd. doppelt so viele mA ("dauernd ~330mA; Peaks bis 450mA) aus dem Netzteil wie die "GOOD" (150mA "Grundlast", seltene Peaks auf 270mA)

Momentan habe ich zum Testen der Boots ein openWRT auf der BAD, das bootet ungefähr im jeweils 3. Anlauf (mal nur nach self-resets, mal nur indem ich dann den Stecker nochmal ziehe) "durch". Mit FritzOS ("GOOD"-Image") hab' ich's erstmal nicht weiter versucht, das Thema des "Merged ROM" dieses Threads hier gehe ich dann wieder weiter an wenn (falls) ich das Hardware-Thema eingegrenzt / behoben bekomme.

Falls noch einer einen Einwurf zur Hardware-Diagnose hat - sehr gern!
 

elfri

Neuer User
Mitglied seit
9 Mai 2010
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
SO, ich geb's auf. Die ist bestenfalls noch ein Teilespender, nicht stabil zu bekommen mit meinen Mitteln.
Aber das Image-Bauen hätte vermutlich sogar funktioniert mit der "schnipsel-zusammenklebe-Technik". Vermutlich... beweisen kann ich's wohl nicht mehr.
Danke für die Beiträge!