Buscar este blog

Mostrando las entradas con la etiqueta watchdog timer. Mostrar todas las entradas
Mostrando las entradas con la etiqueta watchdog timer. Mostrar todas las entradas

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

Editar script para Watchdog timer. Mazda CMU


Este procedimiento es para modificar la dirección IP con la que se ejcutará el script que desactiva el Watchdog timer de tu Mazda. El script lo probé en un CMU v33.

Cada DHCP asignará una IP diferente a un equipo cada vez que te conectes a él, tardando algunos segundos en asignarla; así que si el CMU entra en modo reboot loop, el DHCP no tendrá tiempo de asignarle una, por tanto no puedes accesar a través de SSH para corregir el error.

Lo que hace el script es desactivar el Watchdog timer, encargado de verificar errores en el sistema y el responsable de reiniciarlo una y otra vez. Debemos modificarlo para que trabaje con la IP que nuestro DHCP asignará, pero... ¿cómo saberla? Solo ve a la configuración de tu router y limita el rango de IP a por ejemplo, 2, una para la lap con la que entrarás y la otra para el CMU.

Por otro lado, debemos modificar el script con la IP que obtendrá el CMU.

Solo necesitas el script y Linux.
1.- Descarga el siguiente archivo y extraelo donde gustes
2.- Ve a la ruta y abrelo en tu editor preferido. Yo usé vi
3.- Modifica la IP en la línea de IPADDR
4.- Guarda cambios y ya tienes listo el script para operar en la IP de tu DHCP
5.- Ejecuta el script con el CMU conectado a tu router a través del adaptador USB/Ethernet y en estado de reboot loop.
6.- El Watchdog timer se desactivará solo una vez, pero podrás modificar, editar, borrar, etc aquello que creas que hizo caer en este estado al CMU.





Bites.