Unbricking e uso JTAG per Realtek RTD 1283
Questa è una discussione su Unbricking e uso JTAG per Realtek RTD 1283 all'interno del forum Realtek RTD 1283/1073, nella categoria Processori e Hack Firmware; Salve a tutto il forum.
Come dice il titolo questa vuole essere una guida da utilizzare per ripristinare un HMR-2000 ...
Unbricking e uso JTAG per Realtek RTD 1283
-
Unbricking e uso JTAG per Realtek RTD 1283
Salve a tutto il forum.
Come dice il titolo questa vuole essere una guida da utilizzare per ripristinare un HMR-2000 della O2 Media (e cloni). In realtÃ*, dall'esperienza che mi sono fatto in questa vicenda, direi che i vari apparecchi con processori Realtek funzionano più o meno tutti alla stessa maniera (i vari assemblatori infatti non pare che si impegnino più di tanto e per contenere i costi rimangono fedeli ai layout e ai firmware standard sviluppati da Realtek) e quindi questa procedura dovrebbe avere una valenza generale, basta individuare sulle motherboard i pin della UART ai quali collegarsi.
Ma andiamo con ordine, come prima cosa vorrei fare alcune puntualizzazioni:
1. Io non ho inventato niente. Ho soltanto fatto molta ricerca su internet e scavando di qua e di lÃ* sono riuscito a trovare questa soluzione. In realtÃ* il primo sito è stato questo forum (ovviamente he he) ed è proprio qui che ho trovato lo spunto buono: voglio perciò ringraziare l'utente ior per le sue fondamentali indicazioni e consiglio a tutti la sana lettura del thread:
/forum/bluetimes-bt...50hd-1439.html
2. Ovviamente la procedura NON HA ALCUNA GARANZIA, ne da parte mia, ne del forum. Ad esempio vi sconsiglio vivamente di lanciarvi in improbabili innesti di firmware di altre macchine, magari con hardware diversi dal vostro, credendo di poterli sicuramente ripristinare con questa procedura se poi qualcosa va male: in rete è pieno di gente che ha brickato completamente facendo di queste cose! Occhio, questa NON E'una bacchetta magica.
3. La procedura non comporta difficoltÃ* astronomiche, ma un minimo di manualitÃ* e di conoscenze sì. Inoltre direi che serve uno spirito un po' geek. Io ho voluto fare da solo e me ne sono assunto consapevolmente i rischi (mi sono anche autocostruito la schedina seriale), ma non è che posso venire a farlo anche a casa vostra. Compatibilmente con il tempo a mia disposizione potrei anche aiutarvi qui sul forum, ma tenete presente che scrivo dopo 2 settimane dal fatto...
Bene, iniziamo quindi con la descrizione di come ho ridotto il mio HMR ad un mattone.
Dopo aver aggiornato il firmware alla versione 739 e poi alla 747 senza problemi con la procedura manuale (HMR spento, chiavetta USB con il file install.img inserita, tenere premuto il tasto GUIDE e accensione), un giorno scarico la nuova 750 dal sito di O2 (come le volte precedenti) e decido di provare il metodo di aggiornamento selezionando la voce "aggiornamento sistema" dal menu "impostazioni". L'HMR si riavvia e parte la procedura di upgrade che sembra avanzare normalmente (solita schermata blu con barra verde) e termina con la scritta completed, ma dopo 5 min è sempre lì, dopo 10 min è sempre lì, dopo 15 min. è ancora lì...
Ovviamente qualcosa non va, le altre volte l'HMR ripartiva da solo, pronto con il nuovo firmware e il tutto durava massimo 2 mminuti. Provo qualche tasto del telecomando: nulla. Provo i tasti sopra il frontale: nulla. Stacco la chiavetta USB: nulla.
Che altro rimane? Rimane quello che tutti ti dicono non si dovrebbe mai fare: spengo l'HMR e che Dio me la mandi buona... Dopo qualche secondo riaccendo senza troppe speranze ed infatti: schermo nero sul TV e solita animazione di avvio sul display LCD che continua all'infinito.
Varie imprecazioni più tardi mi ricordo che da qualche parte ho letto che si può sempre effettuare un nuovo aggiornamento con la procedura manuale. Ok penso, vai di aggiornamento manuale. E' vero, l'aggiornamento manuale parte e tutto procede normalmente, poi di nuovo "completed" e l'HMR si riavvia: schermo nero sul TV e solita animazione di avvio sul display LCD che continua all'infinito.
Mi cade l'occhio sulla chiavetta: non è la solita delle altre volte, vuoi vedere che gli sta indigesta?? Cambio chiavetta e ricomincio con l'aggiornamento manuale con il lodevole risultato che: lo schermo della TV rimane nero e la solita animazione di avvio sul display LCD continua all'infinito.
Non sarÃ* il firmware bacato? Chi lo sa, sul forum ne parlano bene... però provo a scaricarlo di nuovo, perchè è gia successo ad altri utenti in altre occasioni che con i download manager i file alla fine contenessero degli errori.
Riprovo. Risultato: schermo nero sul TV e solita animazione di avvio sul display LCD che continua all'infinito.
A questo punto sto per lanciare l'HMR dalla finestra, ma poi penso che è colpa mia e della mia mania degli aggiornamenti: funzionava così bene (prima!), ma io volevo vedere se i colori del televideo fossero stati corretti e cosi ecco un bel mattone.
In breve ricomincio a provare, cambio tre chiavette, riscarico i vecchi firmware 739 e 747, stacco l'HDD interno, ma tutto è inutile.
Mi ributto nel forum per vedere se sia giÃ* capitato ad altri e finalmente il grande ior mi illumina. La procedura indicata è per un altro tipo di apparecchio, ma i chip sono gli stessi e secondo lui si potrebbe sperimentare anche su altri. Basterebbe avere una UART a cui collegarsi. Ce l'avrÃ* anche l'HMR?
Detto fatto: apro il case e metto a nudo la motherboard e scollego i connettori del frontale per comoditÃ*.
Ma l'aveta letta la serigrafia alla destra della cpu? "HMR 600 DUAL TUNER" Eh giÃ*, piccoli HMR crescono...
Ma concentriamoci su quello che ci serve, in basso a sinistra.
Connettore a 6 poli siglato "J1", posto sotto al connettore del display. Se la serigrafia nel riquadrino al centro non mente, ce ne sono addirittura 2 di UART: UART0 (pin 2 e 3), UART1 (pin 4 e 5). Il pin 1 è indicato come GND e il pin 6 come 3.3VD . Perfetto, "Si può fare!" dicevano in un grande film di Mel Brooks...
Prima però un paio di notti insonni su internet per le verifiche del caso e per capire bene cosa mi serve: non voglio proprio rischiare troppo. Le informazioni più serie le ho trovate su Patriot Memory e HomePage : MiniModding anche se si parlava di altri dispositivi. Ho capito che la procedura era standard: collegarsi con il PC alla UART del Realtek per dialogare con il processore e dargli il comando giusto per azzerare la flash e consentire un nuovo aggiornamento del firmware. Per far questo è però necessario un convertitore seriale da livello UART a 3,3 volt a RS232 oppure a USB. Ovviamente questo dipende da che PC avete: con porta seriale RS232 o meno. Normalmente sui PC portatili moderni le porte seriali non esistono più da un pezzo e anche il mio non fa eccezione, sono però in possesso di un cavo convertitore USB <-> RS232 e quindi ho cercato e trovato quello che mi serviva qui:
Simple RS232 to logic level converter (TTL, CMOS)
Non riporto direttamente qui lo schema elettrico, perchè non sono sicuro se sia consentito, comunque seguendo il link troverete tutto, compresa la spiegazione dettagliata del funzionamento. Con circa 2 euro di spesa ho realizzato al volo questa piccola scheda (battezzata Frankenstein), che funziona benissimo (attenzione soltanto a collegare correttamente RX e TX del lato UART, perchè se le invertite come ho fatto io al primo tentativo, non vedrete ovviamente un bel nulla) e con la quale ho potuto riportare in vita il mio HMR-2000.
A questo punto ho chiacchierato abbastanza e passo ad una spiegazione punto per punto di come fare:
1. Procuratevi un convertitore UART <-> RS232 se avete porte seriali RS232 sul vostro PC (se volete divertirvi potete fare come me e costruirvelo e comunque in giro si trovano anche altri schemi con circuiti integrati se vi piacciono di più, considerate però che la "mia" schedina ha la comoditÃ* di poter essere alimentata dalla UART e può essere usata sia con livelli a 3,3V sia a 5V); oppure uno UART <-> USB. Di entrambi i tipi se ne trovano a partire da circa una decina di euro in su, ma l'importante per il nostro caso è che funzionino a 3,3V poichè quello è il livello di segnale della nostra UART.
2. Procuratevi un firmware SICURAMENTE funzionante, estraete il file install.img e copiatelo nella root di una chiavetta USB, precedentemente formattata in formato FAT32. Dico SICURAMENTE funzionante perchè ho concluso che il mio problema è stato causato proprio da un firmware scaricato male. Infatti ho provato ad aprire il file compresso del mio firmware (intendo l'install.img) e ho ricevuto uno strano messaggio di errore, che poi con quello scaricato successivamente non si è più verificato. Quindi, prima di effettuare qualsiasi procedura di upgrade, consiglio di provare prima a decomprimere l'install.img per controllare che non vi siano errori.
3. Spegnete con l'interruttore posteriore l'HMR.
4. Collegate il vostro convertitore UART al connettore "J1" utilizzando i pin 1 (GND), 2 (UART0_RX) e 3 (UART0_TX), nel caso utilizzaste la "mia" schedina o un'altra che prevede di ottenere alimentazione attraverso la motherboard del dispositivo allora utilizzata anche il pin 6 (+3,3V).
5. Collegate l'altro capo del convertitore (sia esso USB o seriale) alla corrispondente porta del vostro PC.
6. Configurate la seriale RS232 o la seriale emulata (se usate un convertitore UART <-> USB) con i seguenti parametri: bit per secondo = 115.200; data bits = 8; parity = none; stop bit = 1; controllo di flusso = none.
7. Lanciate un programma di emulazione terminale. Io ho lavorato con Windows e quindi ho usato HyperTerminal (ma i settaggi vanno bene per qualsiasi programma): lanciatelo, sceglite una qualsiasi icona per la nuova connessione, selezionate la porta seriale da usare (quella fisica o quella emulata), configuratela come sopra e poi confermate con OK.
8. Premete e tenete premuto il tasto "ESC" sulla tastiera del PC.
9. Accendete il vostro HMR, sempre tenendo premuto il tasto "ESC".
10. Sul monitor del vostro PC, all'interno della finestra di terminale, compaiono i messaggi di boot del cosidetto bootcode, il programmino di inizializzazione di Realtek, denominato Realtek ROM Monitor. Rilasciate il tasto "ESC" quando la procedura di boot si ferma al prompt "Realtek>_" (senza virgolette e con l'underscore che lampeggia). In pratica dovreste visualizzare quanto segue:
?hello world!
5280 wai5t280 waiA[HDMI]: Set I2C Speed = 100 kHz
[I2C0] i2c speed changed to 100 KHz
[HDMI]: Chk_HotPlug() TV is not connected.
[HDMI]: Read_EDID abort, HDMI cable plug off.
[HDMI]: TV is not connected.
PAL logo
REALTEK ROM Monitor, Revision 0000.0201.0021D3.
Copyright (c) Realtek Semiconductor Corp. - All Rights Reserved.
For a list of available commands, type 'help'.
Compilation time /version= May 28 2010 15:02:34 /0000.0201.0021D3
MAC address = 00.1f.8a.80.c7.ab
Processor Company ID/options = 0x01 (MIPS Technologies, Inc.) / 0x00
Processor ID/revision = 0x93 / 0x78
Endianness = Little
Flash memory size = 256 MByte
SDRAM size = 128 MByte
First free SDRAM address = 0x800fb800
Press 'ESC' to Monitor mode
Realtek>_
11. Se i messaggi di boot non si fermano ed arrivano al punto in cui visualizzate il "kernel panic" di linux, vuol dire che l'ESC non è arrivato a destinazione e l'HMR non è entrato nel "Monitor Mode", ma ha continuato il boot normalmente e poi si è incastrato in qualche punto: a me visualizzava "Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,1)".
Spegnete, testate i collegamenti e ricominciate seguendo i vari passi alla lettera.
Nel caso in cui non visualizzaste proprio nulla, spegnete e testate i collegamenti prima di ricominciare.
Se invece doveste visualizzare soltanto un prompt tipo "s / d / g / c>" allora siete nei guai perchè non vi è andato storto solo l'upgrade del firmware, ma avete anche perso il bootcode. In teoria in rete ci sono delle guide anche per questo problema, io non le ho testate (per fortuna) e comunque questa guida si riferisce solo al recupero di upgrade finiti male. Nel caso provate a cercare con google " Mars bootcode recovery " e date un'occhiata a quei due siti che ho citato sopra.
12. Al prompt digitate il comando "erase -m" e poi premete "INVIO" sulla tastiera del PC (non digitate le virgolette ovviamente).
13. Dopo poco apparirÃ* la scritta "done" e poi di nuovo il prompt "Realtek>_" a questo punto spegnete l'HMR con l'interruttore posteriore.
14. Inserite ORA la chiavetta USB.
15. Riaccendete l'HMR senza premere nulla: la procedura di upgrade inizierÃ* automaticamente, perchè il comando che avete dato prima cancella un upgrade andato male e fa in modo che il sistema riparta cercando un nuovo firmware da USB.
Nella TV (se l'avete collegata tramite AV, perchè con l'HDMI credo non si visualizzi nulla) per prima cosa vedrete comparire una schermata blu con il logo di Realtek e dopo un po' partirÃ* la consueta schermata di aggiornamento firmware.
Di seguito l'HMR si riavvierÃ* e finalmente funzionerÃ*.
Discussioni Simili:
Ultima modifica di bovirus; 05-November-2011 alle 09:07 AM Motivo: inserimento link diretto fotografie
-
Re: Unbricking dell'HMR-2000 dopo aggiornamento firmware non riuscito
Volevo anche aggiungere che collegarsi all'HMR tramite la sua UART non serve soltanto a ripristinare il sistema ma è una vera e propria miniera di informazioni per chiunque volesse capirne meglio il funzionamento per sviluppare nuovi hack. Infatti seguendo le istruzioni del post precedente e accendendo l'HMR senza premere "ESC", potrete vedere sullo schermo del vostro PC tutte le informazioni di boot, le informazioni riguardanti le periferiche, le configurazioni della macchina e potrete vedere tutte le operazioni compiute dal software mentre voi state utilizzando la macchina.
A titolo di esempio vi riporto qui sotto la cattura di ciò che fa l'HMR quando, mentre si guarda normalmente la TV, si preme un tasto sul telecomando per cambiare canale:
DtvState.cpp-xProcessKey: Receive Key 30
key = 30
Key [30] processed.
watchdog test pid 1648, threshold: 50
[Buff][0] RP=0x3c17454 WP=0x3c1b5b0
key = 23
CMD_ENTER (m_invalidChMsg = 0)
Dvb PlayChannel 2
src/tpif_NeptuneTP.cpp : 340 : StreamControl : TSOUT MUTE <ON>
src/NeptuneTP.cpp, 1456, StreamControl: Stop Streaming
[TVFE] INFO, SetFrontend : freq=177527000, tv_sys=DVBT 7M
signal lock = 0, snr = -12.037037, low sig=0, time=135
signal lock = 0, snr = -12.037037, low sig=1, time=275
signal lock = 1, snr = 28.661669, low sig=2, time=414
DTV: Tuner lock ok 177527000
si set ch :2 sType:1 flag:0x100000
[CInputDTV.cpp 2992] set EVENT_FLUSH
flush TELETEXT begin
TTPinFlush...
TTPinFlush...return 1[AUDIO WARNING] <APP> Reset cgms_change_flag when APP flush
.
flush TELETEXT end
flush SPIC begin
src/tpif_NeptuneTP.cpp : 330 : StreamControl : TSOUT MUTE <OFF>
src/NeptuneTP.cpp, 1474, StreamControl: Start Streaming
flush SPIC end
flush AUDIO begin
flush AUDIO end
flush VIDEO begin
flush VIDEO end
New Format!! 0x00000001, MPEG
mpg pcm ch 0x00000002 sb 0x00000020 sr 0x0000bb80 mono 0x00000000
mpg info ns 0x00000480 br 0x000000c0 layer 0x00000002
RAT: send PRESENT_EIT to AP 0xd4a
got tot:1
[SI DB ] numRegions:1 iter:0 CC:ITA regId:1
[SI DB ] CC:ITA +/-:0 offSet hr:2 min:0 CRegId:1 entries:1
infobar is on
In pratica ogni tasto è identificato da un numero e io ho cambiato canale sulla RAI2 (sintonizzata in VHF: 177.527.000 Hz).
Buon divertimento a tutti gli smanettoni e ai curiosi.
-
Re: Unbricking dell'HMR-2000 dopo aggiornamento firmware non riuscito
Non mi è chiaro un concetto.
E' praticamente quasi impossibile briccare una unitÃ* con firmware Realtek.
Qualsiasi problema sia successo durante l'aggiornamento del firmware il bootloader non viene toccato ed è sempre disponibile.
Quindi è sempre possibile scaricare un firmware corretto e usare la procedura di aggiornamento forzato (PowerOn + Home) per entrare in modalitÃ* aggiornamento.
Prima di avventurarsi in operazioni complicate è sempre meglio provare a sfruittare ciò che abbiamo a disposizione per il recovery.
Nei "Tips & tricks" è spiegato perchè non conviene MAI usare l'aggiornamento da menu.
Non vengono aggiornati alcuni file vitali che soprattutto nel caso i file siano differenti nella nuova versione firmware può creare problemi all'unitÃ* player.
Inoltre ès empre importante quando si scarica un firmware e lo si decomprimere verificare che non vi siano errori di file corrotto (la compressione del fiels erve anche a verificare l'integritÃ* dello stesso).
Per il resto rimane interessante per uno sguardo avanzato sulle caratteristiche del player.
UART = J1 - Connettore a 6 poli siglato "J1" posto sotto al connettore del display
1 X X X X X X 6
PIN 1 = GND
PIN 2 = RX UART0
PIN 3 = TX UART 0
PIN 4 = RX UART 1
PIN 5 = TX UART 1
PIN 6 = VCC (+3.3V)
Ultima modifica di bovirus; 10-May-2011 alle 11:13 AM
-
Re: Unbricking dell'HMR-2000 dopo aggiornamento firmware non riuscito
E' bello sapere che se qualcosa dovesse andare storto c'è sempre un rimedio. Grazie CapSharky, come per l'altra discussione puoi mette le immagini direttamente visualizzabili? Se vuoi lo faccio io.
-
Re: Unbricking dell'HMR-2000 dopo aggiornamento firmware non riuscito
@ bovirus
1. Mea culpa ho fatto una leggerezza con l'aggiornamento da menu e non verificando prima l'archivio. L'ho imparato a mie spese.
2. In effetti avevo anche io preso come assioma che fosse sempre possibile l'aggiornamento forzato, come dici tu, ma purtroppo con me non funzionava. O meglio partiva e sembrava fare tutte le operazioni ma alla fine l'HMR non ripartiva mai. Non so perchè, ma soltanto seguendo questa procedura sono riuscito a ripristinarlo. Ti riporto l'aiuto in linea del comando erase del Realtek ROM Monitor, forse tu lo capirai meglio di me:
Realtek> help erase
NAME
erase
SYNOPSIS
erase -e|-m| <address> <size>
DESCRIPTION
Erase flash memory.
An option may be applied specifying which flash region to erase.
If no such option is applied, the address range to be erased
is specified by the <address> and <size> parameters.
If no such range is specified either, the range corresponding to the
default option is assumed (if there is a default option, this is
platform specific).
If (and only if) the -e option (erase environment flash) is
applied, the system environment variables are reinitialised to
factory default values.
If a range is specified, all flash blocks touched by the range
are cleared. The block size depends on the flash memory type used by the
board. The blocks to be cleared are displayed, and the user is asked
for confirmation before the operation is performed.
Erasing a large flash area takes time. It can easily take several
minutes to erase a 32 MByte area.
Any set flash sector lock bits will be cleared before the sector is
erased. If they cannot be cleared (e.g. due to hardware protection of the
lock bits), the command will fail.
OPTIONS
-e Erase and reinitialise entire environment area.
-m Erase magic number.
@ Galerio
hai ragione, non ho capito come fare e data l'ora ho ripiegato sui link.
EDIT: dopo una più attenta lettura delle FAQ del forum ho capito dove sbagliavo e sono finalmente riuscito a correggere il post come mi avevi chiesto. Inserivo il link della pagina invece di quello del file.
Ultima modifica di CapSharky; 17-May-2011 alle 11:39 PM Motivo: foto inserite
-
Re: Unbricking dell'HMR-2000 dopo aggiornamento firmware non riuscito
Praticamente il comando reinizalizza l'area delle varibaili corrotta (non inizalizza il contenuto intero della flash).
Ti ringrazio dell'ulteriore informazione.
E' probabile che il problema della tua situazione sia stato causato non dall'aggiornamento da menu ma dall'uso dell'archivio corrotto che aveva l'intestazione giusta ed è stato accetta ma il cui contenuto era incompleto.
Per la maggior parte degli utenti se si fa attenzione che l'archivio scaricato non sia danneggiato (NON USARE archivi che segnalano messaggi d'errore alla decompressione) possiamo dire che si recupera quasi sempre.
La tua era una situazione al limite e disperata che speriamo rimanga un caso isolato, ma che grazie a te ci ha dato ulteriori info sull'hardware del player.
-
Re: Unbricking dell'HMR-2000 dopo aggiornamento firmware non riuscito
@CapSharky
Sbaglio o avevi postato anche una disussione sui parametri di avvio DVDplayer?
Non riesco più a trovarla?
-
Re: Unbricking dell'HMR-2000 dopo aggiornamento firmware non riuscito
No, mi spiace ma deve essere stato qualcun altro..
In ogni caso, se non va troppo OT, di cosa avevi bisogno?
-
Re: HMR-2000 - Unbricking e uso JTAG
Per chi fosse interessato, esiste una console seriale (+è3.3V) con convertitore USB basato sul chip Silicon Labs CP2102 a circa 10 euro (spese incluse) su Ebay.
Console seriale +3.3V USB (chispet CP2102) - Ebay
In questo modo è possibile usare questa console anche su PC senza interfaccia seriale (tutti i PC recenti).
Altro lato positivo la non necessitÃ* dell'alimentazione a +3.3V che potrebbe creare danni se collegata al pin sbagliata.
Con questa interfaccia servono solo TX / RX / GND.
Silicon Labs CP2102 - Driver (Windows/Mac/altri s.o.)
Come programma terminale in Windows oltre a Hyperterminal si possosno usare i programmi freeware Putty (meglio la versione realmente portable di Jakub) o Teraterm Pro.
Putty portable by juakub
Teraterm Pro 4.77
Ultima modifica di bovirus; 11-May-2013 alle 11:28 AM
-
22-July-2013, 01:25 PM #10
Junior
Re: Unbricking e uso JTAG per Realtek RTD 1283
Salve, ho uno emtec S800 che credo sia in questa situazione di brick.
Un giorno lo avevo programmato per registrarmi la MotoGP, quando sono tornato a casa ed ho provato ad accenderlo, questo faceva come da voi descritto: arrivava con il display alla situazione finale e poi faceva il refresh.
Ho provato a fare l'aggiornamento del firmware (modalitÃ* recovery, NON quella attraverso il menù), luce rossa mentre lo faceva, ma ad un certo punto puff è andata via la corrente.
Ho provato a riaccenderlo quando la corrente è tornata e faceva il solito difetto, solo che ora se provo a fare lo aggiornamento del firmware rimane fisso sul logo emtec.
Ho provato a staccare lo HD e rifare la procedura di aggiornamento, ma niente....
Mi hanno consigliato di guardare questo vostro post, ma le mie conoscenze di elettronica non sono adeguate per la prima parte.
Leggevo che ci sono interfacce giÃ* pronte che potrei attaccare allo spinotto da voi indicato e che potrei collegarle al mio notebook?
Potreste darmi ulteriori delucidazioni e dirmi se questa procedura da voi descritta va bene anche per il mio S800?
PS leggevo che le chiavette da usare per l'aggiornamento NON devono essere di tipo U3. La mia è una Sandisk ma che ho riformattato in FAT32 subito appena presa e con il sw della Sandisk ho controllato che non supportasse più tale standard.
Ringrazio anticipatamente per ogni aiuto o info.
Tag per Questa Discussione
Permessi di Scrittura
- Tu non puoi inviare nuove discussioni
- Tu non puoi inviare risposte
- Tu non puoi inviare allegati
- Tu non puoi modificare i tuoi messaggi
-
Regole del Forum