VESA BIOS Extensions ( VBE ) es un estándar VESA , actualmente en la versión 3, que define la interfaz que puede utilizar el software para acceder a placas de vídeo compatibles con resoluciones y profundidades de bits altas. Esto se opone a las llamadas BIOS INT 10h "tradicionales" , que están limitadas a resoluciones de 640×480 píxeles con una profundidad de 16 colores (4 bits) o menos. VBE está disponible a través del BIOS de la tarjeta de vídeo , que instala algunos vectores de interrupción que apuntan a sí mismo durante el arranque .
La mayoría de las tarjetas más nuevas implementan el estándar VBE 3.0, que es más potente. Las versiones anteriores de VBE solo proporcionan una interfaz de modo real , que no se puede usar sin una pérdida de rendimiento significativa desde los sistemas operativos en modo protegido . En consecuencia, el estándar VBE casi nunca se ha utilizado para escribir los controladores de una tarjeta de video; por lo tanto, cada proveedor ha tenido que inventar un protocolo propietario para comunicarse con su propia tarjeta de video. A pesar de esto, es común que un controlador se conecte a la interrupción del modo real para inicializar los modos de pantalla y obtener acceso directo al búfer de cuadros lineal de una tarjeta , porque de lo contrario, estas tareas requerirían el manejo de cientos de variaciones propietarias que existen de una tarjeta a otra.
En los sistemas EFI 1.x, el INT 10H y las extensiones VESA BIOS (VBE) se sustituyen por el protocolo EFI UGA. En los sistemas UEFI 2.x, ampliamente utilizados, el INT 10H y el VBE se sustituyen por el UEFI GOP . [1] [2]
Normas
VBE temprano
VBE 1.0 (VS891001) se definió en 1989. [3] VBE 1.1 (VS900602) se definió en 1990. VBE 1.2 (VS911022) se definió en 1991. [4] Estas versiones de VBE requieren el modo real para funcionar.
VBE define varias funciones nuevas a las que se llama mediante INT 10H . La numeración de funciones comienza con AX=4F00, o (AH=4F, AL=00), para la función 00h . 00h a 05h se definieron en VBE 1.0, 06h y 07h en 1.1, y 08h en 1.2.
Extensiones de BIOS VESA (núcleo VBE) 2.0 (noviembre de 1994)
Este estándar proporciona la funcionalidad principal de las extensiones VESA BIOS. Permite que las aplicaciones determinen las capacidades de la tarjeta gráfica y brinda la posibilidad de configurar los modos de visualización que se encuentran. VBE 2.0 agrega algunas características nuevas por encima del estándar VBE 1.2 anterior, incluido el acceso al búfer de cuadros lineal y el modo protegido . Algunas de las características de VBE Core 2.0 [5] incluyen:
- Acceso al framebuffer lineal
- Permite el acceso directo al framebuffer en modo protegido como un área grande de memoria en lugar de fragmentos más pequeños menos eficientes.
- Banca en modo protegido
- Permite el acceso al búfer de cuadros desde el modo protegido sin pasar al modo real . Esto se implementa mediante una nueva función 0Ah .
- Cambio de página Super VGA
- Permite una animación de mayor rendimiento para proporcionar una animación fluida para juegos de computadora y otros programas de gráficos de alto rendimiento.
- Pantallas virtuales Super VGA
- Permite que el software configure resoluciones de pantalla virtuales más grandes que la resolución real mostrada y que se desplace o panore suavemente por la imagen más grande.
- Modos High Color y TrueColor
- Modos gráficos de 16 y 24 bits estándar de la industria para resoluciones desde 320×200 hasta1600 ×1200 .
Extensiones de BIOS VESA (núcleo VBE) 3.0 (septiembre de 1998)
Un superconjunto del estándar VBE 2.0. Este estándar añade control de frecuencia de actualización , funciones para gafas estéreo , almacenamiento en búfer múltiple mejorado y otras funciones al estándar VBE 2.0.
- Triple buffering
- Permite que las aplicaciones de alta velocidad realicen almacenamiento en búfer múltiple con menos parpadeo de pantalla y sin tener que esperar al controlador de gráficos.
- Control de frecuencia de actualización mediante tiempos GTF
- Esto permite que las aplicaciones y las utilidades del sistema operativo cambien la frecuencia de actualización de manera estándar en todos los controladores gráficos VBE 3.0. Es importante para las aplicaciones estéreo, ya que cuando se habilita el estéreo, la frecuencia de actualización efectiva del usuario se reduce a la mitad.
- Cambio de página en estéreo
- Al visualizar una aplicación con gafas estereoscópicas , el software necesita pasar las páginas el doble de veces de lo normal, ya que necesita generar imágenes independientes para cada ojo. Esta nueva función permite que el software compatible con estéreo se muestre correctamente.
- Sincronización estéreo por hardware
- Permite que el software estéreo determine si hay un conector para gafas estéreo en la tarjeta gráfica del usuario.
Se agregó un nuevo "Punto de entrada en modo protegido" como alternativa a la función 0Ah .
Funciones VBE/acelerador (VBE/AF) (agosto de 1996)
VBE/AF proporciona una interfaz estándar de bajo nivel para las funciones de aceleración comunes disponibles en la mayoría del hardware. Algunas de las funciones definidas en el estándar son el acceso a cursores de hardware, transferencias de bloques de bits (Bit Blt), sprites fuera de pantalla , desplazamiento horizontal por hardware, dibujo y otras funciones. Está definido para funcionar en modo protegido de 32 bits. A pesar de la adopción generalizada de VBE Core, muy pocos dispositivos admiten VBE/AF. El proyecto FreeBE/AF implementa controladores VBE/AF de terceros gratuitos para ciertas tarjetas gráficas.
Especificaciones suplementarias
Las especificaciones complementarias proporcionan una interfaz independiente del dispositivo entre el software de aplicación y el hardware Super VGA. Los números de función los asigna el Comité de estándares de software de VESA (SSC).
Extensiones de administración de energía (PM)
DPMS es un estándar de hardware que permite que las tarjetas gráficas se comuniquen con monitores compatibles con DPMS a través de un sistema de señalización especial que se puede utilizar con los controladores gráficos y cables de monitor existentes. Este sistema de señalización permite que la tarjeta gráfica le indique al monitor que entre en una serie de estados de ahorro o administración de energía diferentes, lo que permite que el monitor se apague automáticamente cuando no está en uso.
Extensiones de interfaz de panel plano (FP)
Permite el acceso a funciones especiales en controladores de panel plano.
Extensiones de interfaz de audio (AI)
Proporciona estándar para servicios de audio.
Actualmente (versión 1.00), la especificación VBE/AI define tres clases de dispositivos: WAVE, MIDI y VOLUME. Tipos de dispositivos que no están contemplados:
- Control de CD-ROM
- que está cubierto por las Extensiones de CD-ROM de Microsoft .
- Procesadores de efectos
- Esta clase de dispositivo se ampliará en futuras versiones de la especificación VBE/AI.
Extensiones OEM
Proporciona entrada estándar a extensiones específicas del proveedor.
Canal de datos de visualización (DDC)
El canal de datos de pantalla o DDC es una conexión digital entre la pantalla de una computadora y un adaptador gráfico que permite que la pantalla comunique sus especificaciones al adaptador. El estándar fue creado por VESA .
Interfaz de control en serie (SCI)
Proporciona medios independientes del hardware para que el sistema operativo y la aplicación lean y escriban datos a través de la interfaz de control serial I²C .
Números de modo VBE
Aunque el número de modo es un valor de 16 bits, los números de modo VBE opcionales tienen 14 bits de ancho. El bit 15 es utilizado por el BIOS de VGA como un indicador para borrar o preservar la memoria de la pantalla. Los números de modo definidos por VBE son los siguientes:
A partir de VBE/Core 2.0, VESA ya no define nuevos números de modo VESA y ya no requiere que un dispositivo implemente los números antiguos. Para detectar correctamente la información de un modo de pantalla, utilice la Función 01h - Devolver información de modo VBE .
El modo 81FFh es un modo de video especial diseñado para preservar el contenido de la memoria actual y brindar acceso a toda la memoria de video.
Modos definidos por VESA
A partir del estándar VBE 2.0, VESA no definirá nuevos modos y los modos antiguos ya no son obligatorios. El uso de modos definidos debe considerarse obsoleto: las tarjetas de video modernas pueden o no usar estos números de modo (aunque la mayoría lo hace por compatibilidad con versiones anteriores), y el software moderno no debería usarlos. La forma correcta para que el software descubra los modos de visualización disponibles es obtener una lista de modos (usando "Función 00h: Devolver información del controlador VBE") y luego verificar cada modo (usando "Función 01h: Devolver información del modo VBE") hasta que encuentre el modo o los modos que necesita. [ cita requerida ]
Los modos 264–268 son modos de texto. 264 (0108h) tiene 80 columnas × 60 filas (80×60), 265 (0109h) tiene 132×25, 266 (010Ah) tiene 132×43, 267 (010Bh) tiene 132×50 y 268 (010Ch) tiene 132×60.
Otros modos gráficos comúnmente disponibles
La siguiente tabla combina los modos definidos por VESA (los valores indicados en negro) junto con los modos comúnmente utilizados, pero que pueden no funcionar en todas las tarjetas gráficas, ya que no están definidos por ningún estándar ( indicados en rojo ).
Detección de modo
Se han escrito algunas herramientas para detectar los modos VBE disponibles en un sistema. Por lo general, funcionan invocando la función 01h , que es más confiable que asumir una tabla de modos extendidos como parte de la documentación propia del dispositivo.
- hwinfo es la herramienta de detección de hardware utilizada en SuSE Linux y en algunas otras distribuciones de Linux . [10] La ejecución
hwinfo --framebufferinforma información gráfica, incluidos los modos VESA en una línea "Modo". - mdt es una herramienta de Linux o DOS que utiliza funciones BIOS VESA para leer datos del monitor. [11]
- La interfaz de modo real de Linux (LRMI) tiene un
vbetestprograma que imprime información VESA. - SciTech Software tenía un software no relacionado
vbetestpara DOS que se remonta a 1994. - La versión "PC" x86 de GNU GRUB 2 tiene un
vbeinfocomando para imprimir los modos de video disponibles yvbetestpara probar un modo específico. Utilizan una tabla incorporada en lugar de la función 01h . Para otras plataformas, incluida la EFI x86, se reemplazan por el comando más genéricovideoinfoyvideotest.
Números del modo de vídeo de Linux
El núcleo Linux permite al usuario seleccionar el modo VESA en el momento del arranque pasando un código en la memoria al núcleo. El cargador de arranque LILO pasa este código basándose en un parámetro "vga" en su archivo de configuración. Tiene la forma 'vga=XXX', donde XXX es el valor decimal, o 'vga=0xHHH', donde HHH es el valor hexadecimal. Sin embargo, el parámetro 'vga=' del cargador de arranque no acepta directamente los números del modo de vídeo VESA; en su lugar, el número del modo de vídeo de Linux es el número VESA más 512 (en el caso de la representación decimal) o más 0x200 (en el caso de la representación hexadecimal). Por ejemplo, el valor VESA definido de 257 (0x101), que representa 640x480 y 256 colores, tiene un valor de modo de vídeo Linux equivalente de 769 (0x301). [12]
Como se indicó anteriormente, el estándar VESA define un conjunto limitado de modos; en particular, ninguno por encima de1280 ×Los valores 1024 están cubiertos y, en cambio, su implementación es completamente opcional para los fabricantes de adaptadores gráficos. Como los proveedores tienen la libertad de utilizar los valores adicionales que deseen, esto significa que, en la tabla siguiente, los modos indicados en rojo (y expresados en forma decimal) pueden no ser aplicables a todos los adaptadores gráficos .
1: 32 bits es en realidad (8:8:8:8), pero el número final de 8 bits es un canal alfa "vacío". Por lo demás, equivale a un color de 24 bits. Muchas GPU utilizan el modo de color de 32 bits en lugar del modo de 24 bits simplemente para acceder más rápido a la memoria de vídeo mediante la alineación de la memoria de 32 bits.
VGA= 864 [ 352 (0160h)] también parece seleccionar1280 × 800 (8 bits) para pantallas de varios portátiles.
VGA = 834 [ 322 (0142h)] es1400 ×1050
Modos disponibles en Parallels
La emulación de BIOS VESA en la máquina virtual Parallels tiene un conjunto diferente de modos VESA no estándar. A partir de la compilación 3214, LRMI vbetest revela estos modos:
Modos disponibles en VirtualBox
La emulación del BIOS VESA en la máquina virtual VirtualBox tiene un conjunto diferente de modos VESA no estándar. A partir de la compilación r153438 de 6.1.38_Ubuntu, la función AX=0x4F01 del BIOS VESA revela estos modos (consulte también VBETables-gen.c):
Véase también
Referencias
- ^ "¿Qué es efifb? — La documentación del kernel de Linux". kernel.org . Consultado el 24 de noviembre de 2020 .
- ^ "¿Qué es vesafb? — La documentación del kernel de Linux". kernel.org . Consultado el 24 de noviembre de 2020 .
- ^ "SUPER VGA BIOS EXTENSION Standard # VS891001 › Gemixtes". 11 de diciembre de 2013. Archivado desde el original el 11 de diciembre de 2013. Consultado el 27 de diciembre de 2022 .
- ^ "VBE versión 1.2". 22 de octubre de 1991. Archivado desde el original el 14 de enero de 2009. Consultado el 27 de diciembre de 2022 .
- ^ "Estándar VBE/Core 2.0". 11 de diciembre de 2008. Archivado desde el original el 11 de diciembre de 2008. Consultado el 27 de diciembre de 2022 .
- ^ abc Modos disponibles a través de la llamada tradicional al BIOS de 10 h
- ^ 352 (0160h) también parece seleccionar1280 × 800 (8 bits) para pantallas de varias computadoras portátiles
- ^ 32 bits es en realidad (8:8:8:8), pero el número final de 8 bits es un canal alfa "vacío". Por lo demás, es igual a un color de 24 bits. Muchas GPU utilizan el modo de color de 32 bits en lugar del modo de 24 bits simplemente para acceder más rápido a la memoria de vídeo a través de la alineación de memoria de 32 bits .
- ^ 322 (0142h) es 1400×1050
- ^ Código fuente de hwinfo en GitHub
- ^ "mdt". GitHub .
- ^ Consulte la documentación del kernel en Documentation/svga.txt y Documentation/fb/vesafb.txt.
Lectura adicional
- Extensión VESA Super VGA BIOS 1.0 (estándar n.° VS891001) 1 de octubre de 1989
- Extensión BIOS VESA 1.2
- Extensión BIOS VESA 2.0
- Extensión BIOS VESA 3.0
- El Dr. Dobb analiza la especificación VESA VBE 2.0
- Cómo utilizar Super VGA (VESA 1.x no lineal)
- Interfaz de control en serie de extensión VESA BIOS en Wayback Machine (archivado el 21 de diciembre de 2005)
- Funciones de extensión/aceleración de BIOS VESA (VBE/AF) en Wayback Machine (archivado el 9 de diciembre de 2008)
- Interfaz BIOS VESA
Enlaces externos
- Notas del programador SuperVGA/VESA
- Lista de chipsets que implementan VESA VBE 2.0/3.0
- Capturar información del modo VBE Paquete fuente vbespy Archivado el 22 de julio de 2011 en Wayback Machine
- Cómo utilizar el paquete fuente de vbespy
- VBETOOL: una aplicación (por el momento archivada) para ejecutar el código BIOS de la tarjeta de video