You are on page 1of 10

Recuperarea unui mort MMI 3G și 3G Plus

De Keldo Gliana - scris Q2 2014, actualizat Q1 2015 - Versiunea 3

Rezumatul documentului:
Citiți acest document pentru că probabil ați avut o actualizare nereușită a firmware-ului pe unitatea MMI 3G
sau 3G Plus sau este posibil să vă fi ucis MMI-ul în timpul hacktivării.

Există două categorii principale de defecte, 1) defecte hardware, 2) defecte software. Acest document acoperă
numai repararea defecțiunilor software.

Simptomul defecțiunilor software variază de la MMI care nu pornește deloc (ecran negru) cu posibilitatea de
rotire internă a HDD-ului, la toate luminile MMI aprinse și ventilatorul care se rotește rapid, la pornirea MMI,
dar, de asemenea, nu obțineți lumină de fundal pe panoul de control al butonului.

Scop:
Scopul acestui document este de a vă ajuta să încercați să vă recuperați MMI-ul mort, acest lucru se face
accesând MMI prin comunicarea terminalului RS232 (cunoscut și sub numele de port COM). Există mai multe
tehnici care pot fi utilizate pentru a remedia defecțiunea, tehnicile "zmodem" sau IPL (Initial Program Load) pot
fi utilizate pentru a împinge imaginea sistemului de operare înapoi în cipul flash al MMI.

Aplicare:
Toate informațiile din acest document se referă la MMI 3G 9307/9308. Cu toate acestea, în teorie, toate
celelalte variante MMI (9309, 9411, 9498 etc.) ar trebui să fie aceleași.

Disclaimer:
Acest document vă este oferit gratuit, nu ezitați să învățați și să beneficiați de el. În niciun moment nu îmi
asum responsabilitatea pentru acțiunile tale sau pentru oricare dintre notițele mele care te-ar putea induce în
eroare. Prin urmare, și la fel ca toate celelalte documente ale mele, spun "utilizați pe propriul risc". Am
reparat 50+ unități MMI din 16 țări din întreaga lume. Deci, atunci când totul nu reușește, puteți să-mi postați
MMI-ul (sau doar placa de bază) și îl voi repara și îl voi posta înapoi. Repar toate tipurile de defecțiuni
hardware și software la prețuri foarte accesibile. Contactați-mă pentru a afla.

Unitate MMI deschisă:


Deschideți unitatea MMI deșurubând toate șuruburile de sus și de jos.
1. Deschiderea capacului superior

1 | Pagină
2. Scoateți cablul DVD flexi și apoi scoateți hard disk-ul

Există un știft mic care ține unitatea, trebuie doar să împingeți ușor clipul (unde săgeata este îndreptată în
imaginea de mai sus) și unitatea ar trebui să iasă.

3. Scoateți cablul flexibil care vine de la panoul frontal (capătul albastru).


4. Dacă nu ați făcut deja acest lucru, întoarceți MMI cu susul în jos și scoateți cele două șuruburi
care țin panoul facia, vezi mai jos:

5. Acum mergeți mai departe și scoateți toate celelalte șuruburi marcate cu cercuri roșii.

2 | Pagină
6. Acum mergeți mai departe și scoateți panoul facia.
7. Până acum ar trebui să fiți în stadiul prezentat mai sus, dacă nu, faceți-vă drumul pentru ao realiza.
8. Acum mergeți mai departe și scoateți placa de bază. Veți avea două file pentru a împinge pentru a
elibera placa de bază (acestea sunt securizate de partea din față a plăcii), de asemenea, încercați să
evitați plasarea greșită a pastelor termice.
9. Placa de bază este afară și arată astfel:

10. Suntem interesați de conectorul evidențiat în imaginea de mai sus, familiarizați-vă cu acesta.
11. Fie găsiți-vă unul dintre acești conectori ai slotului Card Edge:
Conector margine Conector Card Edge pentru cablu Conector IDC Card Edge
card panglică

3 | Pagină
SAU
Faceți lucrurile în mod ieftin și urât lipind firele direct pe placă. Alegerea este a ta, dar trebuie să urmezi
schemele de mai jos, așa că hai să identificăm care parte este care:
Acesta este TOP:

Acesta este BOTTOM:

Vă rugăm să rețineți: În limba germană, a fost odată o practică obișnuită etichetarea Bestückungsseite (partea de
asamblare) cu BS și Lötseite (partea de lipit) cu LS. Din fericire, acest lucru nu mai este adecvat ca mediu tehnic în care
engleza este mai frecventă, abrevierea "BS" poate fi înțeleasă greșit ca "partea de jos"! Prin urmare, recomandăm o
inscripție uniformă folosind TOP și BOTTOM pentru a indica laturile superioare și inferioare.

Funcționa Pin
RxD Sus – Pinul 5
TxD Partea de jos – Pinul 5
Sol Partea de jos – Pinul 10

Dacă nu aveți un computer cu port COM (RS232) veți avea nevoie de un adaptor USB ^ UART de bună calitate care are
cip FT232RL, vă recomand ceva de genul:

SA
U

Principalul lucru de reținut este să conectați RxD și TxD MMI în mod oglindit atunci când vă conectați la adaptorul / cablul
RS232, acest lucru pentru a permite tipul de comunicare gură la ureche. Mai important, trebuie să faceți un comutator în
circuit pentru a bloca canalul RxD de pe MMI. Acest lucru este necesar pentru procedura IPL, ceva de genul:

FT232R Stare normală MHI 3G FT232R IPL Stare MHI 3G

RxD —
— ______TxD
RxD -------------- ______TxD

GND -------- --------GND GND ------------- --------GND
-------------------------------------------------------

____________________ este comutatorul -------- RxD


TxD -------- -------- RxD
adaptorului 1 Acesta este J |
TxD --------------
comutator adaptor

12. După conectarea firelor sau a conectorului Edge, puneți placa de bază, hard disk-ul, DVD-ul,
pastele termice, șuruburile, placa facia și orice altceva în carcasa metalică, doar în ordine
inversă. De la pasul 10 înapoi la pasul 2.

13. Configurați portul COM cu următoarele setări:


Port: 1 – 4 (doar pentru a simplifica lucrurile)

4 | Pagină
Viteza: 115200 pentru varianta MMI 9303, 9304 și altele. (viteza maximă 9302 trebuie să fie 57600)
Biti de date: 8
Biti stop: 1
Paritate: nici unul
Controlul debitului: XON / XOFF

14. Obțineți o aplicație terminală bună, cum ar fi TeraTerm sau PuTTY

15. Conectați totul și începeți depanarea:


Dacă MMI nu este complet mort, atunci încercați să depanați înainte de a încerca să încercați să zmdem,
jtag sau eliminarea oricare dintre jetoane.

16. Iată un exemplu de plan de depanare:


A. Porniți MMI în modul normal (niciunul în modul IPL)
B. Verificați textul care apare în fereastra terminalului și încercați să înțelegeți unde este defecțiunea.
C. Încercați să rezolvați problema, consultați un administrator QNX sau Linux sau contactați-mă
pentru îndrumare. D. Porniți MMI în modul IPL
E. Pornire IFS de urgenta
F. Re-flash de pe carduri SD
G. Ștergeți anteturile FPGA, rădăcina IFS și declanșați recuperarea de urgență
H. Blocați persistența goală și așteptați până când MMI îl reconstruiește.
I. Bolo bliț
J. Program cip V850
K. Utilizați imagini personalizate ale sistemului de operare de recuperare
L. Zmodem imaginea ifs-root.ifs.
M. Conectați JTAG și accesați tot spațiul flash
N. Dacă nu v-ați recuperat până acum, este posibil să nu vă puteți recupera niciodată, așa că luați în
considerare postarea MMI.

17. Cum să inițiați procesul IPL:


a. Porniți comutatorul adaptorului RS232 (sau conectați cumva RxD MMI la solul adaptorului)
b. Reporniți MMI folosind cele 3 butoane de repornire.
c. Opriți comutatorul adaptorului (scoateți conexiunea dintre RxD MMI și masă)
d. MMI va intra acum în modul de pornire IPL.

Vă rugăm să rețineți: Acest IPL este întotdeauna la adresa 0 și se activează numai atunci când portul
terminalului RxD al MMI este conectat la portul GND la pornire. În caz contrar, MMI caută în antetul
memoriei ifs-root și fpga, atunci când acestea sunt găsite, atunci declanșează unitatea MMI în ele.

Înțelegerea semnificației textului în fereastra Terminal

Capitolul 1 – Încărcarea sistemului de operare normal ifs-root.ifs


Fereastra Terminal ar trebui să vă ofere suficiente informații pentru a afla în ce etapă ați ajuns și de unde să
începeți depanarea, o linie similară cu cea evidențiată mai jos este un bun exemplu:

Imagine de pornire @680000 ...


Startup: , construit 2011/07/19_09-41-26_UTC
RAM : 128 MB @0x08000000
RAM : 128 MB @0x40000000
NVRAM: 28 MB @0x5e400000
RAM : 228 MB @0x50000000
FLASH: 128 MB @0x00000000

5 | Pagină
IPL: Audi 3G 9308 (SH7785) / QNX 6.3.0 [PL_qnx_ipl-3g_9308-sh7785_08253A, construit 2008/06/18_15-16-25_UTC]
CPU: SH7785 (>= a 5-a tăiere, modul clk 20. 4xDDR), 792MHz
RAM: 512 MB (probat, DBCONF = e30002)
FLASH: Spansion S29GL512N (32bit): 512 sectoare x 256K
FPGA: PL_MMI3G_FPGA_9308_D1_09324A (0ms)

Marca de moda veche gasita pe IFS @0x1c0000: .zero=0x3000001e


Marcă de modă veche găsită pe IFS @0x680000: .zero=0x10000000

Imagine de pornire @680000 ...


Startup: , construit 2011/07/19_09-41-26_UTC
RAM : 128 MB @0x08000000
RAM : 128 MB @0x40000000
NVRAM: 28 MB @0x5e400000
RAM : 228 MB @0x50000000
FLASH: 128 MB @0x00000000
Eșua

Exemplul de mai sus spune că MMI nu a reușit să pornească atunci când a încercat să abordeze imaginea de
lansare 0x680000 și aceasta este problema, deoarece un IFS bun ar trebui să fie localizat la adresa 0x780000.
Deci, o soluție ușoară pentru acest lucru ar fi să porniți MMI cu comandă:
Cizmă 780000

Un incident ca acesta poate apărea datorită faptului că MMI a fost intermitent cu un firmware personalizat
care avea IFS de la adresa 0x680000 și l-a rupt. Dacă MMI pornește ok cu "boot 780000", atunci ar trebui să
intrați în meniul de inginerie și să îl refulați imediat cu firmware-ul potrivit.

Iată o listă de informații despre imagine pentru 9307, 9308 și 9309:


Imaginea nr. Adresa imaginii, numele imaginii Porni Capăt Mărime
2. 0x00000000 IPL 63264 262144 256KO
3. 0x00040000 FPGA 746472 786432 768 KO
4. 0x00100000 FGA DE URGENȚĂ 746472 786432 768 KO
5. 0x001C0000 IFS URGENTA 4,666,284 6,029,312 5888kb (5MB)
6. 0x00780000 IFS - RĂDĂCINĂ 36866456 50855936 49664KB (48MB)
7. 0x03800000 EXTINDEREA EFS 23,068,672 58,720,256 57344kb (56MB)
8. 0x04E00000 SISTEMUL EFS 20971520 20971520 20480KB (20MB)
9. 0x06200000 PERSISTENȚA EFS 30,408,704 31,457,280 29696KB (29MB)
10. 0x07f00000 BIOS
11. 0x08000000 SFÂRȘITUL BLIȚULUI

Aceeași listă poate fi extrasă pentru alte modele și variante utilizând fișierul metainfo2.txt de pe discurile
firmware. Informațiile sunt listate în secțiunea aspect imagine.
Capitolul 2 - porniți în emeg prin IPL și reflash
Puteți porni oricând MMI în modul IPL (descris mai sus), Când fereastra terminalului afișează " = > ", tastați
ajutor și apăsați Enter, ecranul va fi ca mai jos:
IPL: Audi 3G 9308 (SH7785) / QNX 6.3.0 [PL_qnx_ipl-3g_9308-sh7785_08253A, construit 2008/06/18_15-16-25_UTC]
CPU: SH7785 (>= a 5-a tăiere, modul clk 20. 4xDDR), 792MHz
RAM: 512 MB (probat, DBCONF = e30002)
FLASH: Spansion S29GL512N (32bit): 512 sectoare x 256K
FPGA: PL_MMI3G_FPGA_9308_D1_09324A (0ms)
Intrând în CLI, tastați "?" sau "ajutor" pentru ajutor
=> ajutor
? - alias pentru "ajutor"
BCONF - Configurare display boot manager
BIOS - porniți BIOS-ul
Boot - imagine de boot în memorie / flash
diag_p1j - diagnostic pentru problema jitter-ului ceasului PLL1
download - download IFS over serial line (sendnto protocol) echo - echo args
fpga - încărcați FPGA din imagine în memorie / flash
Go - Sari la "ADDR"
Ajutor - Imprimare ajutor online
HWCONF - Configurare hardware dump
MD - afișaj de memorie
MEMPERF - Test de performanță a memoriei (benchmark)
Memtest - Test de memorie
MT - alias pentru "memtest"
PCI - listează dispozitivele PCI
qinfo - afișează informații despre construirea QNX
rsupdate - modul de actualizare Query Read Shifter (soluție pentru limitarea SH7785 #48) RZ - alias pentru 'Zmodem'

6 | Pagină
scanare - scanare bliț pentru imagini (pachete FPGA, IFS, BIOS)
versiune - versiune program de imprimare
zmodem - descărcați IFS sau FPGA prin linia serială (protocol Z-Modem)

Acum puteți încerca să porniți în emergency ifs (cunoscut și sub numele de sistem de recuperare a sistemului

de operare), tastând următoarea comandă: boot 1c0000

Dacă sistemul de operare de recuperare este valid, atunci MMI va porni, veți vedea ceva de genul:
=> boot 1c0000
Imaginea de pornire @801c0000 ...
Startup: PL_qnx_startup-sh7785_08362A, construit 2008/09/02_07-53-12_UTC
RAM : 256 MB @0x08000000
FLASH: 128 MB @0x00000000
Pagina sistemului la phys:0800a000 utilizator:0800a000 kern:8800a000
Pornirea următorului program la v88046840
Bine ati venit la QNX 6.3.2 (RL_qnx_os_632_PSP3_08124A) MMI3G Audi CONFIGURARE DE URGENȚĂ 9308 D1 09431A pornirea
driverului PCI
Registrele FPGA init ***
pornirea dev-ipc pentru IOC
inițializați driverul IPC
pornirea driverului de rețea
Pornirea driverului ATAPI - dispozitiv de configurare /dev/cam0
Pornirea devc-pty
Cale=0 - XILINX MMI3G_8
target=0 lun=0 CD-ROM(5) - DVD-ROM FJ-TEN DV-05FT2 Rev: 1B20
Cale=1 - XILINX MMI3G_8
target=1 lun=0 Acces direct(0) - TOSHIBA MK4050GA Rev: TG10
Pornirea driverului Flash
pornirea driverului SDCard
Începând cu niciun driver de rețea
IFS de urgenta este pornit. Aplicația de urgență încearcă să restaureze aplicația.
49169 rulează /usr/bin/devg-NVTIRM
DMA este dezactivat
DMA dezactivat, prioritate întrerupere fir = 100
49171 rulează /sbin/io-media-nvidia
49172 rulează /usr/sbin/io-display
49173 rulează /usr/apps/MMI3GEmergencyApp
Shell de urgență a început, reparați sistemul și reporniți din nou discplayer_init: IN
nvidia_render_manager_init: ÎN
# Aplicația FPGA valabilă 1
FPGA de urgență valabil 1
Dezactivarea organismului de supraveghere IOC
EmergencyApp-MMI3G: versiunea 22.30.1642, data fabricației 14.10.2009
< - MULT MAI MULT TEXT AM TĂIAT AICI -->
** DeveloperMode este dezactivat!!! **
** Sistemul se va opri în curând! **
** NU CLIPIȚI CU SCRIPTURI ÎN ACEST MOD!! **
***********************************************************
** Puteți activa DeveloperMode astfel: **
** ecou manechin > / HBpersistence / DeveloperMode **
***********************************************************
Setați DisplayStatus la 2
Activarea câinelui de pază CIO
Inițiați oprirea (după expirarea BEM)...
OnOff: proces eveniment IPC HWsample 209 HWvarianta 7 FinalShutdown 0

7 | Pagină
De aici există o comandă pe care o puteți rula pentru a opri oprirea automată a MMI după 60 de secunde,
executați această comandă:
ucide -9 MMI3GEmergencyApp

După rularea comenzii de mai sus, aveți acum timp nelimitat pentru recuperare, acum puteți reflash de pe
cardul SD, executând următoarele comenzi:
Model Firmware Comanda
3G (930x) 8R0906961DF flashit -o 0x00040000 -d -f /mnt/sdcard10t11/3/MU9308/fpga/41/default/SystemFPGA.hbbin
flashit -a 0x00100000 -d -f /mnt/sdcard10t11/3/MU9308/fpga-emg/41/default/SystemFPGA.hbbin
flashit -o 0x001C0000 -d -f /mnt/sdcard10t11/3/MU9308/ifs-emg/41/default/ifs-emg.ifs
flashit -o 0x00780000 -d -f /mnt/sdcard10t11/3/MU9308/ifs-root/41/default/ifs-root.ifs
flashit -o 0x04E00000 -d -f /mnt/sdcard10t11/3/MU9308/efs-system/41/default/efs-system.efs
flashit -o 0x06200000 -d -f /mnt/sdcard10t11/3/MU9308/efs-persist/41/default/efs-persist.efs

3G+ 8R0906961DG flashit -o 0x00040000 -d -f /mnt/sdcard10t11/MU9411/fpga/51/default/SystemFPGA.hbbin


(9411) flashit -o 0x00100000 -d -f /mnt/sdcard10t11/MU9411/fpga-emg/51/default/SystemFPGA.hbbin
flashit -o 0x001C0000 -d -f /mnt/sdcard10t11/MU9411/ifs-emg/51/default/ifs-emg.ifs
flashit -o 0x00680000 -d -f /mnt/sdcard10t11/MU9411/ifs-root/51/default/ifs-root.ifs
flashit -o 0x03100000 -d -f /mnt/sdcard10t11/MU9411/efs-extended/51/default/efs-extended.efs
flashit -o 0x03D00000 -d -f /mnt/sdcard10t11/MU9411/efs-system/51/default/efs-system.efs

3G+ 8R0906961DH flashit -o 0x00040000 -d -f /mnt/sdcard10t11/MU9498/fpga/41/default/SystemFPGA.hbbin


(9498) flashit -o 0x00100000 -d -f /mnt/sdcard10t11/MU9498/fpga-emg/41/default/SystemFPGA.hbbin
flashit -o 0x001C0000 -d -f /mnt/sdcard10t11/MU9498/ifs-emg/41/default/ifs-emg.ifs
flashit -o 0x00680000 -d -f /mnt/sdcard10t11/MU9498/ifs-root/41/default/ifs-root.ifs
flashit -o 0x03100000 -d -f /mnt/sdcard10t11/MU9498/efs-extended/41/default/efs-extended.efs
flashit -o 0x03D00000 -d -f /mnt/sdcard10t11/MU9498/efs-system/41/default/efs-system.efs

După rularea fiecărei comenzi flashit veți vedea un proces în 3 etape; Ștergeți, programați și verificați.

Ştergerea...
programare...
Verificarea...
După ce ați finalizat toate comenzile flashit pentru MMI, puteți continua și reporni.

Notă: Dacă MMI pornește cu toate luminile aprinse și ventilatorul se rotește rapid, atunci este foarte puțin
probabil să îl puteți recupera singur, cipul V850 va trebui să fie programat cu fișierul
D1_OS81050_FW_V01_10_07_CS_V02_01_11.ipf de pe discul firmware. Am scripturi speciale pentru a efectua
acest lucru. Programarea se face prin pornirea dispozitivelor "dev-i2c- hbfpga" și "dev-inic-flasher", apoi adresa
IPC-SWDL cu comanda sendReqDownload, sintaxele sunt: cmnd: 34h \ addr: 01h 00h 00h \ tip: 01h \ format:
06h \ dimensiune: 01h 00h 00h \ max blk len: 00h FFh...

ștergerea V850 ... ***********************


CHBSWDLMMI3GFileData : Lungimea este de 65536
IPC-SWDL: startErase: addr = 10000h, dimensiune = 10000h, tip = 1h / IOC_BOLO
IPC-SWDL: sendReqDownload: (cmnd) 34h (addr) 01h 00h 00h (tip) 01h (format) 06h
(dimensiune)
01h 00h 00h (obiectiv maxim blk) 00h FFh terminat
****************** pro ***********************
fes
programare V850 ... *********************** CHBSWDLMMI3GFileData : Lungimea este de 65536
Lucrare terminată ********************
****************** verificarea V850 ... ***************** CHBSWDLMMI3GFileData : Lungimea
este de 65536 ************ lucrare terminată ******** ************ GATA! Capitolul 3 - Care
este cea mai bună comandă rapidă de recuperat?
Este absolut esențial să încercați mai întâi să porniți în imaginea de recuperare de urgență, așa cum se explică
în capitolul 2 și apoi să încercați să reflash... Dar dacă nu vă puteți găsi drumul în această metodă complexă,

8 | Pagină
atunci puteți încerca funcția "pilot automat".
Dacă a apărut o eroare critică (de exemplu, o pană de curent) la efectuarea intermitenței pe MMI, va avea loc o
programare de urgență. Acest lucru a fost proiectat de fabricarea MMI pentru a automatiza recuperarea,
numesc această caracteristică "pilot automat", deoarece în calitate de client veți vedea o informație foarte
limitată pe afișaj, intrarea dvs. nu este necesară, procesul complet de recuperare este automatizat.
Dar pentru a declanșa acest proces automat, trebuie să urmați câțiva pași. Această metodă va șterge imaginile
rădăcină FPGA și IFS, iar la următoarea repornire MMI unitatea este forțată să intre în modul de recuperare
automată a pilotului.
Faceți acest lucru:
A. Porniți aparatul în modul IPL (descris la pasul 17).
B. Boot in emergency IFS (cunoscut si ca recovery OS), tastand urmatoarea comanda: boot 1c0000

După rularea comenzii de mai sus și undeva spre sfârșit, înainte de a vedea Activarea textului IOC
watchdog , afișajul MMI devine roșu, cu cuvintele AppFPGA este valid și apoi încearcă să se închidă în 60 de
secunde.

C. Cele 60 de secunde date pentru a efectua un anumit proces nu sunt suficiente, prin urmare, va trebui
să extindeți acest lucru, trebuie doar să executați următoarea comandă:
ucide -9 MMI3GEmergencyApp

D. Ștergeți anteturile blocului FPGA executând comanda:


flashit -o 40000 -e 1000

E. Stergeti anteturile blocului IFS-root ruland comanda:


flashit -o 00780000 -e 1000

F. După ce executați comanda de mai sus, va trebui să introduceți cardul SD firmware în unitatea MMI,
asigurați-vă că firmware-ul este proiectat pentru această unitate MMI specială.

G. Reporniți MMI

H. Când MMI începe de data aceasta, ar trebui să afișeze ecranul verde de mai jos cu "Descărcare de
urgență - proces de ștergere":

9 | Pagină
I. Fiecare proces de ștergere finalizat este urmat de un proces de programare, ca acesta:

J. Procesele de ștergere și programare sunt efectuate de mai multe ori, până când toate componentele
MMI au fost actualizate. Așteptați până când procesul de programare este finalizat și sistemul
repornește automat.

K. Odată ce MMI a fost repornit automat, ar trebui să pornească cu succes.

Am pus acest document împreună din colectarea multor informații de pe multe forumuri online diferite;
Conversații PM, note offline, experiență practică, multe nopți nedormite de inginerie inversă ... cu scopul de a
vă ajuta să vă recuperați MMI-ul cărămizit și sper că vă ajută.

SFÂRȘITUL DOCUMENTULUI

10 |
Pagină

You might also like