Reparación de CMU bloqueada
Hola,
En realidad, tu CMU está bloqueada. Hice exactamente lo mismo que tú, donde mi coche se apagó justo después de instalar el paquete a prueba de fallos. Afortunadamente, hay una forma de recuperarse, lo cual no es tan fácil de hacer, pero es bastante factible si no tienes miedo de desmontar la CMU, abrirla y conectar algunos cables.
Explicación completa:
Gracias a este sitio web:
http://www.2x4logic.com me ahorra mucho tiempo para averiguar cómo funciona el sistema. El proceso de actualización de la CMU está muy mal diseñado, ya que tiene muchos puntos de fallo donde termina con un dispositivo bloqueado que ya no arrancará. La forma más fácil de hacerlo es apagar la CMU después de instalar el paquete a prueba de fallos. Básicamente, lo que sucede es que un pequeño chip flash que contiene el programa de arranque tiene una bandera que decide en qué sistema debe arrancar. Puede ser el sistema Mazda normal o el software «
a prueba de fallos». Cuando instalas el paquete de actualización a prueba de fallos sin el segundo paquete de reinstalación, el modo de selección de arranque del chip flash se establece para arrancar en la partición ibc1, que no coincide con el sistema Mazda actual. Esta partición ibc1 se actualiza mediante el paquete de reinstalación. Por lo tanto, está bloqueado porque ya no puede arrancar.
La solución más fácil aquí es cambiar el valor de selección de arranque en el chip flash para arrancar en ibc2 (a prueba de fallos). Esto normalmente lo hace el proceso de actualización, después de que el paquete de reinstalación se verifica para su integridad. Aquí, vamos a hacerlo forzando el arranque. Iniciará el software de instalación «
a prueba de fallos», que nos dirá que la instalación falló y que podemos volver a intentarlo poniendo una llave USB en el coche con un paquete de reinstalación correcto. Entonces, la instalación continuará y finalizará.
Tutorial:
Aquí hay un tutorial paso a paso sobre cómo lograr esto. Ten en cuenta que puede ser difícil hacerlo si no entiendes lo que estás haciendo. Pero en caso de que tu CMU esté bloqueada (pantalla negra después de una actualización fallida o algo así) no tienes nada que perder, ¿verdad? Llevar el coche a un concesionario no te ayudará, simplemente te cobrarán por un reemplazo completo de la CMU, y eso cuesta mucho...
El chip flash se coloca en la parte posterior de la PCB de la CMU. Es una NOR SPI Flash. La idea es conectarse directamente a este chip y usar una raspberry pi (que tiene un bus SPI) para reprogramar la memoria.
Hardware requerido:
[* ]Una raspberry pi
[* ]Un clip de prueba de programador SOIC16 o 6x clips de prueba IC (usé clips de prueba)
[* ]Una placa de pruebas para hacer las conexiones
En la raspberry pi, necesitas instalar Raspbian (la versión Lite está bien). Desde una nueva instalación de Rasbian, configura la pi para que tenga SPI habilitado ejecutando:
Code:
sudo raspi-config
(habilitar SPI en Opciones de interfaz*)
sudo reboot
Instala algunas herramientas necesarias:
Code:
sudo apt-get update
sudo apt-get install build-essential libusb-1.0-0-dev libusb-dev git wget curl libpci-dev
Obtén una versión más reciente de flashrom:
Code:
git clone https://github.com/flashrom/flashrom
cd flashrom
make
sync
Apaga la alimentación de la raspberry.
Ahora la raspberry pi está lista. Desmonta la CMU de tu coche (busca en youtube un vídeo sobre cómo hacerlo, es fácil), desenrosca la PCB de la CMU y conecta los cables de la raspberry al chip flash como aquí (ver foto adjunta) y
http://www.2x4logic.com/mcbot-annotated.jpg
Enciende la raspberry pi. Y comprueba si se detecta el flash:
Code:
cd flashrom
./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Esto te dirá si se detecta un chip o no. De lo contrario, tu cableado no está bien. Cuando se detecta algo, flashrom puede decirte que se detectan varios chips diferentes. Esto se debe a que algunos chips del mismo fabricante pueden tener el mismo protocolo. Necesitas leer el modelo de dispositivo correcto de lo que está escrito en el chip. Yo tenía un MX25L6445E. Sé que algunas otras CMU pueden tener un modelo de chip diferente. También debería funcionar si flashrom puede detectarlo.
Luego, intenta leer la memoria y hacer una copia de seguridad:
Code:
./flashrom -r backup-cmu.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Lee atentamente lo que está haciendo flashrom para comprobar si hay algún fallo. Tuve que usar la opción -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" para seleccionar el modelo de chip correcto en flashrom, ya que estaba escrito al usar la opción -p (enumera todos los dispositivos detectados)
Una vez que tengas la copia de seguridad, modificamos el byte de selección de arranque dentro del archivo
Code:
cp backup-cmu.bin cmu-mod.bin
printf '\x00' | dd of=cmu-mod.bin bs=1 seek=65536 count=1 conv=notrunc
Ahora es el momento de escribir el archivo modificado en el flash:
Code:
./flashrom -w cmu-mod.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Lee el flash de nuevo para verificar que funcionó
Code:
./flashrom -r cmu.bin -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F" -V -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
Comprueba si el archivo coincide verificando la suma de comprobación
Code:
sha1sum cmu.bin cmu-mod.bin
La suma de comprobación debe coincidir, si lo hacen, el procedimiento está hecho. Es hora de desenchufar todo y volver a poner la CMU en el coche. La CMU debería arrancar en el sistema de recuperación a prueba de fallos y pedirte una llave USB con el paquete de reinstalación.
¡Buena suerte y feliz hacking! ;