Modificando script.bin. Cambiar resolución de salida de video HDMI
JoseRNotas:
- Para establecer las configuraciones del hardware de las Orange Pi, se utiliza el archivo denominado Script.bin. Para más información respecto a este archivo consulta: Configuraciones de Hardware. El archivo Script.bin
- Para cambiar la resolución de salida de video, por tanto, se recurre a modificar el Script.bin.
- Para algunas distribuciones, como Armbian, se han implementado y presentan herramientas asociadas a realizar cambios sobre la configuración del hardware de una manera simple y automática, como es el caso del script "h3disp" (que permite cambiar la resolución de video); lo que en esencia esta herramienta hace, al igual que otras del mismo estilo, es encargarse de modificar el archivo script.bin de forma automática, evitando que el usario tenga que conocer los parámetros .fex. Estas herramientas son muy útiles, no obstante, si salimos de Armbian y nos vamos a alguna otra distribución, éstas no están presentes y, por tanto, habrá que recurrir a modificar el script.bin manualmente.
CONFIGURACIONES DE PANTALLA DEL SCRIPT.BIN
La parte del archivo script.bin que nos interesa, correspondiente a la configuración de pantalla, se encuentra en la sección [disp_init], primero vamos a proceder a explicar cada uno de sus parámetros:
[disp_init] disp_init_enable = 1 ; Salida de video por pantalla habilitada disp_mode = 0 ; Usar solo la config. de pantalla "screen0" screen0_output_type = 3 ; Tipo de pantalla screen0: HDMI screen0_output_mode = 5 ; Pantalla screen0 HDMI a: 720p60 screen1_output_type = 3 ; Tipo de pantalla screen1: HDMI (No usado) screen1_output_mode = 10 ; Pantalla screen1 HDMI a: 1080p60 (No usado) fb0_format = 0 ; Formato de buffer de video de screen0 fb0_width = 0 ; Anchura de buffer de video de screen0 fb0_height = 0 ; Altura de buffer de video de screen0 fb1_format = 0 ; Formato de buffer de video de screen1 fb1_width = 0 ; Anchura de buffer de video de screen1 fb1_height = 0 ; Altura de buffer de video de screen1
Toda la información necesaria sobre los valores del archivo FEX se puede encontrar en este sitio. Te lo explico a continuación:
- disp_init_enable: Habilita/Deshabilita el uso de pantalla (salida de video). Como se puede ver en la configuración anterior, se encuentra habilitada.
- disp_mode: Establece la configuración de pantalla a utilizar. Los valores que puede tomar van de 0 a 4, el 0 corresponde a la configuración de la pantalla screen0, el 1 a la configuración de pantalla screen1, el 2 a una configuración de ambas pantallas con buffers de video separados, el 3 a una configuración de ambas pantallas con un buffer de video compartido y el 4 a una configuración de ambas pantallas con el mismo buffer de video (muestra lo mismo en ambas pantallas). En la configuración anterior, se encuentra habilitado el modo 0 de pantalla, que hace uso de las configuraciones de screen0 y, por tanto, solo tendrá en cuenta los valores de las líneas screen0_output_ y fb0_ siguientes.
- screenN_output_type: Establece el tipo de dispositivo de salida de video (tipo de pantalla). Puede tomar valores de 0 a 4 para ninguna pantalla, LCD, TV, HDMI o VGA, respectivamente.
- screenN_output_mode: Configura el modo de salida de video. Para un tipo de pantalla HDMI/VGA, este valor configura la resolución de video de salida con valores que van de 0 a 10, mientras que para un tipo de pantalla TV, establece la señal de video en PAL o NTCS con los valores 11 o 14 respectivamente.
- fbN_format/width/height: Configura el formato de pixel, la anchura y la altura del buffer de video (frame buffer) correspondiente a la pantalla screenN. Un valor 0, implica que estos valores se adapten a la resolución de pantalla seleccionada.
EJEMPLO: PONER RESOLUCIÓN A 1080P60
Poniéndonos en el caso de que estamos usando una distribución que viene configurada por defecto con una resolución de pantalla de 720p60 (como es el caso de Armbian) y, queremos configurarla a la resolución máxima que admite nuestra pantalla, en este caso 1080p60 (aunque puede hacerse facilmente con el script h3disp mediante "sudo h3disp -m 1080p60", veremos lo que implica hacer este cambio de forma manual).
Instrucciones:
1 - Creamos un archivo de backup por si cometemos algún error:
sudo cp /boot/script.bin /boot/script.bak
2 - Convertimos el archivo binario a formato fex de texto editable:
sudo bin2fex /boot/script.bin /boot/script.fex
3 - Editamos el archivo fex:
sudo nano /boot/script.fex
Analizando los valores configurados por defecto, tenemos que se utiliza la configuración de la pantalla screen0 (disp_mode = 0) y que está configurada como HDMI a 720p (screen0_output_type = 3 y screen0_output_mode = 5), la pantalla screen1 no se utiliza, pero sus valores son iguales a los de la pantalla screen0:
[disp_init] disp_init_enable = 1 ; Salida de video por pantalla habilitada disp_mode = 0 ; Usar solo la config. de pantalla "screen0" screen0_output_type = 3 ; Tipo de pantalla screen0: HDMI screen0_output_mode = 5 ; Pantalla screen0 HDMI a: 720p60 screen1_output_type = 3 ; Tipo de pantalla screen1: HDMI (No usado) screen1_output_mode = 5 ; Pantalla screen1 HDMI a: 720p60 (No usado)
La forma más simple de realizar el cambio en este caso, ya que salvo la resolución, el tipo de pantalla HDMI sí está configurada, es modificar la línea correspondiente a la resolución de la pantalla screen0. El valor a ponerle vendrá dado por el modo correspondiente a 1080p, que se muestra en la siguiente tabla:

Así, la única modificación que hay que realizar en el archivo es cambiar la línea "screen0_output_mode = 5" y establecer el valor del modo 10 (resolución 1080p60):
screen0_output_mode = 10 ; Pantalla screen0 HDMI a: 1080p60
La sección disp_init del archivo, deberá quedar como:
[disp_init] disp_init_enable = 1 ; Salida de video por pantalla habilitada disp_mode = 0 ; Usar solo la config. de pantalla "screen0" screen0_output_type = 3 ; Tipo de pantalla screen0: HDMI screen0_output_mode = 10 ; Pantalla screen0 HDMI a: 1080p60 screen1_output_type = 3 ; Tipo de pantalla screen1: HDMI (No usado) screen1_output_mode = 5 ; Pantalla screen1 HDMI a: 720p60 (No usado)
4 - Cerrar el archivo, guardándolo con ese nombre:
Ctrl X, Y (Yes), Enter
5 - Convertimos el archivo fex editado al formato binario:
sudo fex2bin /boot/script.fex /boot/script.bin
6 - Reiniciamos el sistema para que tengan efecto los cambios:
sudo reboot