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


von Markus W. (dl8mby)


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
von Markus W. (dl8mby)


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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.