home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Edition 1: Linux / CD1.iso / doc / HOWTO / mini / Vesafb < prev    next >
Text File  |  1998-10-14  |  9KB  |  265 lines

  1.   Vesafb mini-HOWTO
  2.   Alex Buell, alex.buell@tahallah.demon.co.uk
  3.   v0.5, 2 August 1998
  4.  
  5.   This document describes how to use the vesafb device in Linux with a
  6.   VESA 2.0 compliant graphic card on Intel platforms.
  7.   ______________________________________________________________________
  8.  
  9.   Table of Contents
  10.  
  11.  
  12.   1. Contributors
  13.  
  14.   2. What is vesafb?
  15.  
  16.   3. What is a framebuffer device?
  17.  
  18.   4. How do I activate the vesafb drivers?
  19.  
  20.   5. What VESA modes are available to me?
  21.  
  22.   6. Is there a X11 driver for vesafb?
  23.  
  24.   7. Can I make vesafb as a module?
  25.  
  26.   8. Miscellaneous/Caveats
  27.  
  28.  
  29.  
  30.   ______________________________________________________________________
  31.  
  32.   1.  Contributors
  33.  
  34.   Thanks go to these people listed below who helped improve the vesafb
  35.   HOWTO.
  36.  
  37.  
  38.   ╖  Jeff Noxon jeff@planetfall.com
  39.  
  40.   ╖  Francis Devereux f.devereux@cs.ucl.ac.uk
  41.  
  42.   ╖  Andreas Ehliar ehliar@futurniture.se
  43.  
  44.   ╖  Martin McCarthy marty@ehabitat.demon.co.uk
  45.  
  46.   ╖  Simon Kenyon simon@koala.ie
  47.  
  48.   ╖  David Ford david@kalifornia.com
  49.  
  50.   ╖  Chris Black cblack@cmpteam4.unil.ch
  51.  
  52.   ╖  N Becker nbecker@fred.net
  53.  
  54.   ╖  Bob Tracy rct@gherkin.sa.wlk.com
  55.  
  56.   ╖  Marius Hjelle marius.hjelle@roman.uib.no
  57.  
  58.   ╖  Aaron Tiensivu tiensivu@pilot.msu.edu
  59.  
  60.   and of course the authors of the framebuffer devices:
  61.  
  62.  
  63.   ╖  Gerd Knorr kraxel@cs.tu-berlin.de
  64.  
  65.   ╖  Geert Uytterhoeven Geert.Uytterhoeven@cs.kuleuven.ac.be
  66.  
  67.   ╖  Martin Mares mj@ucw.cz
  68.  
  69.   ╖  Anyone else, stand up and be counted. :o)
  70.  
  71.  
  72.   2.  What is vesafb?
  73.  
  74.   Vesafb is a framebuffer driver for Intel architecture that works with
  75.   VESA 2.0 compliant graphic cards. It is closely related to the
  76.   framebuffer device drivers in the kernel.
  77.  
  78.   vesafb is a display driver that enables the use of graphical modes on
  79.   your Intel platform for bitmapped text consoles. It can also display a
  80.   logo, which is probably the main reason why you'd want to use vesafb
  81.   :o)
  82.  
  83.   Unfortunately, you can not use vesafb successfully with VESA 1.2
  84.   cards.  This is because these 1.2 cards do not use framebuffering. It
  85.   may be that someone will write a vesafb12 device driver for these
  86.   cards, but this will use up precious kernel memory. :o(
  87.  
  88.   There is however a potential workaround to add VESA 2.0 extensions for
  89.   your legacy VESA 1.2 card. You may be able to download a TSR type
  90.   program that will run from DOS, and used in cojunction with loadlin,
  91.   can help configure the card for the appropriate graphic console modes.
  92.   Note that this will not always work, as an example some Cirrus Logic
  93.   cards such as the VLB 54xx series are mapped to a range of memory
  94.   addresses (for example, within the 15MB-16MB range) for frame
  95.   buffering which preludes these from being used successfully with
  96.   systems that have more than 32MB of memory. [There is a way to make
  97.   this work, i.e. if you have a BIOS option to leave a memory hole at
  98.   15MB-16MB range, it might work, but I've been told that Linux doesn't
  99.   support this] If you wish to experiment with this option, there are
  100.   plenty of TSR style programs available, a prime example is UNIVBE,
  101.   which can be found on the Internet.
  102.  
  103.  
  104.   3.  What is a framebuffer device?
  105.  
  106.   A framebuffer device is an abstraction for the graphic hardware. It
  107.   represents the frame buffer of some video hardware, and allows
  108.   application software to access the graphic hardware through a well-
  109.   defined interface, so that the software doesn't need to know anything
  110.   about the low-level interface stuff [Taken from Geert Uytterhoeven's
  111.   framebuffer.txt in the linux kernel sources]
  112.  
  113.  
  114.   4.  How do I activate the vesafb drivers?
  115.  
  116.   [Note: The information is based on what I know and have achieved using
  117.   the Linux kernel v2.1.112 on a P75+ with an ATI VideoExpress 2MB
  118.   graphic card.  Feel free to email me with information/special cases
  119.   for different graphic cards]
  120.  
  121.   Assuming you are using menuconfig, you will need to do the following
  122.   steps:
  123.  
  124.   Go into the Code Maturity Level menu, and enable the prompt for
  125.   development and/or incomplete drivers [note this may change for future
  126.   kernels - when this happens, this HOWTO will be revised]
  127.  
  128.   Go into the Console Drivers menu, and enable the following:
  129.  
  130.  
  131.   ╖  VGA Text Console
  132.  
  133.   ╖  Video Selection Support
  134.  
  135.   ╖  Support for frame buffer devices (experimental)
  136.  
  137.   ╖  VESA VGA Graphic console
  138.  
  139.   ╖  Advanced Low Level Drivers
  140.  
  141.   ╖  Select Mono, 2bpp, 4bpp, 8bpp, 16bpp, 24bpp and 32bpp packed
  142.  
  143.   ╖  pixel drivers
  144.  
  145.   ╖  VGA character/attributes support
  146.  
  147.   VGA Chipset Support (text only) - vgafb - used to be part of the list
  148.   above, but it has been removed as it is now deprecated and no longer
  149.   supported. It will be removed shortly. Use VGA Text Console instead.
  150.  
  151.   Ensure that the Mac variable bpp packed pixel support is not enabled.
  152.   [As of 2.1.111, this seems to get enabled if Advanced Low Level
  153.   Drivers is initally selected]
  154.  
  155.   Make sure these aren't going to be modules. [Not sure if it's possible
  156.   to build them as modules yet - please correct me on this]
  157.  
  158.   Then rebuild the kernel, modify /etc/lilo.conf to include the VGA=ASK
  159.   parameter, and run lilo, this is required in order for you to be able
  160.   to select the modes you wish to use.
  161.  
  162.   Reboot the kernel, and as a simple test, try entering 0301 at the VGA
  163.   prompt (this will give you 640x480 @ 256), and you should be able to
  164.   see a cute little Penguin logo.
  165.  
  166.   Once you can see that's working well, you can explore the various VESA
  167.   modes (see below) and decide on the one that you like the best, and
  168.   hardwire that into the "VGA=x" parameter in lilo.conf. When you have
  169.   chosen the one you like the best, look up the decimal equivalent from
  170.   the tables below and use the corresponding decimal number (i.e. for
  171.   1280x1024 @ 256, you just use "VGA=775"), and re-run lilo. That's all
  172.   there it is to it. For further references, read the LoadLin/LILO
  173.   HOWTOs.
  174.  
  175.  
  176.   5.  What VESA modes are available to me?
  177.  
  178.   This really depends on the type of VESA 2.0 compliant graphic card
  179.   that you have in your system, and the amount of video memory
  180.   available. This is just a matter of testing which modes work best for
  181.   your graphic card.
  182.  
  183.   The following table shows the mode numbers you can input at the VGA
  184.   prompt (actually these numbers are plus 0x200 to make it easier to
  185.   refer to the table)
  186.  
  187.  
  188.   Colours   640x480 800x600 1024x768 1280x1024 1600x1200
  189.   --------+---------------------------------------------
  190.   256     |  0301    0303     0305     0307      031C
  191.   32,768  |  0310    0313     0316     0319      031D
  192.   65,536  |  0311    0314     0317     031A      031E
  193.   16.8M   |  0312    0315     0318     031B      031F
  194.  
  195.  
  196.  
  197.   For convienence, here is the same table in decimal terms
  198.  
  199.   Colours   640x480 800x600 1024x768 1280x1024 1600x1200
  200.   --------+---------------------------------------------
  201.   256     |   769     771      773      775       796
  202.   32,768  |   784     787      790      793       797
  203.   65,536  |   785     788      791      794       798
  204.   16.8M   |   786     789      792      795       799
  205.  
  206.  
  207.  
  208.   [The author would be happy if you could supply him with additional
  209.   03xx numbers for additional modes i.e 1152x900?]
  210.  
  211.  
  212.   6.  Is there a X11 driver for vesafb?
  213.  
  214.   Yes, there is, actually. You will need to use the XF86_FBdev driver if
  215.   for some reason your current X11 driver doesn't like vesafb. Go to
  216.   http://www.xfree86.org, and download the X332servonly.tgz archive,
  217.   unpack, configure it by editing xc/config/cf/xf86site.def, and
  218.   uncomment the #define for XF68FBDevServer. Don't worry about the m68k
  219.   reference, it supports Intel platforms. Then build the whole thing -
  220.   it'll take a long time though as it's a large source tree.
  221.  
  222.   There is as of yet, no pre-compiled XF86_FBdev binary available, but I
  223.   understand that Debian may be working on this; and they will be able
  224.   to produce both libc5/glibc2 variants.
  225.  
  226.   There have been reports that X11 is non functional on certain graphic
  227.   cards with this vesafb feature enabled, if this is happening, try the
  228.   new XF86_FBdev driver for X11.
  229.  
  230.   This driver, along with vesafb can also help run X11 in higher graphic
  231.   resolutions with certain graphic chipsets which are not supported by
  232.   any of the current X11 drivers. Examples are MGA G-200 et. al.
  233.  
  234.   Hopefully the X11 problems with supported graphic cards will be fixed
  235.   in future releases.
  236.  
  237.  
  238.   7.  Can I make vesafb as a module?
  239.  
  240.   As of v2.1.112, vesafb can't be modularised, although at some point in
  241.   time, the developer of vesafb may decide to modify the sources for
  242.   modularising. Note that even if modularising is possible, at boot time
  243.   you will not be able to see any output on the display until vesafb is
  244.   'modprobed'. It's probably a lot wiser to leave it in the kernel, for
  245.   these cases when there are booting problems.
  246.  
  247.  
  248.   8.  Miscellaneous/Caveats
  249.  
  250.   This is current only for v2.1.112 of the Linux kernel. This HOWTO will
  251.   be constantly updated as kernel development progresses. Feel free to
  252.   email the author with information/flames :o)
  253.  
  254.   Another gotcha is that scrollback buffering does not work yet. May be
  255.   fixed in future releases.
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.