Buscar este blog

domingo, 8 de noviembre de 2015

Mazda CMU v33: Reproducir videos en pantalla


Cuando uno adquiere una cosa con pantalla, lo primero que se le viene a la mente es: ¿se verán bien las pornDIGO... qué resolución tiene? de seguro trae reproductor de DVD (mínimo) o algo por el estilo, pero NO, no pinches tiene nada, T_T ¡te odio Mazda! 

Lo bueno es que hay personas que obvio se preocupan por el entretenimiento de sus pasajeros, ¡ah, qué buenos anfitriones de autos! y han desarrollado algunos métodos para explotar lo que Mazda sigue desarrollando a paso lento.

Hay tres métodos actualmente para poder reproducir videos en la pantalla de 7":
1.- Llamando el video desde un dispositivo externo y forzando a que la interfaz lo ejecute a través de una línea de comandos.
2.- Con la App para Android que corre a través del WiFi.
3.- A través de un dispositivo que se conecta físicamente al CAN; son algo caros y no les tengo mucha confianza que digamos; así como todos conmigo… ayyy u_u

Les explicaré como hacer los dos primeros, pues el tercero no tengo la oportunidad de probarlo. 

Primer Método 
Prepara todo:
1. Pon tu video (de preferencia no muy largo) montada en la raíz de tu USB.
2. Conecta la USB en cualquier puerto del panel.
3. SSHea a tu Mazda. 

En pantalla…
5. En el menú del audio, selecciona la USB. Al menos debes tener 1 archivo con extensión mp3, de lo contrario arrojará que no posee multimedia alguna.
6. Verás que comienza la música, déjala correr y ponle pausa. 

Nota: El nfotainment de Mazda quedará funcionando al 100% en segundo plano. Podrás mover cualquier perilla del control y no afectará la reproducción de la línea de código; aumenta o disminuye el audio a tu consideración. 
La línea para ejecutar el mp4 no es mío. Lo vi aquí. Debes seguir pasos que no le entendí, pero que seguro sí dijo en japonés ¡Ja!

Manos a la obra:
7. Ejecuta la siguiente línea desde la consola SSH (pon el nombre de tu archivo en lugar de "test)

gst-launch filesrc location=/mnt/sda1/test.mp4 typefind=true ! aiurdemux name=demux demux. ! queue max-size-buffers=0 max-size-time=0 ! vpudec ! mfw_v4lsink demux. ! queue max-size-buffers=0 max-size-time=0 ! beepdec ! audioconvert ! 'audio/x-raw-int, channels=2' alsasink

8. Si no te funciona:
Asegúrate de que el nombre de archivo esté bien escrito.
SI la consola te arroja que no puede encontrar el dispositivo, sigue esto:
1. En la consola, escribe: cd /mnt
2. Escribe ls
3. Podrás ver la lista de los dispositivos (sda, sda1, etc). Si lo que ves es sdb, sdb1, entonces solo debes cambiar la "b" por la "a" en la línea. O ponle un “?” en vez de la letra a ó b.

gst-launch filesrc location=/mnt/sd?1/test.mp4 typefind=true ! aiurdemux name=demux demux. ! queue max-size-buffers=0 max-size-time=0 ! vpudec ! mfw_v4lsink demux. ! queue max-size-buffers=0 max-size-time=0 ! beepdec ! audioconvert ! 'audio/x-raw-int, channels=2' alsasink


Te advierto que el script no es ideal, y solo hay tres maneras de detener el video:
a- Espera a que termine el archivo
b- En tu consola llama: Ctrl+C (obvio mantén apretado la tecla Ctrl y luego presiona C)
c- Cierra la consola desde la cual ejecutaste el script.

9.- Todo vuelve a la normalidad
10.- Ponte feliz, ¡ja!

Segundo Método (posible virus)
Lukasz desarrolló una aplicación para Android con la que podemos ejecutar los videos de una manera sencilla y que además nos brinda la oportunidad de pausar, manipular el timeline del video y elegir entre distintos videos guardados en la USB insertada, ¡wow, qué bonito!

Prepara todo:
1.- Crea una carpeta llamada “Movies” en la raíz de tu USB y guarda ahí tus videos.
2.- No olvides poner un archivo *.mp3 en la raíz de la misma.
3.- Conecta tu USB en cualquier puerto.
4.- Conecta tu Mazda por WiFi a tu Hotspot y anota la IP.

En pantalla…
5. En el menú del audio, selecciona la USB. Al menos debes tener 1 archivo con extensión mp3, de lo contrario arrojará que no posee multimedia alguna.
6. Verás que comienza la música, déjala correr y ponle pausa.


Nota: El infotainment de Mazda quedará funcionando al 100% en segundo plano. Podrás mover cualquier perilla del control y no afectará la reproducción de la línea de código; aumenta o disminuye el audio a tu consideración. 


Manos a la obra:

7.- Abre la App en tu Android
8.- Pon la IP que te asignó el HotSpot, deja el usuario y contraseña tal como están; si se borran, recuerda que es “root” como usuario y “jci” como contraseña. 
9.- Dale click a “Get list of movies” y selecciona un video. 
10.- Ponte feliz, ¡ja!

A diferencia del primer método, con esta App puedes pausar, detener e incluso cambiar entre diferentes videos a tu gusto. Es obvio que por ser una App nueva, tiene errores y a veces hay bugs; por ejemplo: si pones en segundo plano la App en tu Android, al momento de volver, parece que se desconecta y al momento de obtener de nuevo la lista de videos, ya no hace nada. Aun así, es el método más sencillo y rápido de reproducir videos en tu pantalla. 

11.- Todo vuelve a la normalidad
12.- Ponte feliz, ¡ja!







Bites, de chocolate =P

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.