-->

domingo, 30 de março de 2008

Ressuscitando um drive de DVD/CD morto

Condições:
  • Não importa se é drive de CD, DVD, gravador, combo... Mas precisa ser baseado em chipset Mediatek (ela, como sempre...)
  • Só resolve problemas causados por firmware (instalação errada ou incompleta, danos diversos ao firmware, etc);
  • A memória do seu drive precisa ser do tipo eeprom/flash (não confundir "eeprom" com "eprom"). Ou seja: seu drive precisa ser do tipo atualizável. A maioria dos drives modernos é.
  • Precisa ser IDE ou SATA.

Isso não é nenhuma novidade. Já é possível há mais de cinco anos e talvez desde a década de 90, mas só agora tive a necessidade/oportunidade de comprovar que funciona, ressuscitando um LG DRD8160B.

Isso só é possível porque a Mediatek criou um mecanismo nos seus chipsets de mídia óptica, assim como o existente nos seus chipsets de DVD players, que permite a leitura/gravação do firmware bastando que a CPU esteja energizada e funcionando. No caso dos drives é ainda mais fácil que nos DVD players, porque não é preciso abrir ou soldar coisa alguma. Tudo é feito pela própria conexão de dados (IDE/SATA) do drive.

Importante: Mesmo que o drive não esteja mais sendo reconhecido no BIOS, o procedimento funcionará. O software usado se comunica diretamente com a interface, sem precisar da ajuda do BIOS do seu PC.

Se seu drive morreu e você nem sabe o motivo, experimente esse processo. Alguns problemas de firmware acontecem "do nada" e se seu drive for compatível talvez volte à vida :)

O que você precisa:
  • O firmware específico para o seu drive;
  • Um disco de boot DOS (HDD, CD, disquete, USB... qualquer coisa que te leve a um prompt de DOS puro);
  • O software mtkflasher (mtkflash.exe).

Coloque mtkflash.exe, mtkflash.typ (se houver) e o seu arquivo de firmware no disco de boot e inicie por ele. Quando estiver no prompt você poderá usar mtkflash.exe.

A sintaxe do mtkflasher é a seguinte:

mtkflash <porta> <comando> <opções> <arquivo de firmware>

<porta> é um número de 1 a 4 definido da seguinte maneira:

1: Master na Primária
2: Slave na Primária
3: Master na Secundária
4: Slave na secundária

<comando> (listando apenas os mais usados)

R : Ler o firmware
W: Gravar o firmware
C: Checar o modelo da eeprom

<opções> (listando apenas os mais usados)

/B: Usar o formato binário ao ler/gravar
/M: Ler/Gravar em arquivo único (não separar em arquivos de 64KB)


Para conhecer todos os comandos e opções possíveis, simplesmente execute mtkflash.exe sem nenhum parâmetro.

Como gravar lg.bin no Slave da Secundária:


mtkflash 4 W /M /B lg.bin

Como saber se o drive slave na primária é compatível sem precisar abrir:

mtkflash 2 C

Se for compatível mtkflash dirá qual o modelo da eeprom utilizada ou pelo menos dirá que não a conhece. Se ficar travado exibindo algo parecido com:

Port:170, Master/Slave: b0

Então ou o drive não é Mediatek, ou muito velho e incompatível ou está realmente morto.

Formato binário e formato hexadecimal

Alguns arquivos de firmware para CD/DVD são distribuídos no "formato hexa", que é apenas um arquivo ASCII (texto puro) com instruções sobre o que gravar e onde. Um arquivo assim geralmente tem a extensão .hex e se for aberto no notepad você verá algo parecido com isto:

:8000000002EF41020011D9D4CBC6C2ED023F65222232000
2127790F0547409F0C22EC253E53CB41102D2412200000002
97B9D310AF01C3C0D08E558F56E42556F55674163555F5559
0F01FE020E7F990F030E555F0A3E556F0A3EDF0D0D092AF
22D310AF01C3C0D08E578F58E42558F55874163557F55790F
01FE020E7F990F030E557F075
:80008000A3E558F0A3E090F01FE020E7F990F032E0FFD0

E assim por diante. Basicamente são várias linhas iniciadas por dois pontos (:) seguidos por uma seqüência de 0..9 e A..F.

Se o arquivo de firmware não tiver essa estrutura, é um arquivo binário. Versões antigas do mtkflasher esperam um arquivo hexa por default e você precisa colocar a opção /B se estiver com um arquivo binário ou quiser ler como binário. Já as versões mais novas nem apresentam essa opção no help e provavelmente detectam automaticamente o formato.

Referências:

  • MTxxxx DVDROM Firmware Updates - Página do hacker etna onde você encontra várias versões do mtkflasher e firmwares para vários drives de DVDROM baseados em Mediatek.

Este texto não está completo e eu poderei acrescentar/modificar nos próximos dias sem aviso. Eu estou estudando alguns problemas de gravação e a possibilidade de usar uma placa baseada em Mediatek como gravador de eeprom PLCC32 genérico.

[06/04/08] Por diversas razões, cheguei à conclusão de que não é possível construir um gravador genérico usando essas placas. Infelizmente.

Até onde se sabe a Mediatek foi a única a criar esse tipo de mecanismo e só seus drives podem ser ressuscitados. Questões que não sejam claramente sobre drives baseados em chipset Mediatek serão ignoradas.

2 comentários:

  1. Hm... e como identifico se meu DVD é baseado em chipset Mediatek ?

    ResponderExcluir
  2. Abrindo e olhando os dois lados da placa de circuito principal.

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.