Forum: Mikrocontroller und Digitale Elektronik Fantec Mediaplayer 3DS4600 zeigt nur noch Startbildschirm


von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

Ich habe meinem Sohn einen gebrauchten Fantec 3DS4600 Mediaplayer 
geschenkt. Er steht total auf Retro-Zeugs und will den nutzen um alte, 
digitalisierte VHS-Kassetten über einen Röhrenfernseher anzuschauen.

Leider zeigt das Teil, obwohl es pfuschneu daher kam, beim Anschluß der 
Betriebsspannung nur das "Fantec" Logo auf dem Fernseher (FBAS wie HDMI 
out).

Nach einigem Rätselraten habe ich dann mal im Netz gesucht und es gibt 
hier und da einen Hinweis das dies wohl ein bekanntes Problem sei. Ggf. 
muss man nur die Firmware neu aufspielen, evtl. ist aber auch der 
interne Flash-Speicher kaputt.

Habe das Teil dann gleich mal geöffnet um nachzusehen ob da schonmal 
jemand dran war, sieht aber nicht so aus. Dann habe ich den Kühlkörper 
der CPU entlötet, so kommt man an den Flash-Speicher ran. Würde mal 
versuchen dafür Ersatz zu finden, ist ein Hynix H27UBG8T2BTR-BC (32 GBIT 
NAND). Leider schwer zu bekommen, möglicherweise gibt es aber 
kompatiblen Ersatz dafür?

Ich hätte einen Flash-Reader, aber eleganter wäre es wohl per JTAG o.ä. 
drauf zuzugreifen. Auf dem Board sehe ich aber keine der üblichen 
Schnittstellen, nur eine unbestückte SPI (vermutlich).

Auch finde ich auf der www.fantec.de nicht mal mehr das Produkt im 
Archiv, geschweige denn eine Firmware zum Download dafür.

Vielleicht habe ich ja Glück und es gibt hier im Forum jemand der sowas 
zur Hand hat?

Möglicherweise liegt das Problem aber auch noch woanders. Da ist ja auch 
noch ein EEPROM drauf...

Bin für jeden Tipp dankbar der mir hilft das Teil wieder an laufen zu 
bekommen! :-)

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

So, die aktuellste Firmware konnte ich dank eines hilfsbereiten Menschen 
auf ebay-kleinanzeigen inzwischen herunterladen. Fantec hat die selbst 
nicht mehr und ihn auf einen Downloadlink auf einem Mediafire Server 
verwiesen. Das Archiv ist 550MB groß, die Firmware selbst darin 
("install.img") jedoch nur 200MB. Das IMG-File ist innen drin ein TAR 
(genau gesagt ein USTAR Format) und lässt sich z.B. mit 7zip problemlos 
auspacken.
In dem Archiv ist auch der Quellcode der genutzten OpenSource 
Komponenten enthalten, ebenfalls als USTAR.

Laut Anleitung legt man das install.img auf einen USB-Stick, steckt 
diesen ins Gerät, drückt den Einschaltknopf und hält diesen 10 Sekunden 
gedrückt damit das Update automatisch startet. In Wahrheit muss man das 
Gerät erst einschalten, also einmal drücken und loslassen, dann einfach 
warten und das Update startet von ganz allein. Danach macht der Fantec 
kurz einen Reboot und man sollte den Stick dann wieder rausziehen, sonst 
beginnt das ganze Spiel von vorn.

Leider ändert es nichts an dem Problem. Das Gerät bootet nicht 
vollständig, bleibt im Fantec-Logo einfach stehen.

Ich würde mal vermuten das wenn der Flash defekt wäre, das Update sich 
nicht einspielen ließe, denn der Updater wird wohl hoffentlich eine 
Prüfung enthalten.

Daher wäre meine Vermutung nun das es eine Startverhinderung gibt. Mal 
schauen ob man durch den Inhalt von install.img oder dem Quelltext TAR 
heraus bekommen kann was dem fehlt oder wie man z.B. einen Debug-Port 
öffnet um mitlesen zu können was dem fehlt...

Für alle die mitknobeln können und wollen, hier habe ich das Zip mal 
über mein Wiki bereitgestellt: 
https://e-wiki.denkdose.de/_media/fantec_3ds4600/fantec_3ds4600_firmware_20140526-v10.1.11_r11498.zip

: Bearbeitet durch User
von Thomas S. (gdrguy69)


Lesenswert?

Olli Z. schrieb:
> oder wie man z.B. einen Debug-Port
> öffnet um mitlesen zu können was dem fehlt...
>

Über dem SATA-Port ist doch der UART-Header. Darüber lässt sich doch 
bestimmt was während des Bootens herauslesen.

Thomas

von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

Genau die Spur hatte ich auch verfolgt und ja, da kommt die Console! :-)

Und das hier sind wohl die letzten Worte:
1
...
2
Welcome to Realtek Rescue Linux for PhotoViewer
3
/etc/init.d/rcS: line 49: cannot create /sys/bus/usb/devices/usb1/bEnableHubOnBoard_woone: nonexistent directory
4
mount: mounting /dev/cdroms/cdrom0 on /mnt/usbmounts/cdrom failed: No such device
5
mount: mounting /dev/hda1 on /mnt/usbmounts/hda1 failed: No such file or directory
6
mount: mounting /dev/hda1 on /mnt/usbmounts/hda1 failed: No such file or directory
7
mount: mounting /dev/hda1 on /mnt/usbmounts/hda1 failed: No such device
8
Please press Enter to activate this console. #@#[cfyeh-debug] check_boot_code_size(1085) nand_boot_size 0x3200000
9
#@#[cfyeh-debug] check_boot_code_size(1091) factory_size 0x400000
10
>>>>>> loader start! (Dec  4 2013:13:08:04, version=00.01.01)
11
#@#[cfyeh-debug] check_boot_code_size(1085) nand_boot_size 0x3200000
12
#@#[cfyeh-debug] check_boot_code_size(1091) factory_size 0x400000
13
get_mtd_block_name(/dev/mtdblock0)
14
[JH] checksignatue(), open(/dev/mtdblock0) nand_boot_size(0x3200000) factory_size(0x400000)
15
fail 4, sig(VERO)
16
no IMG_XXXX signature found
17
BUS_TYPE = (null)
18
Hotplug: device "ram2" is skipped.
19
BUS_TYPE = (null)
20
Hotplug: device "ram1" is skipped.
21
BUS_TYPE = (null)
22
Hotplug: device "ram3" is skipped.
23
BUS_TYPE = (null)
24
Hotplug: device "ram4" is skipped.
25
BUS_TYPE = (null)
26
Hotplug: device "ram5" is skipped.
27
BUS_TYPE = (null)
28
Hotplug: device "ram6" is skipped.
29
BUS_TYPE = (null)
30
Hotplug: device "ram7" is skipped.
31
BUS_TYPE = (null)
32
Hotplug: device "ram8" is skipped.
33
BUS_TYPE = (null)
34
Hotplug: device "ram0" is skipped.
35
BUS_TYPE = (null)
36
Hotplug: device "ram10" is skipped.
37
BUS_TYPE = (null)
38
Hotplug: device "ram9" is skipped.
39
BUS_TYPE = (null)
40
Hotplug: device "ram12" is skipped.
41
BUS_TYPE = (null)
42
Hotplug: device "ram13" is skipped.
43
BUS_TYPE = (null)
44
Hotplug: device "ram14" is skipped.
45
BUS_TYPE = (null)
46
Hotplug: device "ram15" is skipped.
47
BUS_TYPE = (null)
48
Hotplug: device "loop0" is skipped.
49
BUS_TYPE = (null)
50
Hotplug: device "ram11" is skipped.
51
BUS_TYPE = (null)
52
Hotplug: device "loop1" is skipped.
53
BUS_TYPE = (null)
54
Hotplug: device "loop2" is skipped.
55
BUS_TYPE = (null)
56
Hotplug: device "loop5" is skipped.
57
BUS_TYPE = (null)
58
Hotplug: device "loop4" is skipped.
59
BUS_TYPE = (null)
60
Hotplug: device "loop6" is skipped.
61
BUS_TYPE = (null)
62
Hotplug: device "loop7" is skipped.
63
BUS_TYPE = (null)
64
Hotplug: device "mtdblock0" is skipped.
65
BUS_TYPE = (null)
66
Hotplug: device "mtdblock1" is skipped.
67
BUS_TYPE = (null)
68
Hotplug: device "loop3" is skipped.

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Ah, ich hatte nicht genau genug gelesen und einige Zeilen sind durch 
falsch interpretierte Newlines nicht umbrochen worden  (der Anfang 
arbeitet mit Linux-Returns, also nur \n und später wird auf 
Windows-Returns \r\n umgeschaltet)
1
REALTEK ROM Monitor, Revision ICIE.0402.1067.
2
Copyright (c) Realtek Semiconductor Corp. - All Rights Reserved.
3
For a list of available commands, type 'help'.
4
Compilation time /version=      Feb 19 2014  10:14:08  /ICIE.0402.1067
5
MAC address =                   00.11.22.33.44.55
6
Processor Company ID/options =  0x01 (MIPS Technologies, Inc.) / 0x00
7
Processor ID/revision =         0x93 / 0x85
8
Endianness =                    Little
9
Flash memory size =             4 GByte
10
SDRAM size =                    512 MByte
11
First free SDRAM address =      0x800c4000
12
Press 'ESC' to Monitor mode____________________
13
14
Set ethernet register: 00000044

Hier folgt dann das eigentliche Problem und dann entscheidet sich das 
System das Rettungssystem zu starten:
1
NAND Signature(LÙ¬røôH) error! Entering rescue linux...
2
...

Der Rest danach ist also garnicht mehr interessant. Es ist die falsche 
Signatur vom Flash Chip. Also könnte der doch ne Macke haben. Ich werde 
den mal auslöten und schauen ob ich ihn mit meinem Flash-Programmer 
lesen kann. Die Frage wäre welche Signatur hier erwartet würde? Eine vom 
Hersteller irgendwo hinterlegte?

In der Datei /package5/bootloader/boot_target.bin (Inhalt von 
"install.img" findet sich dieser String und direkt davor ein String 
"VERONA__". Ich glaube das ist die Signatur die hier gesucht wird.

: Bearbeitet durch User
von Michael U. (amiga)


Lesenswert?

Hallo,

mein 3DS4600 fing nach Jahren letztens auch an zu spinnen, bpptete nur 
selten, stürzte ab.
Ich hatte dann bei ebay eine gebrauchten gefunden, der lief.
Der hatte aber die letzte Firmwareversion, die kein DivX mehr konnte.
Also umflashen...
Wichtig: möglichst einen kleinen USB-Stick auftreiben, hier liegt dafür 
ein alter 256MB-Stick rum, FAT32 formatiert.
install.img auf den Stick kopieren.
Stick in die USB2.0 Buchse hinten (die untere).
Das Starten des Flashmodes per Einschalttaster klappt oft erst nach 
mehreren Versuchen, evtl. auch mal die anderen USB-Ports versuchen.
Ich habe dann auch nach etlichen versuchen meinen zickenden 3DS4600 
nochmal neu geflasht, der ist seitdem wieder in Benutzung und läuft. 
Vermutlich ist der Flash hier nicht defekt, nur vergeßlich...
Firmware habe ich die
v10.1.11_r10846 - hier in Benutzung
v10.1.11_r11334
v10.1.11_r11498
noch verfügbar.

Gruß aus Berlin
Michael

von Olli Z. (z80freak)


Angehängte Dateien:

Lesenswert?

Danke für die Infos und Hilfe Michael!

Das Update führt mein Mediaplayer ja klaglos durch, der 
Fortschrittsanzeiger kommt und am Ende macht er einen Reset. Wenn ich 
den Stick dann aber nicht rausziehe fängt er wieder von vorn an. Will 
sagen, er braucht keinen speziellen Tastendruck oder sowas, einfach 
Stick mit der Firmware (nur der install.img drauf) rein, Gerät vorn oder 
über die Fernbedienung einschalten und los gehts.

In dem Konsolenfenster sieht man dann auch die gesamte Updateprozedur 
durchlaufen. Ich hänge mal den kompletten Output davon hier an.

Ich bin gerade noch dabei das ganze zu sortieren. Durch den Zugang zur 
Konsole habe ich einen großen Schritt gemacht um mit zu bekommen was da 
im Hintergrund so passiert. Auch das auspacken des "install.img" in 
seine Bestandteile hilft sicher beim Verständnis.

Das Board selbst ist keine Eigenentwicklung von Fantec sondern ein 
"Realtek RT-1186G15". Das beinhaltet eine MIPS-CPU, 512 MB SDRAM, 4 GB 
NAND Flash und div. Peripheriebausteine für das IO:
- 1x IR-Empfänger
- 2x LED (rot und blau)
- 1x Taster
- 3x USB Port (2x USB 2.0 und 1x USB 3.0)
- 1x Composite-Out und Audio-Out
- 1x HDMI-Out
- 1x LAN (1GBit)
- 1x Optical-Out
- 1x sATA (eSATA)
- 1x UART (für Konsole)

Es sind noch zahlreiche Stellen unbestückt, also gibt es dieses Board 
auch noch in einer besseren Ausführung und vermutlich wird es so auch in 
zahlreichen anderen Geräten als HW-Plattform eingesetzt.

So wie ich das bislang erkennen kann sind auf dem Flash mehrere 
startbare Partitionen hinterlegt:

1. Bootloader
2. Media-Player OS
3. Rescue-Linux

Der Anfang beim Start nach "hello.world" ist etwas "matsche", warum ist 
mir noch nicht ganz klar, evtl. steht hier die Baudrate noch nicht fest?
1
?hello.world
2
efghhhhhhhhhhhhhhhhhhhhhhhihhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhjk
3
 Jump!

Danach sieht man auch einige Fehler, keine Ahnung ob die bei einem 
laufenden Gerät auch so kämen:
1
Orginal init value: 202072BE
2
cde
3
profile->manufacturer_id (first 4B):DA94D7AD
4
profile->data_per_page:2000
5
profile->page_per_block:100
6
7
blk 79 starts from page 700
8
read page 728 error
9
Tparam now: 20267CC4
10
X
11
Tparam now: 001D6BB6
12
Y
13
14
restored
Was kann dieser "read page 728 error" wohl sein?
Und ist das darunter ein Default-Wert oder Reparaturversuch?

Dann kommt wieder kurz Matsche und der Hinweis auf den NAND-Chip:
1
klmnopqrstu5280 wait5280 wait4K&Detect H27UBG8T2B and enable read-retrial mode...
2
Enable Read-retrial mode...
Ein "Retail mode" ist doch sowas wie ein Demo-Modus für den Verkauf? 
Warum meint mein Gerät einen solchen aufrufen zu wollen?

Dann lädt er Umgebungsparameter aus dem Flash:
1
load bbt...load env to (addr 0xa0010000, size 64KB)...
2
page_start=0xf00 page_end=0x1900
Mit "bbt" ist hier wohl der Flash gemeint. Die Flash Addresse 0xA001 
0000
 und Länge 0xFFFF übersetzt dann ein Tool wohl in eine Flash-Page 0xF00 
- 0x1900. Rechnerisch passt das für mich noch garnicht zusammen (0xA00 
pages = 2560 Pages. Das wären massiv viel mehr als er bräuchte für 
64KB).

In jedem Fall ist er unzufrieden mit dem was er dort findet, geht aber 
nicht näher drauf ein:
1
get ENV fail!!

Dann spielt er Ping-Pong? ;-) Muckiert sich aber wieder das er ein 
TAR-End nicht findet:
1
load factory to (addr 0x80100000)...
2
load bbt...ping_no =0xff
3
pong_no =0xff
4
there is no data in ping ,pong buffer
5
current_factory_start=0x1900
6
current_factory_start + 0x400=0x1d00
7
tar end,not found
8
tar end,not found

Trotzdem scheint er einige Grundeinstellungen einzunehmen:
1
default_tv_system=
2
new default_tv_system=PAL
3
EPHY: 8211E
4
check_val=0x0
5
[HDMI]: Set I2C Speed = 50 kHz
6
[HDMI]: Chk_HotPlug() TV is not connected.
7
[HDMI]: Read_EDID abort, HDMI cable plug off.
8
[HDMI]: TV is not connected.
9
2nd for PAL
10
PAL logo

So und nun wirds interessant, denn jetzt startet der eigentliche 
Bootloader:
1
REALTEK ROM Monitor, Revision ICIE.0402.1067.
2
Copyright (c) Realtek Semiconductor Corp. - All Rights Reserved.
3
4
For a list of available commands, type 'help'.
5
6
Compilation time /version=      Feb 19 2014  10:14:08  /ICIE.0402.1067
7
MAC address =                   00.11.22.33.44.55
8
Processor Company ID/options =  0x01 (MIPS Technologies, Inc.) / 0x00
9
Processor ID/revision =         0x93 / 0x85
10
Endianness =                    Little
11
Flash memory size =             4 GByte
12
SDRAM size =                    512 MByte
13
First free SDRAM address =      0x800c4000
14
15
Press 'ESC' to Monitor mode
Hier würde ich ja gern mal "ESC" drücken wollen... oder "help" eingeben 
was der so kann.

Dann folgt erstmal kurz sowas, was man ggf. als Wartezeichen 
interpretieren könnte
1
____________________

Dann versucht er wohl das Default-Image zu laden und zu starten und 
stellt fest das an der angegebenen Position im Flash nicht die richtige 
Signatur liegt und startet stattdessen das "rescue linux":
1
Set ethernet register: 00000044
2
▒r▒▒H) error! Entering rescue linux...

Wartet man den Resuce start ab und gibt in der Konsole mal einfach ein 
ENTER, dann sieht man das man in einer Busybox Shell gelandet ist!
1
BusyBox v1.11.2 (2013-12-04 13:06:47 CST) built-in shell (ash)
2
Enter 'help' for a list of built-in commands.
3
4
/ #

Hier könnte man nun versuchen auf das Flash zuzugreifen um z.B. die 
fehlende Signatur nach zu programmieren. In einigen Skripten wird das 
ganz einfach mit "dd" und dem Device /dev/mtdblock0 gemacht. Ich würde 
erstmal versuchen das gesamte Flash auf einen USB-Stick zu kopieren um 
für den Notfall ein Backup zu haben.
Dann müsste ich wissen wo genau (offset,länge) das Magic gesucht wird? 
Ich glaube das es "VERONA__" ist und 8 Zeichen lang.

: Bearbeitet durch User
von DerEinzigeBernd (Gast)


Lesenswert?

Olli Z. schrieb:
> Dann kommt wieder kurz Matsche und der Hinweis auf den
> NAND-Chip:klmnopqrstu5280 wait5280 wait4K&Detect H27UBG8T2B and enable
> read-retrial mode...
> Enable Read-retrial mode...
> Ein "Retail mode" ist doch sowas wie ein Demo-Modus für den Verkauf?
> Warum meint mein Gerät einen solchen aufrufen zu wollen?

Da steht retrial, nicht "retail".

Retrial ist ein erneuter Versuch, hier wohl ein erneuter Versuch, das 
Flash-ROM zu lesen.

Mir sieht das so aus, als ob auch das Firmwareupdate fehlschlägt.

von Olli Z. (z80freak)


Lesenswert?

DerEinzigeBernd schrieb:
> Mir sieht das so aus, als ob auch das Firmwareupdate fehlschlägt.
Wo im log?

von Olli Z. (z80freak)


Lesenswert?

Am Anfang sieht das ja noch alles ok aus, er lädt den NAND-Treiber:
1
BGA PackageRealtek NAND Flash Driver Rev:337905 (2010-10-18)
2
(X)Enable interrupt mechanism of NAND driver.
1
Get parameter from register...
2
[rtk_nand_init]Bootcode size 0x3200000
3
[rtk_nand_init]Factory parameter size 0x400000
4
[rtk_nand_init]Disable NFCP...
5
nand_base_rtk version:0824-2011
6
(X)NAND_POWEROFF_CARDREADER_WITH_MULTI_READ
7
(X)NAND_READ_SKIP_UPDATE_BBT
1
Detect H27UBG8T2B and enable read-retrial mode...
2
Enable Read-retrial mode...
3
Enable Randomized mechanism
Das sieht doch aus als wäre dieser "read-retrial mode" eine bewusste 
Einstellung, vermutlich damit bei einem Lesefehler nochmal probiert 
wird?

Hier sieht es mir so aus als würde der Treiber versuchen einen 
bestimmten Chip (mit der ID 0xadd794da) zu finden, was wohl auch 
gelingt:
1
READ ID:0xad 0xd7 0x94 0xda 0x74 0xc3
2
One H27UBG8T2B chip has 1 die(s) on board
3
nand part=H27UBG8T2B, id=add794da, device_size=4294967296, chip_size=4294967296, num_chips=1, page_size=8192, isLastPage=1, eccBits=24
4
[rtk_nand_scan_bbt] have created bbt B1, just loads it !!
5
[dump_BBT] Nand BBT Content
6
[0] (0, 27, 0, 2047)
7
RTK: using the whole nand as a partitoin
8
[rtk_nand_init]Randomized enabled
9
 [rtk_nand_init]Ecc bit select 24
10
Realtek Nand Flash Driver is successfully installing.

Er hat also den richtigen 4GB großen NAND-Flash. Page-Size 8kb. Dieses 
"dump_BBT" erschließt sich mir noch nicht ganz.

Nun kommt das NOR-Flash MX25L1605 (Serielles EEPROM) welches auf der 
Platinenunterseite montiert ist (heißt hier "Venus", Realtek hat es wohl 
mit Planetennamen):
1
VenusSFC MTD init...
2
NOR flash support list ..
3
(X) HWSEMA support.
4
(V) AUTO_HW_POLL support.
5
(X) 4Bytes mode support.
6
(V) Max erase size support.
7
(V) Sfc_delay support.
8
[venus_sfc_init]FLASH_BASE: 0xbdc00000
9
[venus_sfc_init]Flash size: 0x2000000
10
Read id orginal value : 0xc22015c2
11
--RDID Seq: 0xc2 | 0x20 | 0x15
12
VenusSFC MTD: MXIC MX25L1605 detected.
13
SFC_4KB_ERASE
14
VenusSFC MTD: Enable VenusSFC MD PP callback function.
15
MD_READ Enable..
16
MD_WRITE Enable..
17
[venus_sfc_init]descriptor size 0x2000000
18
RedBoot partition parsing not available
19
Venus SFC: using single partition Venus SFC: (for SST/SPANSION/MXIC SPI Flash)
20
this  Jupiter eth RX_OFFSET = 0x0

Was er bis hier hin macht ist einfach das booten in das "Realtek Rescue 
Linux fpr PhotoViewer". Danach wird der eingesteckte USB-Stick gemounted 
und darauf nach einem Update-File gesucht:
1
Hotplug: mount -t vfat -o ro,shortname=winnt,iocharset=utf8,umask=0 /dev/sda1 /var/lock/hotplug/mount_tmp/.sda1 ret: 0
2
Hotplug: Mount "sda1" successfully.
3
build_imgfile_list: namelist[n]->d_name: .
4
build_imgfile_list: namelist[n]->d_name: ..
5
build_imgfile_list: namelist[n]->d_name: 3DFHDL_3DS4600_Forced_Update_Manual.pdf
6
build_imgfile_list: namelist[n]->d_name: System Volume Information
7
build_imgfile_list: namelist[n]->d_name: install.img
8
(pattern_byte ==pattern_comparing11
9
[loader_a.c][verona_load_func][1679]Debug USB Install(path:/mnt/usbmounts/sda1)
10
totallistcount: 1
11
img_list[first_big_useful_index].filename: /mnt/usbmounts/sda1/install.img

Nachdem er eine qualifizierte Updatedatei (über den Dateinamen) gefunden 
hat, versucht er die darin enthaltene Datei "install_a" ins root-FS zu 
kopieren:
1
tar: UI: not found in archive
2
command: tar -xOf /mnt/usbmounts/sda1/install.img install_a > /install_a

und anschließend zu starten (install_a ist eine ausführbare ELF-kodierte 
Datei):
1
**************************************************************************
2
Saturn install_a (JH version), date:Dec 24 2013, time:10:25:37 REV:612471
3
**************************************************************************

Das ist wohl der eigentliche Installer, welcher mit dem Pfad zur 
IMG-Datei auf dem USB-Stick aufgerufen wird:
1
argc:2, argv[0]=/install_a, argv[1]=/mnt/usbmounts/sda1/install.img
2
opt_str=(null) , tgt_dev=(null), compress_srting=(null)
3
package_file_path:/mnt/usbmounts/sda1/install.img
4
[INSTALL INFO][./src/rtk_mtd.cpp][44] Open MTD_CHAR /dev/mtd0
5
[INSTALL LOG][./src/rtk_imgdesc.cpp][66]
6
support MEMDISABLESCRAMBLE
7
[INSTALL INFO][./src/rtk_mtd.cpp][62] Open MTD_BLOCK /dev/mtdblock0
8
[INSTALL LOG][./src/rtk_fwdesc.cpp][767]
9
nand_boot_size 0x3200000
10
[INSTALL LOG][./src/rtk_fwdesc.cpp][773]
11
factory_size 0x400000
12
[INSTALL LOG][./src/rtk_imgdesc.cpp][101]
13
MEMINFO flash_type:4 flash_size:0x100000000(4194304 KB = 4096 MB) mtd_erasesize:0x00200000 (2048 KB), page_size:0x00002000
14
[INSTALL INFO][./src/rtk_main.cpp][136] prtkimgdesc->tarinfo.tarfile_path:/mnt/usbmounts/sda1/install.img(0x3fbb71c0)
15
[INSTALL LOG][./src/rtk_tar.cpp][108]
16
NULL:0 ZERO:0, prtkimg->tarinfo.tarfile_path=/mnt/usbmounts/sda1/install.img(0x3fbb71c0)
17
tarfile_path:/mnt/usbmounts/sda1/install.img, tarfile_size: 203931648 Bytes (199152 KB)
18
[INSTALL LOG][./src/rtk_tar.cpp][50]
19
hash_value :
20
0xFF82 0x34 0xFFEF 0x52 0x03 0x09 0xFF87 0xFFAD 0x4C 0x4E 0x24 0x74 0x58 0x04 0x2C 0xFF8E

Hier sind wieder die beiden Bereiche vermutlich für das OS und das 
Rescue-Linux zu finden.

Nun entpackt er aus dem TAR noch weitere Dateien:
- arial.ttf
- configuration.xml
- flash_erase
- /image Verzeichnis (enthält die Grafiken die beim Update angezeigt 
werden)
- mkfs.jjs2
- install_a
- mkyaffs2image
- nandwrite
- /package5 Verzeichnis
1
current tarfile_offset:0
2
3
filename=arial.ttf, filezie=143300 (139KB), ustarin=ustar
4
Tarfile parsing offset:0 (0x00000000)
5
current tarfile_offset:143872
6
7
filename=configuration.xml, filezie=2315 (2KB), ustarin=ustar
8
Tarfile parsing offset:143872 (0x00023200)
9
[INSTALL LOG][./src/rtk_imgdesc.cpp][579]
10
Got configuration.xml
11
current tarfile_offset:146944
12
13
filename=flash_erase, filezie=47504 (46KB), ustarin=ustar
14
Tarfile parsing offset:146944 (0x00023e00)
15
current tarfile_offset:195072
16
17
filename=image/, filezie=0 (0KB), ustarin=ustar
18
Tarfile parsing offset:195072 (0x0002fa00)
19
current tarfile_offset:195584
20
21
filename=image/update_bg_ok.png, filezie=53749 (52KB), ustarin=ustar
22
Tarfile parsing offset:195584 (0x0002fc00)
23
current tarfile_offset:249856
24
25
filename=image/update_focus.png, filezie=2871 (2KB), ustarin=ustar
26
Tarfile parsing offset:249856 (0x0003d000)
27
current tarfile_offset:253440
28
29
filename=image/update_bg.png, filezie=52790 (51KB), ustarin=ustar
30
Tarfile parsing offset:253440 (0x0003de00)
31
current tarfile_offset:307200
32
33
filename=image/update_unfocus.png, filezie=2871 (2KB), ustarin=ustar
34
Tarfile parsing offset:307200 (0x0004b000)
35
current tarfile_offset:310784
36
37
filename=image/update_bg_fail.png, filezie=51773 (50KB), ustarin=ustar
38
Tarfile parsing offset:310784 (0x0004be00)
39
current tarfile_offset:363520
40
41
filename=install_a, filezie=3033700 (2962KB), ustarin=ustar
42
Tarfile parsing offset:363520 (0x00058c00)
43
current tarfile_offset:3398144
44
45
filename=mkfs.jffs2, filezie=163948 (160KB), ustarin=ustar
46
Tarfile parsing offset:3398144 (0x0033da00)
47
current tarfile_offset:3563008
48
49
filename=mkyaffs2image, filezie=48052 (46KB), ustarin=ustar
50
Tarfile parsing offset:3563008 (0x00365e00)
51
current tarfile_offset:3611648
52
53
filename=nandwrite, filezie=61668 (60KB), ustarin=ustar
54
Tarfile parsing offset:3611648 (0x00371c00)
55
current tarfile_offset:3674112

Die Fehlermeldung hier ist komisch, eigentlich sollte nur ein Vereichnis 
ausgepackt werden:
1
filename=package5/, filezie=0 (0KB), ustarin=ustar
2
Tarfile parsing offset:3674112 (0x00381000)
3
[INSTALL INFO][./src/rtk_imgdesc.cpp][616] package5/ can't be figured
4
current tarfile_offset:3674624

Die weiteren Dateien die da drin stecken kommen aber wohl erstmal raus:
1
filename=package5/vmlinux.develop.android.saturn.nand.bin, filezie=7483204 (7307KB), ustarin=ustar
2
Tarfile parsing offset:3674624 (0x00381200)
3
current tarfile_offset:11158528
4
5
filename=package5/bootloader.tar, filezie=2467840 (2410KB), ustarin=ustar
6
Tarfile parsing offset:11158528 (0x00aa4400)
7
current tarfile_offset:13626880
8
9
filename=package5/yaffs2_2.img, filezie=1480512 (1445KB), ustarin=ustar
10
Tarfile parsing offset:13626880 (0x00cfee00)
11
current tarfile_offset:15108096
12
13
filename=package5/video_firmware.bin, filezie=2298336 (2244KB), ustarin=ustar
14
Tarfile parsing offset:15108096 (0x00e68800)
15
current tarfile_offset:17406976
16
17
filename=package5/squashfs1.img, filezie=181489664 (177236KB), ustarin=ustar
18
Tarfile parsing offset:17406976 (0x01099c00)
19
current tarfile_offset:198897152
20
21
filename=package5/bluecore.audio, filezie=1883184 (1839KB), ustarin=ustar
22
Tarfile parsing offset:198897152 (0x0bdaee00)
23
current tarfile_offset:200781312
24
25
filename=uEGBK.mbf, filezie=747522 (730KB), ustarin=ustar
26
Tarfile parsing offset:200781312 (0x0bf7ae00)
27
current tarfile_offset:201529856
28
29
filename=video_firmware.install.bin, filezie=2391176 (2335KB), ustarin=ustar
30
Tarfile parsing offset:201529856 (0x0c031a00)
31
current tarfile_offset:203921920

Ein paar Dateien gibt es auch nicht im Archiv, was aber glaube ich ok 
ist:
1
[INSTALL DEBUG][./src/rtk_tar.cpp][152]
2
tar magic error
3
command:tar xv -f /mnt/usbmounts/sda1/install.img en_kh.txt, (139) [./src/rtk_main.cpp]
4
tar: en_kh.txt: not found in archive
5
[INSTALL DEBUG][./src/rtk_common.cpp][190]
6
Can't exec command:tar xv -f /mnt/usbmounts/sda1/install.img en_kh.txt, (139) [./src/rtk_main.cpp]
7
command:tar xv -f /mnt/usbmounts/sda1/install.img rsa_key_tmp.pub, (141) [./src/rtk_main.cpp]
8
tar: rsa_key_tmp.pub: not found in archive
9
[INSTALL DEBUG][./src/rtk_common.cpp][190]
10
Can't exec command:tar xv -f /mnt/usbmounts/sda1/install.img rsa_key_tmp.pub, (141) [./src/rtk_main.cpp]

Hier meckert er über eine falsche Boot-Version:
1
[INSTALL INFO][./src/rtk_mtd.cpp][101] Open MTD_BLOCK /dev/mtdblock0 with 56623104(0x3600000) offset
2
fw_table:
3
68 f2 1b 90 90 36 52 80 00 00 10 00 00 00 00 00
4
00 00 00 00 02 00 00 00 00 00 00 80 00 00 00 00
5
6
[INSTALL DEBUG][./src/rtk_fwdesc.cpp][74]
7
Wrong boottable version:0x00
8
[INSTALL DEBUG][./src/rtk_imgdesc.cpp][130]
9
load_fwdesc() fail

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Hier wird wohl mit einfachen Shell-Mitteln während der Installation die 
Signatur in Flash geschrieben (56623104 = 0x360 0000):
1
In NAND FLASH
2
command:echo -n RESCUE__ | dd of=/dev/mtdblock0 bs=1 seek=56623104, (103) [./src/rtk_burn.cpp]
3
.8+0 records in
4
8+0 records out

Dem folgen viele weitere Flash-Blöcke, immer nach dem gleichen Schema: 
Erst wird mit "nand_erase" ein Bereich gelöscht und dann mit 
"nand_write" beschrieben, wie hier am Beispiel des Root-Filesystems:
1
Burning RootFS efwtype(5) image with mem_offset(0x00000000)  ...
2
flash_offset:0x00a5000000 flash_allo_size:0x0ae00000 bytes(87 sector)
3
tarfile_offset:0x01099c00      image_size:0x0ad15000 bytes(177236 KB)
4
command:/usr/sbin/flash_erase /dev/mtd0 2768240640 87, (572) [./src/rtk_burn.cpp]
5
Erase Total 87 Units
6
Performing Flash Erase of length 2097152 at offset 0xafc00000 donese of length 2097152 at offset 0xab800000
7
popen(cmd):/usr/sbin/nandwrite -c -x -X -s 2768240640 -l 181489664 /dev/mtd0 -
8
start burning
9
progress_callback---------- totalLen(181489664) g_burnSize(11664724)
10
nandwrite $ Revision: 1.63 release Version.$
11
struct64...
12
Linux version 0x2060c
13
............................................
14
........................................................checksum:0x8F8A6A61
15
16
total_time:62 secands
17
Writing data finishes !!
18
Complete!!

Ganz am Ende wird dann ein Neustart hingelegt:
1
install time:88 secands
2
command:pci stop, (138) [install_a.cpp]
3
sh: pci: not found
4
[INSTALL DEBUG][./src/rtk_common.cpp][190]
5
Can't exec command:pci stop, (138) [install_a.cpp]
6
command:reboot, (139) [install_a.cpp]
7
The system is going down NOW!
8
Sending SIGTERM to all processes
9
clear pli setting....
10
se release, count = 0
11
Sending SIGKILL to all processes
12
Requesting system reboot
13
14
Restarting system.

In Summe finde ich da keine Fehler die darauf hindeuten würden das das 
alles nicht geklappt hat. Einzig finde ich aber auch kein Kommando was 
besagte "VERONA__" Magic im Flash ablegt.

von Olli Z. (z80freak)


Lesenswert?

Dateien, egal wie sie heißen bzw. welches Suffix sie auch haben mögen, 
bei denen die ersten 4 Bytes diese Folge haben "68 73 71 73" sind LZMA 
gepackte Archive. Das Magic ist eigentlich "0x73687371", da MIPS jedoch 
eine 16-Bit Little-Endian Architectur aufweist ist es 2-Byte weise 
verdreht.

Die Datei "/package5/squashfs1.img" ist so ein Archiv. Sie lässt sich 
problemlos mit 7zip auspacken.

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Drücke ich dauerhaft auf "ESC" beim booten, gelange ich in den "Realtek 
ROM Monitor" und kann mir dort weitere Daten ausgeben lassen:
1
REALTEK ROM Monitor, Revision ICIE.0402.1067.
2
Copyright (c) Realtek Semiconductor Corp. - All Rights Reserved.
3
4
For a list of available commands, type 'help'.
5
6
Compilation time /version=      Feb 19 2014  10:14:08  /ICIE.0402.1067
7
MAC address =                   00.11.22.33.44.55
8
Processor Company ID/options =  0x01 (MIPS Technologies, Inc.) / 0x00
9
Processor ID/revision =         0x93 / 0x85
10
Endianness =                    Little
11
Flash memory size =             4 GByte
12
SDRAM size =                    512 MByte
13
First free SDRAM address =      0x800c4000
14
15
Press 'ESC' to Monitor mode
16
defer 625p logo
17
Realtek> elp
18
Error : Command not found : elp
19
Realtek> help
20
21
Available commands :
22
23
.           . (repeat last command line)
24
;           ; (command separator)
25
+           + <repeat count> ;
26
compare     compare <address1> <address2> <size>
27
continue    continue
28
copy        copy [-f] <src> <dst> <size>
29
dump        dump [-m][-8|-16|-32] <address> [<size>]
30
erase       erase -e|-m| <address> <size>
31
factory     factory [-r|-w|-sha1] <address> <size> or factory -c
32
fill        fill [-8|-16|-32] <address> <size> <data>
33
fread       fread  tftp://<ipaddr>/<filename> <address>
34
fwrite      fwrite tftp://<ipaddr>/<filename> <address> <size>
35
go          go [?|.|<address> [<args>]]
36
help        help [<command>]
37
info        info [boot|board|cpu|sysctrl|memory|uart|all|pll]
38
keyset      keyset
39
load        load [-r]
40
                 ([tftp:][//<ipaddr>][/<filename>]) |
41
                 ([asc:] [//(tty0|tty1)])
42
lzma        lzma <src_address> <dst_address> <size>
43
ping        ping ipaddr [<datagramsize>]
44
port        port [-a] [-8|-16|-32] <address> [<value>]
45
reset       reset
46
saveenv     saveenv
47
setenv      setenv [<variable> [<value>]]
48
stty        stty [-tty<0|1>] [-b|-u|[-p][<baudrate>][n|o|e][7|8][1|2][hw|none]]
49
tar         tar <name> <src_address> <size>
50
51
Realtek> set
52
53
EthDrv              (R/W)  44
54
Gbit                (R/W)
55
bootrev             (RO)   ICIE.0402.1067
56
bootserport         (RO)   flash
57
ethaddr             (R/W)  00.11.22.33.44.55
58
flashsize           (RO)   0x100000000
59
gateway             (R/W)  192.168.0.254
60
ipaddr              (R/W)  192.168.0.9
61
linuxparameter      (R/W)  go 803bc000 rootfstype=squashfs root=31:02 mtdparts=
62
linuxstart          (R/W)
63
linuxstartdelay     (R/W)
64
memsize             (RO)   0x20000000
65
modetty0            (RO)   115200,n,8,1,hw
66
modetty1            (RO)   115200,n,8,1,hw
67
prompt              (R/W)  Realtek
68
regioncode          (RO)   0x0
69
shellstart          (R/W)
70
shellstartdelay     (R/W)
71
subnetmask          (R/W)  255.0.0.0
72
system_parameters_1 (RO)   param_addr=10000 tv_system=PAL usb_otg=off otg_gpio=
73
                           0
74
system_parameters_2 (RO)   boot_flash=nand nand_boot_size=3200000 factory_size=
75
                           400000
76
system_parameters_4 (R/W)  12V5V_GPIO=35,hion cr_pw=b100-1f
77
78
Realtek> info boot
79
80
REALTEK ROM Monitor, Revision ICIE.0402.1067.
81
Copyright (c) Realtek Semiconductor Corp. - All Rights Reserved.
82
83
For a list of available commands, type 'help'.
84
85
Compilation time /version=      Feb 19 2014  10:14:08  /ICIE.0402.1067
86
MAC address =                   00.11.22.33.44.55
87
Processor Company ID/options =  0x01 (MIPS Technologies, Inc.) / 0x00
88
Processor ID/revision =         0x93 / 0x85
89
Endianness =                    Little
90
Flash memory size =             4 GByte
91
SDRAM size =                    512 MByte
92
First free SDRAM address =      0x800c4000
93
94
Realtek> info cpu
95
96
**** Info cpu ****
97
98
Processor Company ID/options =  0x01 (MIPS Technologies, Inc.) / 0x00
99
Processor ID/revision =         0x93 / 0x85
100
Endianness =                    Little
101
ICACHE size =                   32 kByte
102
ICACHE line size =              32 bytes
103
ICACHE associativity =          4-way
104
DCACHE size =                   64 kByte
105
DCACHE line size =              32 bytes
106
DCACHE associativity =          4-way
107
TLB entries =                   32
108
CPU type =                      MIPS32
109
Architecture revision =         2
110
MIPS16e implemented =           Yes
111
EJTAG implemented =             Yes
112
FPU implemented =               Yes
113
114
Realtek> info board
115
116
**** Info board ****
117
118
MAC address =                   00.11.22.33.44.55
119
120
Realtek> info memory
121
122
**** Info memory ****
123
124
Monitor flash phys base =       0x00000000
125
Monitor flash size =            0x100000000
126
Env. flash phys base =          0x00010000
127
Env. flash size =               0x0000fe00
128
129
SDRAM phys base =               0x00000000
130
SDRAM size =                    0x20000000
131
First free SDRAM address =      0x800c4000
132
Stack size =                    0x5000 bytes
133
Application stack size =        0x5000 bytes
134
NAND flash bootcode block state:
135
d0 bb bb 23 23 23 23 79 79 79 79 80 80 80 80 ff
136
ff ff ff ff ff ff ff ff ff ff ff
137
page size: 0x2000, pages per block: 0x100
138
blocks per flash: 0x800, chip num: 0x1
139
140
BBT:
141
[0]: (0x0, 0x1b, 0x0, 0x7ff)
142
143
factory blk start:0x19, size:0x400000
144
fw description table blk: 0x1b
145
146
Realtek> info uart
147
148
**** Info uart ****
149
150
TTY0:
151
 Bytes transmitted:             6452
152
 Bytes received:                130
153
 Receive overruns:              0
154
 Receive parity errors:         0
155
 Receive framing errors:        0
156
 Receive breaks:                0
157
 Receive Interrupts:            0
158
 No of resets:                  1
159
TTY1:
160
 Bytes transmitted:             0
161
 Bytes received:                0
162
 Receive overruns:              0
163
 Receive parity errors:         0
164
 Receive framing errors:        0
165
 Receive breaks:                0
166
 Receive Interrupts:            0
167
 No of resets:                  1
168
169
Realtek>

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Für mich wirkt es aktuell so als würde der Bootloader den Kernel nicht 
finden/laden/ausführen. Dieser müsste ja, wie bei jedem Linux-Boot 
Vorgang, als erstes geladen werden. Davon sieht man nach dem 
Bootloader-Menü jedoch garnichts, stattdessen die Fehlermeldung und dann 
ds Rescue-Linux.

Über eine Websuche kann man andere entsprechende Logs finden die da 
zeigen:
1
Linux Kernel:
2
3
      FW Image from 0xa2020000, to 0x80100000, size=0x413085 
4
5
Audio FW:
6
7
      FW Image from 0xa2440000, to 0x81b00000, size=0x1b3bc0 
8
9
Video FW:
10
11
      FW Image from 0xa2600000, to 0x81d80000, size=0x211578 
12
13
NTSC logo
14
15
5280Go 5280Go BgoardoBondin g 0 0x0000818x08
16
0100000 mtdparts=rtk_nand:161280k,79488k(/),8192k(/usr/local/etc),13184k rootfstype=yaffs2 root=31:01

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Hartnäckigkeit zahlt sich doch aus, der Player läuft wieder! :-)

von Michael U. (amiga)


Lesenswert?

Hallo,

Olli Z. schrieb:
> Hartnäckigkeit zahlt sich doch aus, der Player läuft wieder! :-)

ja und was war es denn nun?

Gruß aus Berlin
Michael

von Christian B. (cb1969)


Lesenswert?

Olli Z. schrieb:
> Hartnäckigkeit zahlt sich doch aus, der Player läuft wieder! :-)

Als Du Hilfe gesucht hast warst du wortreicher!
Was war die Lösung?

von Olli Z. (z80freak)


Lesenswert?

Christian B. schrieb:
> Olli Z. schrieb:
>> Hartnäckigkeit zahlt sich doch aus, der Player läuft wieder! :-)
> Als Du Hilfe gesucht hast warst du wortreicher!
Ich schon, Du nicht!
Du bist offensichtlich daran interessiert, aber warum gab es keinerlei 
Unterstützung von Dir bei der Fehleranalyse und Suche?

von Olli Z. (z80freak)


Lesenswert?

Michael U. schrieb:
> ja und was war es denn nun?

Im Kern waren es wohl Bad-Blocks im Flash.

Ich muss das noch ordentlich aufarbeiten bevor ich das alles hier 
einstelle, aber soweit ich das bislang analysieren konnte verwendet die 
Firmware nur das MTD Interface um auf den NAND-Flash zuzugreifen. Dieses 
bietet jedoch keinerlei Fehlertoleranz. Ein als BAD erkannter Block kann 
somit nicht übergangen werden, es muss durch "andere Mittel" geheilt 
werden.
Es gäbe durchaus Treiber die eine solche Selbstreparatur böten, die 
kommen aber in der Fantec Firmware leider nicht zum Einsatz.

Das wird auch der Grund sein warum die Appliance beim booten einfach 
hängen blieb. Das ganze ist mir selbst aufgefallen als ich versucht habe 
Stück für Stück den Flash über TFTP auf meinen PC TFTP-Server zu 
übertragen. Da gab es Bereiche bei denen der Fantec im Shell-Fenster 
einfach einfror und der TFTP-Server einen Connection-Timeout-Drop 
meldete.

Im Log-File war dies auch dokumentiert. Unterhalb vom "[dump_BBT]" 
erkennt man die Bad-Block Tabelle:
1
One H27UBG8T2B chip has 1 die(s) on board
2
nand part=H27UBG8T2B, id=add794da, device_size=4294967296, chip_size=4294967296, num_chips=1, page_size=8192, isLastPage=1, eccBits=24
3
[rtk_nand_scan_bbt] have created bbt B1, just loads it !!
4
[dump_BBT] Nand BBT Content
5
[0] (0, 27, 0, 2047)
6
RTK: using the whole nand as a partitoin
7
[rtk_nand_init]Randomized enabled
8
 [rtk_nand_init]Ecc bit select 24
9
Realtek Nand Flash Driver is successfully installing.
10
VenusSFC MTD init...

Im (russischen?) Forum https://www.moservices.org/forum/ welches sich 
allgemein mit den Realtek-Chipsätzen beschäftigt und dafür auch 
Custom-Firmware anbietet, gab es ein Reparatur-Tool welches den NAND 
nach Bad-Blocks gescannt und diesen auch gelöscht hat (siehe 
https://moservices.org/forum/viewtopic.php?f=14&t=3746) . Möglicherweise 
wäre das mit "erase -m" im Recovery-Mode auch gegangen, kann ich jetzt 
natürlich nicht mehr sagen...

Nach dieser Aktion zeigte das Log an der gleichen Stelle wie oben:
1
nand part=H27UBG8T2B, id=add794da, device_size=4294967296, chip_size=4294967296, num_chips=1, page_size=8192, isLastPage=1, eccBits=24
2
[rtk_nand_scan_bbt] have created bbt B1, just loads it !!
3
[dump_BBT] Nand BBT Content
4
Congratulation!! No BBs in this Nand.
5
RTK: using the whole nand as a partitoin

Anschließend lief das Update problemlos und vollständig durch und der 
Fantec bootete wieder in seine Firmware.

: 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.