Vesafb Mini-COMO <author>Autor: Alex Buell, <tt><htmlurl url="mailto:alex.buell@tahallah.demon.co.uk" name="alex.buell@tahallah.demon.co.uk"></tt> Traducido por: Jesús Martínez Mateo, <tt><htmlurl url="mailto:jmartinez@sportec.es" name="jmartinez@sportec.es"></tt> <date>v0.5, 2 de Agosto de 1998 <abstract> Este documento describe cómo usar el dispositivo vesafb bajo Linux con una tarjeta gráfica compatible VESA 2.0 en plataformas Intel. </abstract> <toc> <sect>Aportaciones <p> Gracias a todas las personas nombradas a continuación por su ayuda en la mejora de este documento (<it/Vesafb Mini-HOWTO/). <itemize> <item>Jeff Noxon <tt><htmlurl url="mailto:jeff@planetfall.com" name="jeff@planetfall.com"></tt> <item>Francis Devereux <tt><htmlurl url="mailto:f.devereux@cs.ucl.ac.uk" name="f.devereux@cs.ucl.ac.uk"></tt> <item>Andreas Ehliar <tt><htmlurl url="mailto:ehliar@futurniture.se" name="ehliar@futurniture.se"></tt> <item>Martin McCarthy <tt><htmlurl url="mailto:marty@ehabitat.demon.co.uk" name="marty@ehabitat.demon.co.uk"></tt> <item>Simon Kenyon <tt><htmlurl url="mailto:simon@koala.ie" name="simon@koala.ie"></tt> <item>David Ford <tt><htmlurl url="mailto:david@kalifornia.com" name="david@kalifornia.com"></tt> <item>Chris Negro <tt><htmlurl url="mailto:cblack@cmpteam4.unil.ch" name="cblack@cmpteam4.unil.ch"></tt> <item>N Becker <tt><htmlurl url="mailto:nbecker@fred.net" name="nbecker@fred.net"></tt> <item>Bob Tracy <tt><htmlurl url="mailto:rct@gherkin.sa.wlk.com" name="rct@gherkin.sa.wlk.com"></tt> <item>Marius Hjelle <tt><htmlurl url="mailto:marius.hjelle@roman.uib.no" name="marius.hjelle@roman.uib.no"></tt> <item>Aaron Tiensivu <tt><htmlurl url="mailto:tiensivu@pilot.msu.edu" name="tiensivu@pilot.msu.edu"></tt> </itemize> y por supuesto los autores de los dispositivos framebuffer: <itemize> <item>Gerd Knorr <tt><htmlurl url="mailto:kraxel@cs.tu-berlin.de" name="kraxel@cs.tu-berlin.de"></tt> <item>Geert Uytterhoeven <tt><htmlurl url="mailto:Geert.Uytterhoeven@cs.kuleuven.ac.be" name="Geert.Uytterhoeven@cs.kuleuven.ac.be"></tt> <item>Martin Mares <tt><htmlurl url="mailto:mj@ucw.cz" name="mj@ucw.cz"></tt> </itemize> Y a todas aquellas personas que deberían aparecer en este documento y no aparecen. :o) <sect>¿Qué es vesafb? <p> Vesafb es un controlador framebuffer para la arquitectura Intel que trabaja con las tarjetas gráficas compatibles con la norma VESA 2.0. Este <it/driver/ se encuentra estrechamente relacionado dentro del núcleo con los controladores de dispositivo para framebuffer. Vesafb es un <it/driver/ de pantalla que habilita el uso de modos gráficos en la plataforma Intel para las consolas de texto mediante mapas de bits (<it>bitmapping</it>).  También permite desplegar un logotipo que probablemente es la razón principal por la que quiere usar vesafb <tt/:o)/ Desgraciadamente, no puede usar vesafb con las tarjetas que soportan la norma VESA 1.2. Esto es debido a que estas tarjetas no usan <it/framebuffering/. Puede ser que alguien decida escribir un driver de dispositivo (<tt/vesafb12/) para estas tarjetas, pero esto usaría la preciada memoria del núcleo. <tt/:o(/ Sin embargo, existe la posibilidad de habilitar extensiones VESA 2.0 para tarjetas VESA 1.2. Puede conseguir un tipo de programa TSR que se ejecutará desde DOS, y usado en conjunción con loadlin, puede ayudar a configurar la tarjeta para los modos gráficos de consola apropiados. Tenga en cuenta que esto no siempre funcionará, por ejemplo algunas tarjetas como la serie VLB 54xx de Cirrus Logic son mapeadas en un rango de direcciones de memoria (por ejemplo, dentro del rango 15MB-16MB) que exigen al sistema tener más de 32MB de memoria para funcionar. (Hay una manera de solucionar esto, si tiene una opción en la BIOS para dejar un hueco de memoria en el rango 15MB-16MB, podría funcionar, pero me han dicho que Linux no soporta esto).  Si desea experimentar con esta opción, hay un completo repertorio de programas TSR disponibles (un ejemplo de ellos es UNIVBE) que pueden encontrarse en Internet.   <sect>¿Qué es un dispositivo framebuffer? <p> Un dispositivo framebuffer es una abstracción para el hardware gráfico. Representa un buffer de imagen para el hardware de vídeo, y permite a las aplicaciones software acceder al hardware gráfico a través de una interfaz bien definida, de manera que el software no necesita saber nada sobre la interfaz de bajo nivel (Tomado de <tt>/Documentation/fb/framebuffer.txt</tt> de Geert Uytterhoeven en las fuentes del kernel de linux). <sect>¿Cómo activo los drivers vesafb? <p> (nota: La información esta basada en lo que sé y he logrado usando el núcleo de Linux <tt/2.1.112/ en un P75+ con una tarjeta gráfica ATI VideoExpress 2MB. No dude en enviarme un email con información o casos especiales para tarjetas gráficas diferentes). Asumiendo que usa <tt/menuconfig/ necesitará realizar los siguientes pasos: Entre en la sección <it/Code Maturity Level/ del menú, y habilite la opción para desarrollo y/o drivers incompletos (<it>Development and/or Incomplete Drivers</it>) (nota: esto puede cambiar para núcleos futuros; cuando esto suceda, este HOWTO será revisado). Entre en el submenú de dispositivos de consola (<it/Console Drivers/), y habilite lo siguiente:  <itemize>  <item><it>VGA Text Console</it> <item><it>Video Selection Support</it> <item><it>Support for frame buffer devices (experimental)</it> <item><it>VESA VGA Graphic console</it> <item><it>Advanced Low Level Drivers</it> <item><it>Select Mono, 2bpp, 4bpp, 8bpp, 16bpp, 24bpp y 32bpp packed</it> <item><it>Pixel drivers</it> <item><it>VGA character/attributes support</it> </itemize> <it/VGA Chipset Support (text only)/ (<tt/vgafb/) era parte de la lista anterior, pero ha sido eliminado ya que está obsoleto y no será soportado. Se eliminará en breve. Use <it/VGA Text Console/ en su lugar.   Asegúrese de que <it/Mac variable bpp packed pixel support/ no está habilitado (A partir del <tt/2.1.111/, esto parece habilitarse si los <it/Advanced Low Level Drivers/ son seleccionados inicialmente).  Asegúrese de que no sean módulos (No es seguro que sea posible compilarlos todavía como módulos; por favor corríjame si me equivoco en esto). A continuación, recompile el núcleo, modifique el fichero <tt>/etc/lilo.conf</tt> de modo que incluya el parámetro <tt>VGA=ASK</tt>, y ejecute (instalando) <tt/lilo/, esto permitirá seleccionar el modo deseado en el momento de arrancar. Reinicie, y como prueba, introduzca la entrada <tt>0301</tt> tras la solicitud VGA (esto le dará una resolución de 640x480 a 256 colores), y deberá verse un logotipo con un pequeño Pingüino durante el arranque. Una vez que pueda ver esto funcionando, puede explorar los distintos modos VESA (ver abajo) y decidir cuál es el que más le gusta, fije el parámetro "<tt>VGA=x</tt>" en el fichero <tt>/etc/lilo.conf</tt>.  Cuando haya escogido el que más le guste, consulte el valor decimal equivalente de las tablas siguientes y use el número decimal correspondiente (es decir, para una resolución de 1280x1024 a 256 colores, debe usar el valor "<tt>VGA=775</tt>"), y reejecutar <tt/lilo/. Esto es todo!. Para referencias más extensas, leer los documentos relacionados con LoadLin y LILO. <sect>¿Qué modos VESA están disponibles? <p> Esto realmente depende del tipo de tarjeta gráfica compatible con la norma VESA 2.0 que tenga en su sistema, y de la cantidad de memoria de vídeo disponible. El procedimiento anterior es sólo una manera de comprobar qué modos funcionan mejor con su tarjeta gráfica. La siguiente tabla muestra los números de los modos que puede utilizar en la solicitud del parámetro VGA (realmente, a estos modos se le han sumado el valor 0x200 para facilitar su referencia en la tabla): <tscreen><verb> Colores 640x480 800x600 1024x768 1280x1024 1600x1200 --------+--------------------------------------------- 256 | 0301 0303 0305 0307 031C 32,768 | 0310 0313 0316 0319 031D 65,536 | 0311 0314 0317 031A 031E 16.8M | 0312 0315 0318 031B 031F </verb></tscreen> La misma tabla expresada en términos decimales: <tscreen><verb> Colores 640x480 800x600 1024x768 1280x1024 1600x1200 --------+-------------------------------------------- 256   769 771 773 775 796 32,768   784 787 790 793 797 65,536   785 788 791 794 798 16.8M   786 789 792 795 799 </verb></tscreen> (El autor estaría agradecido si le pudiera proporcionar los identificadores <tt/03xx/ para los modos adicionales, esto es, 1152x900) <sect>¿Hay algún driver X11 para vesafb? <p> Sí, lo hay. Necesitará usar el driver <tt/XF86_FBdev/ si por alguna razón su driver X11 actual no es compatible con <tt/vesafb/. Vaya a la página <tt><htmlurl url="http://www.xfree86.org" name="http://www.xfree86.org"></tt>, y baje el archivo <tt>X332servonly.tgz</tt>, desempaquételo, configúrelo revisando <tt>xc/config/cf/xf86site.def</tt>, y active el <tt>#define</tt> para <tt>XF68FBDevServer</tt>. No se preocupe por la referencia m68k, esta soporta plataformas Intel. Recompílelo todo; tardará un tiempo considerable en función del tamaño del código fuente. Todavía hay algo más, no hay disponible ningún <tt/XF86_FBdev/ binario precompilado, pero creo que Debian puede estar trabajando en esto; y ellos podrán producir las dos variantes, <it/libc5/ y <tt/glibc2/. Ha habido informes de que X11 no funciona con ciertas tarjetas gráficas si esta característica vesafb está habilitada, si esto le ocurre, pruebe el nuevo driver <tt/XF86_FBdev/ para X11. Este driver, junto con el <tt/vesafb/ también puede ayudar a ejecutar X11 en resoluciones gráficas mayores con algunos chipsets gráficos que no son soportados por los drivers X11 actuales. Algunos ejemplos son MGA G200 y similares. Afortunadamente se solucionarán los problemas de X11 con el soporte de estas tarjetas gráficas en futuras versiones. <sect>¿Puedo compilar vesafb como módulo? <p> A partir del núcleo <tt/2.1.112/, los vesafb no pueden ser modularizados, aunque con el tiempo, algún desarrollador de <tt/vesafb/ puede decidir modificar los fuentes para permitir la modularización. Tenga en cuenta que incluso si fuera posible la modularización, durante el arranque no podría ver nada en la pantalla hasta que el driver <tt/vesafb/ fuera cargado (vía <tt/modprobe/ o mediante una imagen <tt/initrd/). Por esta razón, es una decisión inteligente dejarlo en el núcleo, para aquellos casos en los que existan problemas de arranque. <sect>Miscelánea y Advertencias <p> Esto sólo es válido para versiones del núcleo <tt>2.1.112</tt>.Este COMO será continuamente actualizado siguiendo los progresos de desarrollo del núcleo. No dude en mandarme un email con información o críticas <tt/:o)/ Otro asunto es que el <it/scrollback buffering/ no funciona todavía. Puede que sea solucionado en futuras versiones. <sect>Acerca de la traducción <p> Este documento ha sido traducido por el grupo <em/Linux-Kfe/, integrado en el INSFLUG. Puede visitar nuestra página en la siguiente dirección: <htmlurl url="http://members.es.tripod.de/linuxkfe" name="http://members.es.tripod.de/linuxkfe"> (también puede utilizar el enlace: <htmlurl url="http://go.to/linuxkfe" name="http://go.to/linuxkfe">). Actualmente gestionamos este grupo las siguientes personas: <descrip> <tag/Director del Proyecto:/ Jesús Martínez Mateo <tt><htmlurl url="mailto:jmartinez@sportec.es" name="jmartinez@sportec.es"></tt>, <tt><htmlurl url="mailto:kfetro@cajamurcia.es" name="kfetro@cajamurcia.es"></tt> </descrip> <descrip> <tag/Coordinadores:/ <itemize> <item>Juan José Roldán Guerrero <tt><htmlurl url="mailto:jroldan@sportec.es" name="jroldan@sportec.es"></tt> <item>Pedro Ruiz Maldonado <tt><htmlurl url="mailto:bigplac@newmail.net" name="bigplac@newmail.net"></tt> </itemize> </descrip> Si desea colaborar con nosotros en futuras traducciones y distintos proyectos relacionados con el mundo de Linux (o si simplemente desea realizar alguna aportación, crítica o sugerencia), envíe un email a la siguiente dirección: <tt><htmlurl url="mailto:linuxkfe@lycosmail.com" name="linuxkfe@lycosmail.com"></tt>. Procuraremos atenderle lo antes posible, de todas formas, si lo cree conveniente puede dirigirse de forma directa a cualquiera de los coordinadores nombrados anteriormente. Fecha de la última modificación: 28 de Noviembre de 1999. <sect>Anexo: El INSFLUG <label id="Insflug"> <p> El <it/INSFLUG/ forma parte del grupo internacional <it>Linux Documentation Project</it>, encargándose de las traducciones al castellano de los Howtos, así como de la producción de documentos originales en aquellos casos en los que no existe análogo en inglés, centrándose, preferentemente, en documentos breves, como los <em/COMOs/ y <em/PUFs/ (<bf/P/reguntas de <bf/U/so <bf/F/recuente, las <it/FAQs/. <tt/:)/ ), etc. Diríjase a la sede del Insflug para más información al respecto. En ella encontrará siempre las <bf/últimas/ versiones de las traducciones «oficiales»: <tt><htmlurl url="http://www.insflug.org" name="www.insflug.org"></tt>. Asegúrese de comprobar cuál es la última versión disponible en el Insflug antes de bajar un documento de un servidor réplica. Además, cuenta con un sistema interactivo de gestión de fe de erratas y sugerencias en línea, motor de búsqueda específico, y más servicios en los que estamos trabajando incesantemente. Se proporciona también una lista de los servidores réplica (<it/mirror/) del Insflug más cercanos a Vd., e información relativa a otros recursos en castellano. En <tt><htmlurl url="http://www.insflug.org/insflug/creditos.php3" name="http://www.insflug.org/insflug/creditos.php3"></tt> cuenta con una detallada relación de las personas que hacen posible tanto esto como las traducciones. ¡Diríjase a <tt><htmlurl url="http://www.insflug.org/colaboracion/index.php3" name="http://www.insflug.org/colaboracion/index.php3"></tt> si desea unirse a nosotros!. «Cartel» Insflug, <tt><htmlurl url="mailto:cartel@insflug.org" name="cartel@insflug.org"></tt>. </article>