Source: https://abrazalaweb.net/2015/10/mygica-atv586-cambiar-resolucion-hdmi-amlogic-s805/
Timestamp: 2018-07-22 18:34:01+00:00

Document:
Mygica ATV586 Cambiar Resolución HDMI a VGA (Amlogic s805) – Abraza la Web
Mygica ATV586 Cambiar Resolución HDMI a VGA (Amlogic s805)
Posted on: sábado, 17 octubre, 2015
El dispositivo Mygica ATV586 es un Android TV box con chip Amlogic S805, similar a otros muchos, pero con un sintonizador TDT incorporado.
Un problema que me surgió fue a la hora de conectarlo a una vieja TV LCD por la resolución de su única salida de video HDMI. Describiré poco a poco y con detalle todo…
Quizá esto sea válido para otros Android TV Box…
La TV es una Samsung de 15” LCD, con entradas de video RCA y VGA (con resolución 1024×768). Para conectar el Android TV box he usado sendos adaptadores de HDMI a video compuesto AV y de HDMI a VGA (ambos se encuentran fácilmente en ebay , son del tipo “mini adapter HDMI2AV / mini adapter HDMI2VGA”
No hay ningún problema con el adaptador HDMI a AV, pero la imagen que se ve en la pantalla tiene una calidad pésima:
Sin embargo, de esta manera, se puede seleccionar la resolución 1024×768 en el menú de ajustes de HDMI, y cambiando el cable HDMI de un adaptador a otro, es decir, sin apagar nada, conectarlo al adaptador HDMI a VGA, el resultado es mucho mejor, obteniendo la resolución correcta. La resolución 480p también funciona con este adaptador, pero con una calidad un poco peor que la VGA:
Pero al apagar (desenchufar) el TV Box, y volver a encenderlo, esta vez conectado con el adaptador HDMI a VGA, la pantalla no muestra ninguna imagen, advirtiendo con un mensaje de “Modo de video incompatible”
Se hacía necesario un análisis para solucionar el problema y disfrutar de la resolución VGA al apagar y encender el TV box
Para ello, y puesto que la imagen no será visible en la TV, se hace necesario poder acceder al MyGica mediante un PC, para ello instalé la app SSHDroid y la configuré para que arrancara al inicio de Android, y poder acceder desde un cliente SSH en el PC.
Tras consultar muchos foros, son ciertos archivos los que contienen los valores de la resolución de salida del HDMI
Consulté dichos valores en los dos casos anteriores, con el adaptador HDMI a AV y con el adaptador HDMI a VGA, ambos funcionando con imagen en pantalla:
El problema principal de la TV es que no acepta el modo 1080p ni 720p, el único que acepta es el 480p (y el VGA)
Conexión a la TV con adaptador HDMI2 AV
Adjunto capturas de pantalla de la sesión ssh mostrando los valores de algunos parámetros y archivos( /sys/class/display y /sys/class/amhdmitx/amhdmitx0 ). Antes de todo, y dado que el ATV586 viene rooteado, ejecuté la sesión de superusuario:
Existen otros archivos pero no cambian sus valores según la resolución.
Conexión a la TV con adaptador HDMI2 VGA
Adjunto capturas de pantalla de la sesión ssh mostrando los valores anteriores:
Se comprueba que los modos de EDID de la TV aparece uno nuevo correspondiente al VGA.
La Clave y la Solución
Uno de las pistas para resolver el problema está en el archivo (/sys/class/amhdmitx/amhdmitx0/vga_resolution_state) :
Al escribir Enable en él, aparece como modo disponible la resolución 1024x768p60hz en el menú de ajustes de HDMI del Android TV. Pero al reiniciar el dispositivo se inicializa de nuevo a Disable.
El archivo clave es uno de los scripts de inicio, /system/bin/set_display_mode.sh
Ahí se selecciona el modo de salida de video HDMI, y de ahí se pueden copiar los comandos necesarios para cambiar la resolución, siguiendo el código y viendo lo que hace.
Para editar este archivo es necesario montar la carpeta system en modo escritura (desde una Shell superusuario)
#mount -ro remount,rw /system
$ /system/xbin/su #mount -ro remount,rw /system
Lo primero que hice fue forzar la resolución a 480p, pues en la TV se veía imagen y así no causo problemas a la hora de conectar a otra pantalla.
Para ello se edita el script /system/bin/set_display_mode.sh a (justo antes de llamar a getAxis
### Fuerzo salida a 480p, para poder evitar el modo incompatible desde el principio con la TV
outputmode=480p
[…] ### Fuerzo salida a 480p, para poder evitar el modo incompatible desde el principio con la TV outputmode=480p ### getAxis […]
Una vez arrancado el TV Box, uso la aplicación de Google Play Script Manager para lanzar un script al inicio (boot), con permisos superusuario y en segundo plano (background) (existen muchos tutoriales para esto, y es muy sencillo). Eso hace posible que tras el arranque, y tras unos segundos con la pantalla en negro, todo vuelva a funcionar correctamente.
Script Para ScripManager (Boot + Background + Root)
echo Enable > /sys/class/amhdmitx/amhdmitx0/vga_resolution_state
echo 1024x768p60hz > /sys/class/display/mode
echo 0 0 1022 767 > /sys/class/video/axis
echo 0 0 1022 767 > /sys/class/graphics/fb0/window_axis
Ahora, por fin, puedo usar perfectamente my MyGica ATV586 con mi vieja TV LCD con la resolución 1024×768, apagar el dispositivo, volverlo a encender, etc…., sin perder la configuración.
Podría haber copiado todo el script anterior al final del script de inicio de MyGica /system/bin/set_display_mode.sh, y me habría ahorrado la app ScriptManager, pero no lo he probado…
androidHDMI a VGAtv box

References: Resolución 
 Resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución