[PATCH] fbcon: Console Rotation - Add framebuffer console documentation
Antonino A. Daplas [Wed, 9 Nov 2005 05:39:15 +0000 (21:39 -0800)]
Add documentation as Documentation/fb/fbcon.txt describing the framebuffer
console and its boot options.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Documentation/fb/fbcon.txt [new file with mode: 0644]

diff --git a/Documentation/fb/fbcon.txt b/Documentation/fb/fbcon.txt
new file mode 100644 (file)
index 0000000..08dce0f
--- /dev/null
@@ -0,0 +1,152 @@
+The Framebuffer Console
+=======================
+
+       The framebuffer console (fbcon), as its name implies, is a text
+console running on top of the framebuffer device. It has the functionality of
+any standard text console driver, such as the VGA console, with the added
+features that can be attributed to the graphical nature of the framebuffer.
+
+        In the x86 architecture, the framebuffer console is optional, and
+some even treat it as a toy. For other architectures, it is the only available
+display device, text or graphical.
+
+        What are the features of fbcon?  The framebuffer console supports
+high resolutions, varying font types, display rotation, primitive multihead,
+etc. Theoretically, multi-colored fonts, blending, aliasing, and any feature
+made available by the underlying graphics card are also possible.
+
+A. Configuration
+
+       The framebuffer console can be enabled by using your favorite kernel
+configuration tool.  It is under Device Drivers->Graphics Support->Support for
+framebuffer devices->Framebuffer Console Support. Select 'y' to compile
+support statically, or 'm' for module support.  The module will be fbcon.
+
+       In order for fbcon to activate, at least one framebuffer driver is
+required, so choose from any of the numerous drivers available. For x86
+systems, they almost universally have VGA cards, so vga16fb and vesafb will
+always be available. However, using a chipset-specific driver will give you
+more speed and features, such as the ability to change the video mode
+dynamically.
+
+       To display the penguin logo, choose any logo available in Logo
+Configuration->Boot up logo.
+
+       Also, you will need to select at least one compiled-in fonts, but if
+you don't do anything, the kernel configuration tool will select one for you,
+usually an 8x16 font.
+
+GOTCHA: A common bug report is enabling the framebuffer without enabling the
+framebuffer console.  Depending on the driver, you may get a blanked or
+garbled display, but the system still boots to completion.  If you are
+fortunate to have a driver that does not alter the graphics chip, then you
+will still get a VGA console.
+
+B. Loading
+
+Possible scenarios:
+
+1. Driver and fbcon are compiled statically
+
+        Usually, fbcon will automatically take over your console. The notable
+        exception is vesafb.  It needs to be explicitly activated with the
+        vga= boot option parameter.
+
+2. Driver is compiled statically, fbcon is compiled as a module
+
+        Depending on the driver, you either get a standard console, or a
+        garbled display, as mentioned above.  To get a framebuffer console,
+        do a 'modprobe fbcon'.
+
+3. Driver is compiled as a module, fbcon is compiled statically
+
+        You get your standard console.  Once the driver is loaded with
+        'modprobe xxxfb', fbcon automatically takes over the console with
+        the possible exception of using the fbcon=map:n option. See below.
+
+4. Driver and fbcon are compiled as a module.
+
+        You can load them in any order. Once both are loaded, fbcon will take
+        over the console.
+
+C. Boot options
+
+         The framebuffer console has several, largely unknown, boot options
+         that can change its behavior.
+
+1. fbcon=font:<name>
+
+        Select the initial font to use. The value 'name' can be any of the
+        compiled-in fonts: VGA8x16, 7x14, 10x18, VGA8x8, MINI4x6, RomanLarge,
+        SUN8x16, SUN12x22, ProFont6x11, Acorn8x8, PEARL8x8.
+
+       Note, not all drivers can handle font with widths not divisible by 8,
+        such as vga16fb.
+
+2. fbcon=scrollback:<value>[k]
+
+        The scrollback buffer is memory that is used to preserve display
+        contents that has already scrolled past your view.  This is accessed
+        by using the Shift-PageUp key combination.  The value 'value' is any
+        integer. It defaults to 32KB.  The 'k' suffix is optional, and will
+        multiply the 'value' by 1024.
+
+3. fbcon=map:<0123>
+
+        This is an interesting option. It tells which driver gets mapped to
+        which console. The value '0123' is a sequence that gets repeated until
+        the total length is 64 which is the number of consoles available. In
+        the above example, it is expanded to 012301230123... and the mapping
+        will be:
+
+               tty | 1 2 3 4 5 6 7 8 9 ...
+               fb  | 0 1 2 3 0 1 2 3 0 ...
+
+               ('cat /proc/fb' should tell you what the fb numbers are)
+
+       One side effect that may be useful is using a map value that exceeds
+       the number of loaded fb drivers. For example, if only one driver is
+       available, fb0, adding fbcon=map:1 tells fbcon not to take over the
+       console.
+
+       Later on, when you want to map the console the to the framebuffer
+       device, you can use the con2fbmap utility.
+
+4. fbcon=vc:<n1>-<n2>
+
+       This option tells fbcon to take over only a range of consoles as
+       specified by the values 'n1' and 'n2'. The rest of the consoles
+       outside the given range will still be controlled by the standard
+       console driver.
+
+       NOTE: For x86 machines, the standard console is the VGA console which
+       is typically located on the same video card.  Thus, the consoles that
+       are controlled by the VGA console will be garbled.
+
+4. fbcon=rotate:<n>
+
+        This option changes the orientation angle of the console display. The
+        value 'n' accepts the following:
+
+             0 - normal orientation (0 degree)
+             1 - clockwise orientation (90 degrees)
+             2 - upside down orientation (180 degrees)
+             3 - counterclockwise orientation (270 degrees)
+
+       The angle can be changed anytime afterwards by 'echoing' the same
+       numbers to any one of the 2 attributes found in
+       /sys/class/graphics/fb{x}
+
+               con_rotate     - rotate the display of the active console
+               con_rotate_all - rotate the display of all consoles
+
+       Console rotation will only become available if Console Rotation
+       Support is compiled in your kernel.
+
+       NOTE: This is purely console rotation.  Any other applications that
+       use the framebuffer will remain at their 'normal'orientation.
+       Actually, the underlying fb driver is totally ignorant of console
+       rotation.
+
+---
+Antonino Daplas <adaplas@pol.net>