[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>
This commit is contained in:
		
							parent
							
								
									a812c94b94
								
							
						
					
					
						commit
						efb985f6b2
					
				
							
								
								
									
										152
									
								
								Documentation/fb/fbcon.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										152
									
								
								Documentation/fb/fbcon.txt
									
									
									
									
									
										Normal file
									
								
							| @ -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> | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user