diff options
author | Antonino A. Daplas <adaplas@gmail.com> | 2005-11-09 00:39:15 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-09 10:56:35 -0500 |
commit | efb985f6b265faed75426010e84a79de972c640a (patch) | |
tree | 48d8a7c18a31a255363e3d7a3c3100f310229a12 /Documentation | |
parent | a812c94b94e3db76d1af68208fb3edef69070401 (diff) |
[PATCH] fbcon: Console Rotation - Add framebuffer console documentation
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>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/fb/fbcon.txt | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/Documentation/fb/fbcon.txt b/Documentation/fb/fbcon.txt new file mode 100644 index 000000000000..08dce0f631bf --- /dev/null +++ b/Documentation/fb/fbcon.txt | |||
@@ -0,0 +1,152 @@ | |||
1 | The Framebuffer Console | ||
2 | ======================= | ||
3 | |||
4 | The framebuffer console (fbcon), as its name implies, is a text | ||
5 | console running on top of the framebuffer device. It has the functionality of | ||
6 | any standard text console driver, such as the VGA console, with the added | ||
7 | features that can be attributed to the graphical nature of the framebuffer. | ||
8 | |||
9 | In the x86 architecture, the framebuffer console is optional, and | ||
10 | some even treat it as a toy. For other architectures, it is the only available | ||
11 | display device, text or graphical. | ||
12 | |||
13 | What are the features of fbcon? The framebuffer console supports | ||
14 | high resolutions, varying font types, display rotation, primitive multihead, | ||
15 | etc. Theoretically, multi-colored fonts, blending, aliasing, and any feature | ||
16 | made available by the underlying graphics card are also possible. | ||
17 | |||
18 | A. Configuration | ||
19 | |||
20 | The framebuffer console can be enabled by using your favorite kernel | ||
21 | configuration tool. It is under Device Drivers->Graphics Support->Support for | ||
22 | framebuffer devices->Framebuffer Console Support. Select 'y' to compile | ||
23 | support statically, or 'm' for module support. The module will be fbcon. | ||
24 | |||
25 | In order for fbcon to activate, at least one framebuffer driver is | ||
26 | required, so choose from any of the numerous drivers available. For x86 | ||
27 | systems, they almost universally have VGA cards, so vga16fb and vesafb will | ||
28 | always be available. However, using a chipset-specific driver will give you | ||
29 | more speed and features, such as the ability to change the video mode | ||
30 | dynamically. | ||
31 | |||
32 | To display the penguin logo, choose any logo available in Logo | ||
33 | Configuration->Boot up logo. | ||
34 | |||
35 | Also, you will need to select at least one compiled-in fonts, but if | ||
36 | you don't do anything, the kernel configuration tool will select one for you, | ||
37 | usually an 8x16 font. | ||
38 | |||
39 | GOTCHA: A common bug report is enabling the framebuffer without enabling the | ||
40 | framebuffer console. Depending on the driver, you may get a blanked or | ||
41 | garbled display, but the system still boots to completion. If you are | ||
42 | fortunate to have a driver that does not alter the graphics chip, then you | ||
43 | will still get a VGA console. | ||
44 | |||
45 | B. Loading | ||
46 | |||
47 | Possible scenarios: | ||
48 | |||
49 | 1. Driver and fbcon are compiled statically | ||
50 | |||
51 | Usually, fbcon will automatically take over your console. The notable | ||
52 | exception is vesafb. It needs to be explicitly activated with the | ||
53 | vga= boot option parameter. | ||
54 | |||
55 | 2. Driver is compiled statically, fbcon is compiled as a module | ||
56 | |||
57 | Depending on the driver, you either get a standard console, or a | ||
58 | garbled display, as mentioned above. To get a framebuffer console, | ||
59 | do a 'modprobe fbcon'. | ||
60 | |||
61 | 3. Driver is compiled as a module, fbcon is compiled statically | ||
62 | |||
63 | You get your standard console. Once the driver is loaded with | ||
64 | 'modprobe xxxfb', fbcon automatically takes over the console with | ||
65 | the possible exception of using the fbcon=map:n option. See below. | ||
66 | |||
67 | 4. Driver and fbcon are compiled as a module. | ||
68 | |||
69 | You can load them in any order. Once both are loaded, fbcon will take | ||
70 | over the console. | ||
71 | |||
72 | C. Boot options | ||
73 | |||
74 | The framebuffer console has several, largely unknown, boot options | ||
75 | that can change its behavior. | ||
76 | |||
77 | 1. fbcon=font:<name> | ||
78 | |||
79 | Select the initial font to use. The value 'name' can be any of the | ||
80 | compiled-in fonts: VGA8x16, 7x14, 10x18, VGA8x8, MINI4x6, RomanLarge, | ||
81 | SUN8x16, SUN12x22, ProFont6x11, Acorn8x8, PEARL8x8. | ||
82 | |||
83 | Note, not all drivers can handle font with widths not divisible by 8, | ||
84 | such as vga16fb. | ||
85 | |||
86 | 2. fbcon=scrollback:<value>[k] | ||
87 | |||
88 | The scrollback buffer is memory that is used to preserve display | ||
89 | contents that has already scrolled past your view. This is accessed | ||
90 | by using the Shift-PageUp key combination. The value 'value' is any | ||
91 | integer. It defaults to 32KB. The 'k' suffix is optional, and will | ||
92 | multiply the 'value' by 1024. | ||
93 | |||
94 | 3. fbcon=map:<0123> | ||
95 | |||
96 | This is an interesting option. It tells which driver gets mapped to | ||
97 | which console. The value '0123' is a sequence that gets repeated until | ||
98 | the total length is 64 which is the number of consoles available. In | ||
99 | the above example, it is expanded to 012301230123... and the mapping | ||
100 | will be: | ||
101 | |||
102 | tty | 1 2 3 4 5 6 7 8 9 ... | ||
103 | fb | 0 1 2 3 0 1 2 3 0 ... | ||
104 | |||
105 | ('cat /proc/fb' should tell you what the fb numbers are) | ||
106 | |||
107 | One side effect that may be useful is using a map value that exceeds | ||
108 | the number of loaded fb drivers. For example, if only one driver is | ||
109 | available, fb0, adding fbcon=map:1 tells fbcon not to take over the | ||
110 | console. | ||
111 | |||
112 | Later on, when you want to map the console the to the framebuffer | ||
113 | device, you can use the con2fbmap utility. | ||
114 | |||
115 | 4. fbcon=vc:<n1>-<n2> | ||
116 | |||
117 | This option tells fbcon to take over only a range of consoles as | ||
118 | specified by the values 'n1' and 'n2'. The rest of the consoles | ||
119 | outside the given range will still be controlled by the standard | ||
120 | console driver. | ||
121 | |||
122 | NOTE: For x86 machines, the standard console is the VGA console which | ||
123 | is typically located on the same video card. Thus, the consoles that | ||
124 | are controlled by the VGA console will be garbled. | ||
125 | |||
126 | 4. fbcon=rotate:<n> | ||
127 | |||
128 | This option changes the orientation angle of the console display. The | ||
129 | value 'n' accepts the following: | ||
130 | |||
131 | 0 - normal orientation (0 degree) | ||
132 | 1 - clockwise orientation (90 degrees) | ||
133 | 2 - upside down orientation (180 degrees) | ||
134 | 3 - counterclockwise orientation (270 degrees) | ||
135 | |||
136 | The angle can be changed anytime afterwards by 'echoing' the same | ||
137 | numbers to any one of the 2 attributes found in | ||
138 | /sys/class/graphics/fb{x} | ||
139 | |||
140 | con_rotate - rotate the display of the active console | ||
141 | con_rotate_all - rotate the display of all consoles | ||
142 | |||
143 | Console rotation will only become available if Console Rotation | ||
144 | Support is compiled in your kernel. | ||
145 | |||
146 | NOTE: This is purely console rotation. Any other applications that | ||
147 | use the framebuffer will remain at their 'normal'orientation. | ||
148 | Actually, the underlying fb driver is totally ignorant of console | ||
149 | rotation. | ||
150 | |||
151 | --- | ||
152 | Antonino Daplas <adaplas@pol.net> | ||