Frame Buffer: COMO

publicado en: Debian, Linux, Sist. Operativos, UNIX | 0
 
 

v1.1-Bakalaty con Tomaty, 1 de Noviembre de 2002.
Probado con kernel-2.4.18, RedHat 7.3
Este COMO es el resultado de la fusión de algunas partes (que resultaron de mi interés) de los siguientes documentos:
– Artículo publicado en la Revista Linux Actual Nº 8 (Año 1) Pag. 16 – 18 y que firma Juan Antonio Martínez jantonio@dit.upm.es.
– frame-buffer: micro-COMO de GarZa, garzalin@worldonline.es de 8 de Septiembre de 1999.

Índice General
1. ¿De qué estamos hablando?…
2. Configurando el núcleo (2.2.X)
3. Dispositivos especiales y lilo
4. Tabla de valores para los distintos tipos resolución y profundidad del color
5. Configuración de XFree86

1. ¿De qué estamos hablando? (Volver al índice General)
Configuración del Kernel para activar el Frame Buffer Console (Consola en modo gráfico).

Esta opción posibilita:

  • Poner logos en el arranque.
  • Mezclar de modo sencillo texto y gráficos sobre la pantalla.
  • No necesitar el entorno X-Window, ni la SVGALib, para poder trabajar con gráficos.
  • Uniformidad entre las diversas arquitecturas Linux.
  • Un dispositivo y un API unificado de acceso a la consola transparente e independiente de la arquitectura.

El Frame Buffer sporta las siguientes tarjetas de PC:

Este último detalle es el que otorga la mayor utilidad al Frame Buffer. Si no disponemos de un servidor X específico, pero nuestra tarjeta soporta la extensión VESA 2.0, disponemos de un servidor X universal que funciona a través del Frame Buffer denominado XF86_FBDev. Este no accede al hardware de la tarjeta, sino al dispositivo /dev/fb0. "No se dará más la frase mi tarjeta no está soportada en X-Window"

2. Configurando el núcleo (2.2.X) (Volver al índice General)
En este punto solo se indica que opciones del Kernel son necesarias para activar el Frame Buffer Console. La compilación o recompilación e instalación del kernel queda fuera de este artículo.

En el apartado Console drivers habilitar las siguientes opciones:

* VGA Text Console
* Video mode selection support
* Support for frame buffer devices (EXPERIMENTAL)
* VESA VGA Graphic console
* Advances low level driver options
* Monochrome support
* 8 bpp packed pixels support
* 16 bpp packed pixels support
* 24 bpp packed pixels support
* 32 bpp packed pixels support
* VGA characters/attributes support
    CONFIG_VGA_CONSOLE=y
    CONFIG_VIDEO_SELECT=y
    CONFIG_MDA_CONSOLE=m
    CONFIG_FB=y
    CONFIG_DUMMY_CONSOLE=y
    # CONFIG_FB_PM2 is not set
    CONFIG_FB_VESA=y
    CONFIG_VIDEO_SELECT=y
    CONFIG_FBCON_CFB8=y
    CONFIG_FBCON_CFB16=y
    CONFIG_FBCON_CFB24=y
    CONFIG_FBCON_CFB32=y
    # CONFIG_FBCON_FONTWIDTH8_ONLY is not set
    # CONFIG_FBCON_FONTS is not set
    CONFIG_FONT_8x8=y
    CONFIG_FONT_8x16=y
    # CONFIG_FB_VIRTUAL is not set
    # CONFIG_FBCON_ADVANCED is not set

Además si nuestra tarjeta viene incluida en la lista de las tarjetas soportadas, habilitaremos también la opción correspondiente a dicha tarjeta.

    CONFIG_FB_MATROX=m
    CONFIG_FB_MATROX_MILLENIUM=y
    CONFIG_FB_MATROX_MYSTIQUE=y
    CONFIG_FB_MATROX_G100=y
    CONFIG_FB_MATROX_MULTIHEAD=y
    # CONFIG_FB_ATY is not set

3. Dispositivos especiales y lilo. (Volver al índice General)
Una vez compilado e instalado el kernel hay que preparar el sistema siguiendo los siguientes pasos:

  1. Creamos, si no lo están, los dispositivos especiales /dev/fbX donde X vale 0,1,2, etc. en función del número de tarjetas que tengamos. De no existir dichos dispositivos los crearemos ejecutando el comando:
    # mknod /dev/fbX c 29 Y

    Donde X=0,1,2,... e Y=32*X, es decir Y=0,32,64,...
    A continuación creamos un enlace simbólico. El enlace simbólico se mantiene por razones históricas de comatibilidad con arquitecturas distintas al PC.

    # ln -s /dev/fb0current /dev/fb0
  2. Cofigurar el arranque para la selección de la consola en modo gráfico editando el fichero /etc/lilo.conf y añadiendo la línea:
    vga=0x314

    o tambien…

    vga=788

    Esto hace que la consola arranque a 800×600 pixels con 16 bits de profundidad (65.536 colores).
    Para que surtan efecto los cambios realizados en /etc/lilo.conf, ejecutamos el comando:

    # /sbin/lilo

    y reiniciamos Linux. Si todo ha ido bién, veremos un lindo pingüino en nuestra pantalla mientras arranca el sistema, así como una pantalla en modo gráfico.

4. Tabla de valores para los distintos tipos de resolución y profundidad del color. (Volver al índice General)
Las dos tablas siguientes nos ayudarán a configurar el arranque para la selección de la consola en modo gráfico.

        Resoluciones
Colores 640x480 800x600 1024x768 1280x1024
---------------------------------------------
256     0x101   0x103   0x105    0x107
32k     0x110   0x113   0x116    0x119
64k     0x111   0x114   0x117    0x11A
16M     0x112   0x115   0x118    0x11B

A todos estos modos hay que sumarle 0x200.
Así pues, el modo 800×600 a 16bits (64k) utilizado en ejemplo anterior le corresponde el valor de 0x114 + 0x200 = 0x314.

…otra forma de pasar el parámtero vga:

        Resoluciones
Colores 800x600 1024x768 1280x1024
---------------------------------------------
32K     787     790      793
64K     788     791      794
16M     789     792      795

5. Configuración de XFree86. (Volver al índice General)
El servidor X para frame buffer es el XF86_FBDev. Este en lugar de acceder directamente al hardware, utiliza el dispositivo de salida /dev/fbX. Se necesita también instalar el paquete fbset. La configuración de XFree86 se realiza mediante el fichero /etc/X11/XF86Config, si no existe el fichero, ejecuta el siguiente comando:

# /usr/X11R6/bin/xf86config

El comando siguiente nos dará la información necesaria para configurar XFree86:

# fbset -x

Devuelve algo parecido a:

    Mode "name"
        # D: 48.001 MHz, H: 46.876 kHz, V: 75.121 Hz
        DotClock 48.002
        HTimings 800 832 928 1024

        VTimings 600 604 608 624
        Flags    "-HSync" "-VSync"
    EndMode

Estos son los valores con los que hay que configurar XFree86.
Editar el fichero /etc/X11/XF86Config y en la seccion Monitor Section comprobar que los valores de HorizSync y VertRefresh son correctos.
En nuestro ejemplo:

    HorizSync 46.88
    VertRefresh 75.12

Borrar todas las lineas que empizan con Modeline y añadir un Modeline con los datos suministrados por fbset. En nuestro ejemplo:

# Modes: Name      dotclock horiz             vert
Modeline "800x600" 48.002   800 832 928 1024  600 604 608 624 -HSync -VSync

Y en la sección Screen en Subsection Display debe poner Modes «default».

    # Servidor SVGA 256 colores
    Section "Screen"
        Driver     "FBDev"
        Device     "My Video Card"
        Monitor    "My monitor"
        Subsection "Display"
           Modes        "default"
        EndSubsection
    EndSection

Instalar el servidor FBDev y en /etc/X11 crear el enlace simbólico con el comando:

# ln -s /usr/X11R6/bin/XF86_FBDev /etc/X11/X

Y listo para la prueba definitiva. Para arrancar el entorno gráfico, ejecuta el comando:

# startx

y si todo ha ido bien a disfrutar de las X’s.

Se pueden hacer más cosas como seleccionar un modo de video para cada terminal virtual. Existe un fichero de configuración llamado /etc/fb.modes donde se pueden espedificar distintos tipos de modos de video y su geometría.
 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
  Configuración de privacidad y de cookies.
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.