jueves, 12 de noviembre de 2015

Raspberry Pi, ajustes de pantalla. Primeros pasos con Jessie (II)

Ajustes de pantalla

Generalmente la Raspberry Pi funciona bien con la mayoría de pantallas o TV, especialmente si la conectamos a través del cable HDMI, ya que se detecta el dispositivo de forma automática. Pero hay casos en que se producen problemas como: ruido en la imagen, que alguna parte de la pantalla quede oculta, que la imagen aparezca muy pequeña, y en el peor de los casos, que no se vea la imagen. Un problema habitual al conectarla a una TV es el overscan (la imagen no ocupa toda la pantalla sino que está rodeada por un borde negro). Podemos modificar los parámetros de pantalla para solventar estos problemas.

1. Eliminar el overscan ()
Uno de los problemas más comunes es el overscan (un borde negro que rodea el escritorio de Raspbian en la pantalla), mas o menos como muestra la siguiente imagen




Si solamente queréis modificar la opción de overscan activándola o desactivándola en la nueva versión de Raspbian Jessie podemos hacerlo siguiendo estos pasos. Desde el mismo escritorio de Raspbian vamos al botón Menú - Preferencias - Raspberry Pi Configuration, abrirá la siguiente pantalla



En la primera pestaña (System), encontramos en la parte inferior la opción Overscan que está a Enable, sencillamente la desactivamos haciendo click en Disable y hacemos click en el botón OK. Si los cambios no se aplican reiniciad la Raspberry Pi.

Otra forma de cambiar esta opción es desde la línea de comandos, abrimos una pantalla de terminal haciendo click en el icono




esta acción abrirá una pantalla de linea de comandos y ejecutamos el programa de configuración de raspbian con la orden sudo raspi-config y presionamos Intro en el teclado y aparece el menú de configuración como se muestra en la imagen inferior


Seleccionamos la opción 9 Advanced options y aparecerá la siguiente pantalla (hay que usar las flechas del cursor y el tabulador)


Seleccionaremos la opción A1 Overscan y aparecerá una nueva pantalla donde elegimos si lo queremos activar o no (hay que usar las flechas del cursor y el tabulador)


Una vez elegido si queremos desactivar (<disable>) o activar (<enable>) el overscan, presionamos Intro en el teclado y aparece la pantalla inicial de configuración



Nos colocaremos sobre la opción Finalizar (<finish>) y de forma automática Raspberry Pi nos preguntará si queremos reiniciar el dispositivo



Si deseáis ver el cambio ahora mismo elegid la opción Sí y el dispositivo se reiniciará en caso de escoger No, no veréis los cambios hasta que se reinicie.

Tened en cuenta que esto (desactivar el overscan ya sea en modo de escritorio o  en línea de comandos) lo único que hace es modificar un fichero de arranque de la RaspberryPi. El fichero es el config.txt, y la línea es la disable_overscan. Si necesitáis cambios más avanzados podéis editar directamente este fichero.


2. Modificaciones avanzadas de pantalla

Para cambiar los parámetros de la pantalla Raspberry Pi lee un fichero al arrancar, de manera que si queremos modificar los valores por defecto tenemos que editarlo, el fichero en cuestión es /boot/config.txt.
Para editar el fichero podemos usar la línea de comandos, en Raspbian Jessie al arrancar en modo de escritorio tendremos que abrir una pantalla de Terminal (tal y como ya os he explicado más arriba), una vez abierta  la pantalla escribiremos en la línea de comandos la orden sudo nano /boot/config.txt, presionaremos la tecla Intro del teclado (esto abre el fichero config.txt con el editor de texto llamado nano) y veremos que aparece una pantalla similar a la siguiente.



En el archivo veremos que aparecen múltiples líneas precedidas del símbolo #, este símbolo indica que la línea se ignora y por lo tanto no se tiene en cuenta su valor (al arrancar Raspberry Pi no se lee esta línea), si elimináis este símbolo de una línea Raspberry Pi al arrancar la próxima vez tendrá en cuenta este parámetro y usará el valor introducido en lugar de la configuración estándar. Seguidamente os muestro que significan cada una de estas líneas (en algunos casos vuestro fichero no contendrá algunos de estos valores pero si son necesarios los podéis añadir):
  • overscan_left : mueve la imagen hacia adentro desde el lado izquierdo, el número de píxeles indicado.
  • overscan_right mueve la imagen hacia adentro desde el lado derecho, el número de píxeles indicado.
  • overscan_top mueve la imagen hacia adentro desde el lado superior, el número de píxeles indicado.
  • overscan_bottom mueve la imagen hacia adentro desde el lado inferior, el número de píxeles indicado.
  • disable_overscan : generalmente con una pantalla o TV con conexión HDMI, es possible que la imagen tenga un borde negro alrededor, para eliminarlo hay que poner el valor de esta línea a 1.
  • framebuffer_width : este valor cambia el ancho de la consola, en píxeles, si el texto aparece muy pequeño en la pantalla disminuiremos el valor.
  • framebuffer_height : este valor como el anterior cambia la altura de la consola pero de forma vertical.
  • framebuffer_depth : cambia la profundidad de color de la consola en bits por pixel. el valor predeterminado es 16 (esto ofrece un abanico de 65536 colores, 8 bits correspondería a 256 colores, 24 bits unos 16,7 millones de colores y 32 bits alrededor de 1 billón  de colores).
  • framebuffer_ignore_alpha : si se pone el valor a 1 se deshabilita el canal alfa, que controla la transparencia en la consola (solo se debe usar si tras activar framebuffer_depth a 32 bits, se produce corrupción gráfica, pero no siempre soluciona el problema)
  • sdtv_mode : este parámetro solo afecta si usamos un modelo con salida de video compuesto (por defecto Raspberry Pi usa el estándar NTSC) se puden configurar los siguiente valores: 0 (NTSC, estándar de Norteamérica), 1 (NTSC-J, estándar Japonés), 2 (PAL, estándar para Reino Unido y otro países europeos), 3 (PAL-M, estándar vídeo Brasileño). En función del país y/o modelo de televisión tendréis que poner el valor indicado.
  • sdtv_aspect este parámetro solo afecta si usamos un modelo con salida de video compuesto, y modifica la relación de tamaño de la pantalla, los valores pueden ser: 1 (relación 4:3 muy usada en equipos viejos), (relación 14:9 para TV de pantalla ancha pequeña), (relación 16:9 para TV de pantalla ancha moderna)
  • hdmi_mode : si no queremos que Raspberry Pi detecte automáticamente la resolución de nuestra pantalla HDMI, y trabajar con una resolución menor (para hacerlo todo más legible) podemos modificar este valor (¡atención! este parámetro está relacionado con el parámetro hdmi_group que veremos más abajo y que se puede establecer al valor CEA o VESA). Los valores de hdmi_mode pueden ser del del 1 al 59 si hemos establecido hdmi_group a CEA o bien del 1 al 86 si hemos establecido hdmi_group a VESA. El significado de los valores los encontraréis en una tabla en el siguiente link (además de encontrar una explicación en inglés de todos los parámetros de configuración)
  • hdmi_drive: este parámetro modifica el voltaje de salida del puerto HDMI, solo necesario si usamos un adaptador HDMI a DVI si la imagen se ve mal, con nieve, muy apagada o muy brillante. Los valores pueden ser: 1 (voltaje de salida DVI, excluye el audio del cable HDMI), (voltaje de salida HDMI, incluye el audio en el cable HDMI)
  • hdmi_force_hotplug : fuerza a Raspberry Pi a usar el puerto HDMI aunque no se detecte una pantalla conectada, los valores son: 0 (Raspberry intenta detectar automáticamente la pantalla), 1 (Raspberry usa obligatoriamente el puerto HDMI)
  • hdmi_group : cambia el grupo del HDMI y está relacionado con el parámetro hdmi_mode, los valores son: 1 (se establece el grupo a CEA, si usamos un TV de alta definición), 2 (se establece el grupo a VESA para conectarnos a un monitor mediante DVI)
  • hdmi_safe : fuerza a Raspberry Pi a una configuración para pantallas HDMI, poner este parámetro con el valor 1 equivale a poner los siguientes valores todo en uno: hdmi_force_hotplug=1, config_hdmi_boost=4, hdmi_group=1, hdmi_mode=1, disable_overscan=0.
  • config_hdmi_boost : puede adquirir el valor de 1 a 7, sirve para dar más potencia a la salida HDMI, en el caso que la imagen muestre nieve podemos aumentar el valor de 1 en 1.
Tened mucho cuidado al modificar los valores de estos parámetros (sí, lo habéis adivinado, aún lo podéis estropear más...), en mi caso para conectar mi Raspberry Pi, a una pantalla de TV con el cable HDMI, únicamente he modificado la linea disable_overscan=1 quitandole el símbolo #, tal y como se muestra al final de la imagen que os he incrustado más arriba, esto ha eliminado el borde negro que aparecía alrededor de la imagen del escritorio. Una vez hechas las modificaciones para guardar el fichero pulsáis CTRL+O y luego la tecla Intro del teclado, seguidamente CTRL+X para cerrar el editor nano, y ahora hay que reiniciar la Raspberry Pi para que se apliquen los cambios (y cruzad los dedos...). No está de más hacer una copia del fichero con otro nombre antes de modificarlo, si vuestras modificaciones lo estropean todo y no podéis visualizar la pantalla, solo tendremos que poner la tarjeta SD en un PC eliminar el archivo modificado (config.txt) y restaurar el fichero de copia con el nombre original (renombramos config_bak.txt a config.txt) para que todo quede como al principio.
La orden para copiar el fichero en la línea de comandos seria sudo cp /boot/config.txt /boot/config_bak.txt y presionamos Intro en el teclado, esto crea una copia del fichero config.txt con el nombre config_bak.txt para restaurarlo si fuera necesario.
Para obtener más información sobre configuración os dejo el siguiente enlace: