Backup von RT3S Firmware vor dem Flashen von OpenGD77 - via Linux Tools

OP #8053293
Lesenswert?

Hallo Forum,

bin mir nicht ganz sicher, wo ich meinen Beitrag platzieren soll, da dieses Thema ziemlich speziell ist, deshalb unter Offtopic.

Nun zu meinem Problem.

Von einem RT3S Handfunkgerät möchte ich ein Firmware Backup unter Linux erstellen.

Z.Z. verwende ich das Tool dfu-utils, bevor ich z.B. OpenGD77 oder openTRX als neue FW auf das Gerät drauf spiele.

Das Gerät wird am Computer erkannt und dfu-util --list liefert den folgenden Output:

1
Found, DFU: [0483:df11] ver=0200, devnum=91, cfg=1, intf=0, path="1-3", alt=1, name="@SPI Flash Memory /0x00000000/16*064Kg", serial="00000000010C"
2
Found DFU: [0483:df11] ver=0200, devnum=91, cfg=1, intf=0, path="1-3", alt=0, name="@Internal Flash   /0x0800C000/01*016Kg,01*064Kg,07*128Kg", serial="00000000010C"

Mein Versuch die beiden Speicher SPI und FLASH zu lesen und in eine Datei zu schreiben sieht eigentlich ok aus, wenn man dem Output von dfu-util glauben darf.

1
dfu-util --alt=0 --upload-size 999424 --dfuse-address 0x0800C000:999424 --upload ./test0.bin
2

3

4
dfu-util 0.11
5

6
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
7
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
8
This program is Free Software and has ABSOLUTELY NO WARRANTY
9
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
10

11
Opening DFU capable USB device...
12
Device ID 0483:df11
13
Device DFU version 011a
14
Claiming USB DFU Interface...
15
Setting Alternate Interface #0 ...
16
Determining device status...
17
DFU state(2) = dfuIDLE, status(0) = No error condition is present
18
DFU mode device DFU version 011a
19
Device returned transfer size 1024
20
DfuSe interface name: "Internal Flash   "
21
Upload  [=========================] 100%       999424 bytes
22
Upload done.
23

24

25

26
dfu-util --alt=1 --upload-size 1048576 --dfuse-address 0x00000000:1048576 --upload ./test1.bin
27

28
dfu-util 0.11
29

30
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
31
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
32
This program is Free Software and has ABSOLUTELY NO WARRANTY
33
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
34

35
Opening DFU capable USB device...
36
Device ID 0483:df11
37
Device DFU version 011a
38
Claiming USB DFU Interface...
39
Setting Alternate Interface #1 ...
40
Determining device status...
41
DFU state(2) = dfuIDLE, status(0) = No error condition is present
42
DFU mode device DFU version 011a
43
Device returned transfer size 1024
44
DfuSe interface name: "SPI Flash Memory "
45
Upload  [=========================] 100%      1048576 bytes
46
Upload done.
47

48

49

50
ls -l *./test?.bin
51
-rw-r--r--. 1 root root  999424 21. Mai 14:01 test0.bin
52
-rw-r--r--. 1 root root 1048576 21. Mai 14:01 test1.bin

Der Inhalt der erzeugten Dateien lässt mich aber daran zweifeln, dass ich wirklich die FW heruntergeladen habe.

1
od -c ./test0.bin | head -3 ; od -c ./test0.bin | tail -3
2
0000000   0  \t  \0     005   Q  \0  \b   )   O  \0  \b   +   O  \0  \b
3
0000020   -   O  \0  \b   /   O  \0  \b   1   O  \0  \b  \0  \0  \0  \0
4
0000040  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0   3   O  \0  \b
5
...
6
3637740 357 341 337 370   T 032  \t   x 242   ) 017 321 337 370   < 032
7
3637760  \t   h 002   )  \n 321 002     337 370   @ 032  \b   p 337 370
8
3640000
9

10
strings ./test0.bin | head -3 ; strings ./test0.bin | tail -3
11
        x!),
12
        xA)7
13
        x!),
14
...
15
        xA)7
16
        x!),
17
        xA)7
18

19

20
od -c ./test1.bin | head -3 ; od -c ./test1.bin | tail -3
21
0000000   0  \t  \0     005   Q  \0  \b   )   O  \0  \b   +   O  \0  \b
22
0000020   -   O  \0  \b   /   O  \0  \b   1   O  \0  \b  \0  \0  \0  \0
23
0000040  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0   3   O  \0  \b
24
...
25
3777740 357 341 337 370   T 032  \t   x 242   ) 017 321 337 370   < 032
26
3777760  \t   h 002   )  \n 321 002     337 370   @ 032  \b   p 337 370
27
4000000
28

29
strings ./test1.bin | head -3 ; strings ./test1.bin | tail -3
30
        x!),
31
        xA)7
32
        x!),
33
...
34
        xA)7
35
        x!),
36
        xA)7

Beide Files haben den selben Inhalt, der sich immer wiederholt, weshalb ich glaube, dass bei meinem FW-Backup noch was schief läuft.

Ich weiß, das Thema ist ziemlich speziell, aber vielleicht weiß ja jemand von Euch trotzdem was dazu.

Ich habe leider keine Windows-Rechner zur Hand, um es mit der CPS Software von Retevis zu bewerkstelligen.

Während ich den Beitrag schrieb, kam mir die Idee die KI dazu zu fragen. Bin gespannt, was die so liefert.

Danke schon mal für sachdienliche Hinweise.

LG+schöne Pfingsten

Markus

OP #8053307
Lesenswert?

Nicht unbedingt durch die Hilfe von Grok aber durch seine Antworten, die zwar nicht zielführend waren, aber mich irgendwie motiviert haben mit den USB Transfer Parametern von dfu-util zu spielen, ist es mir gelungen zumindest den internen Flash auszulesen.

1
dfu-util -d 0483:df11 --alt 0 --dfuse-address 0x0800C000:999424 -U backup_internal.bin --transfer-size 512
2

3

4
file backup_internal.bin 
5
backup_internal.bin: ARM Cortex-M firmware, initial SP at 0x20000930, reset at 0x08005104, NMI at 0x08004f28, HardFault at 0x08004f2a, SVCall at 0x08004f32, PendSV at 0x08002e3a

Wo es noch hapert ist beim Auslesen vom SPI-Flash. Hat jemand eine Idee, wie es gehen könnte.

Die Angaben verschiedener USB-Transfer-Größen von 16 bis 1024 Byte in Zweierpotenzen brachte leider keinen Erfolg.

: Bearbeitet durch User

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren