Buscar este blog

domingo, 8 de noviembre de 2015

Mazda CMU v33: Desactivar Watchdog Timer

Si eres de los que antes de probar en una VM cualquier cambio a un sistema, ya sea modificando un script, eliminando o sobre-escribiendo archivos, etc; sé bienvenido al grupo de los “Manotas” jajaja. Aún recuerdo a mi excelso M. en C. Escobedo de la Heroica ESIME que decía que siempre que un ñoño podía hacer algo bien, llegaba el nombrado arriba y lo echaba todo a perder; claro que yo ni entraba a clases, así que yo salgo bien librado ¡Ja!

Al tocar “en vivo” el CMU corres el riesgo de que el archivo que tocaste contenga errores en el script (bugs), provocando que el WatchDog timer no reconozca el correcto funcionamiento en el sistema y caiga así en un reinicio en bucle (reboot loop), haciendo que el Infotaintment de tu Mazda se reinicie hasta que mueres, ó que se te acabe la batería, y que seguirá haciendo aunque le pongas una nueva. 

Cuando tu CMU entra en este estado, resulta imposible conectarte a través de SSH para intentar revertir los cambios, pues el Watchdog timer lo reiniciará tan rápido que ni el DHCP puede asignarle una IP a tu Mazda. Así que no podemos regresar a un estado anterior. Lástima que aquí no aplique mi Ctrl+Z, ¡ayy u_u!

Por allá en la interné, oz_paulb desarrolló un script que desactiva el Watchdog timer  aprovechando una herramienta que Mazda utiliza (Mazda Retrieval Tool) para extraer un diagnóstico del estado del sistema; sí, pueden ver cuántas veces te has conectado, todo lo que le has movido y todo, TODO tu porno, bueno... no exageremos, quizá eso no, ¡fiiuuf! 

Vamos a recuperar el acceso, sigue los siguientes pasos:

Prepara todo: 
1.- Descarga el siguiente archivo 
2.- En Linux, asegúrate de instalar fping y sshpass:
     apt-get install fping sshpass
3- Abre tu consola1 y ve a la dirección donde extrajiste el Zip
4.-Conecta tu CMU a través del adaptador USB/Ethernet.
5- Ejecuta el siguiente comando:

./fix_watchdog.sh IPADDR

IPADDR2 es la dirección IP que tu DHCP asignó al Infotainment; por ejemplo, a mí un router Huawei me asignó la 192.168.1.73

El script correrá indefinidamente hasta que logre desactivar el Watchdog timer

¡OJo! No todos los DHCP asignarán la misma IP, puedes modificar el rango en el que asignarás las IP y así saber cuál tendrá. Tienes que modificar el script para que pueda funcionar con la que tú obtengas. 

Si no funciona, puedes intentar con la IP original del script, 192.168.42.1 y poner a tu computadora en 192.168.42.2 

6.- Una vez que el script detecte que el Watchdog timer se ha desactivado, el Infotaiment responderá inmediantamente, mostrará en pantalla que se ha logrado desactivar. Entonces podrás modificar, insertar o eliminar el archivo que causó que el sistema entrara en este reboot loop

Notas
1.- Puedes hacerlo también desde MAC; el Zip trae ambos scripts, ejecuta el que corresponda.
2.- No podemos saber la IP por el reinicio que arroja el Watchdog timer, pero puedes saberlo si limitas el rango de IP de tu DHCP. 

Toma en cuenta que este script no desactiva el Watchdog timer por siempre, solo lo hace una vez cada que lo ejecutas. Si tienes problemas, tienes que repetir el proceso desde el paso 4. Obvio no es recomendable que el script sobreviva al reinicio, pues este circuito está diseñado precisamente para los manotas como tú.


Espero te sirva y al menos dejes de ser “el que va por las tortas” del equipo, ¡Ja!


Todo el crédito y reconocimiento a oz_paulb.

Bites

No hay comentarios.:

Publicar un comentario