1.  Introduction


This is the Linux Framebuffer driver HOWTO. It is intended as a quick reference covering everything you need to know to write a framebuffer video driver under Linux. Frequently asked questions about video mode setting under Linux are answered, and references are given to some other sources of information on a variety of topics related to computer graphics. Also, read this document not once, not twice but three times if you are not familiar with video hardware.

The scope is limited to the aspects of writing a mode setting video card framebuffer driver pertaining to Linux. listed See the other documents in the References section for more general information on how to setup framebuffer cards and setting up the XFB_Dev X server.

1.1.  Acknowledgments

Much of this information came from the new framebuffer internal API being developed by me for the upcoming next series of kernels. Originally, this was based on a patch by Fabrice Bellard. I learned of this patch and was impressed by it. Later, I took over development and improved it even more. Much thanks goes to Fabrice for getting the ball rolling. This API is a natural extension of the original API developed by Martin Schaller and now maintained by Geert Uytterhoeven (geert@linux-m68k.org). Thanks go to you and the many others who developed the Linux framebuffer system, drivers and utilities. A great amount of thanks goes to Andreas Beck of the GGI project for helping me write this document and teaching me about mode setting. Thanks also go out to those who have supported my work.

Thanks to the SGML Tools package, this HOWTO is available in several formats, all generated from a common source file.

1.2.  Revision History

Version 1.0

First version; posted to fbdev mailing list only.

Version 1.1

Updated version; placed into CVS.Updated to reflect new purposed designs in the framebuffer api

1.3.  New versions of this document

New versions of this document will be periodically posted to the comp.os.linux.answers newsgroup. They will also be uploaded to various anonymous ftp sites that archive such information including ftp://metalabs.unc.edu/pub/Linux/docs/HOWTO/>. Hypertext versions of this and other Linux HOWTOs are available on many World-Wide-Web sites, including <http://metalab.unc.edu/LDP/>. Most Linux CD-ROM distributions include the HOWTOs, often under the /usr/doc directory, and you can also buy printed copies from several vendors. Sometimes the HOWTOs available from CD-ROM vendors, ftp sites, and printed format are out of date. If the date on this HOWTO is more than six months in the past, then a newer copy is probably available on the Internet.

Most translations of this and other Linux HOWTOs can also be found at <http://sunsite.unc.edu/pub/Linux/docs/HOWTO/translations/> and <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/translations/>.

If you make a translation of this document into another language, let me know and I'll include a reference to it here. As of yet there are no translations.

1.4.  Feedback

I rely on you, the reader, to make this HOWTO useful. If you have any suggestions, corrections, or comments, please send them to me, <jsimmons@transvirtual.com>, and I will try to incorporate them in the next revision.

I am also willing to answer general questions on video cards and fbcon under Linux as best I can. Before doing so, please read all of the information in this HOWTO and send me detailed information about the problem. Please do not ask me about using framebuffer cards under operating systems other than Linux.

If you publish this document on a CD-ROM or in hardcopy form, a complimentary copy would be appreciated. Mail me for my postal address. Also, consider making a donation to the Linux Documentation Project to help support free documentation for Linux. Contact the Linux HOWTO coordinator, Tim Bynum <linux-howto@sunsite.unc.edu>, for more information.

1.5.  Distribution Policy

Copyright (c) 2001 by James Simmons.  This document may be distributed under the terms set forth in the LDP license at <http://sunsite.unc.edu/LDP/COPYRIGHT.html>.

index forward