ºìÁªLinuxÃÅ»§
Linux°ïÖú

ÏÔʾÇý¶¯:FrameBuffer,libggi,vgaÈýÖÖͼÐÎÇý¶¯

·¢²¼Ê±¼ä:2006-10-25 16:45:10À´Ô´:ºìÁª×÷Õß:febspeolal
ÏÔʾÇý¶¯£ºframebuffer (×î¿ì), VGA (Âý), libggi (Âý).

FrameBuffer£¬¿ÉÒÔÒë×÷¡°Ö¡»º³å¡±£¬ÓÐʱ¼ò³ÆΪfbdrv£¬»ùÓÚfbdrvµÄconsoleÒ²±»³Æ֮Ϊfbcon¡£ÕâÊÇÒ»ÖÖ¶ÀÁ¢ÓÚÓ²¼þµÄ³éÏóͼÐÎÉ豸¡£ FrameBufferµÄÓŵãÔÚÓÚÆä¸ß¶ÈµÄ¿ÉÒÆÖ²ÐÔ¡¢Ò×ʹÓÃÐÔ¡¢Îȶ¨ÐÔ¡£Ê¹ÓÃLinuxÄں˵ÄFrameBufferÇý¶¯£¨vesafb£©£¬¿ÉÒÔÇáËÉÖ§³Öµ½1024X768X32bppÒÔÉϵķֱçÂÊ¡£¶øÇÒÄ¿Ç°¿ÉµÃµ½µÄ¾ø´ó¶àÊýlinux°æ±¾Ëù·¢ÐеÄÄÚºËÖУ¬ÒѾ­Ô¤±àÒëÁËFrameBufferÖ§³Ö£¬Í¨³£²»ÐèÒªÖØбàÒëÄں˾ͿÉÒÔʹÓá£ËùÒÔFrameBufferÒ²ÊÇzhconÍƼöʹÓõÄÇý¶¯·½Ê½¡£

½øÈëFrameBuffer¿ÉÒÔ¼òµ¥µØÔÚϵͳÆô¶¯Ê±Ïòkernel´«ËÍvga=mode-numberµÄ²ÎÊýÀ´¼¤»îFrameBufferÉ豸£¬È磺
[code]lilo:linux vga=305[/code]
½«»áÆô¶¯1024x768x8bppģʽ¡£

[table=98%][tr][td][align=center]É«²Ê[/align][/td][td][align=center]640x400[/align][/td][td][align=center]640x480[/align][/td][td][align=center]800x600[/align][/td][td][align=center]1024x768[/align][/td][td][align=center]1280x1024[/align][/td][td][align=center]1600x1200[/align][/td][/tr][tr][td][align=center]4bits[/align][/td][td][align=center]?[/align][/td][td][align=center]?[/align][/td][td][align=center]0x302[/align][/td][td][align=center]?[/align][/td][td][align=center]?[/align][/td][td][align=center]?[/align][/td][/tr][tr][td][align=center]8bits[/align][/td][td][align=center]0x300[/align][/td][td][align=center]0x301[/align][/td][td][align=center]0x303[/align][/td][td][align=center]0x305[/align][/td][td][align=center]0x307[/align][/td][td][align=center]0x31C[/align][/td][/tr][tr][td][align=center]15bits[/align][/td][td][align=center]?[/align][/td][td][align=center]0x310[/align][/td][td][align=center]0x313[/align][/td][td][align=center]0x316[/align][/td][td][align=center]0x319[/align][/td][td][align=center]0x31D[/align][/td][/tr][tr][td][align=center]16bits[/align][/td][td][align=center]?[/align][/td][td][align=center]0x311[/align][/td][td][align=center]0x314[/align][/td][td][align=center]0x317[/align][/td][td][align=center]0x31A[/align][/td][td][align=center]0x31E[/align][/td][/tr][tr][td][align=center]24bits[/align][/td][td][align=center]?[/align][/td][td][align=center]0x312[/align][/td][td][align=center]0x315[/align][/td][td][align=center][s0x318[/align][/td][td][align=center]0x31B[/align][/td][td][align=center]0x31F[/align][/td][/tr][tr][td][align=center]32bits[/align][/td][td][align=center]?[/align][/td][td][align=center]?[/align][/td][td][align=center]?[/align][/td][td][align=center]?[/align][/td][td][align=center]?[/align][/td][td][align=center]?[/align][/td][/tr][/table]
Ҫʹlinuxȱʡ½øÈëFrameBuffer£¬¿ÉÒÔÐÞ¸Ä/etc/lilo.conf£¬¼ÓÈëÒ»ÏÂÓï¾ä£º
[code]vga=0x303[/code]

Í˳ö±à¼­£¬Ö´ÐУº
[code]lilo -v[/code]

ÖØÐÂÆô¶¯linux£¬¿ÉÒÔʹÆä½øÈë800x600µÄ256ɫģʽ¡£

libggi£¬libggiÊÇÒ»¸ö¿çƽ̨µÄ»æͼ¿â¡£ÔÚLinuxÉÏ£¬libggiÊÇͨ¹ýµ÷ÓÃFrameBuffer»òsvgalibÀ´Íê³ÉͼÐβÙ×÷µÄ£¬¿ÉÄÜËÙ¶ÈËٶȱȽÏÂý¡£µ«ÔÚijЩ²»Ö§³ÖFrameBuffer»òÊÇvgaµÄϵͳÉÏʹÓÃlibggiÈÔÈ»ÊÇÒ»ÖÖ²»´íµÄÑ¡Ôñ¡£
ҪʹÓÃlibggi£¬ÐèÒªÉèÖÃGGI_DISPLAY»·¾³±äÁ¿£¬ÀýÈ磺
ÔÚ.bash_profileÖмÓÈëexport GGI_DISPLAY=display-fbdev:-noinput
½«Ê¹ÓÃlibggiÌṩµÄ½Ó¿ÚÀ´Íê³ÉͼÐÎÊä³ö£¨Ê¹ÓÃFrameBuffer£©¡£¸üÏêϸµÄÐÅÏ¢Çë²ÎÔÄlibggiµÄÎĵµ¡£

vga£¬Èç¹ûÄúµÄÄں˲¢Ã»ÓбàÒë½ø¶ÔFrameBufferµÄÖ§³Ö£¬ÄÇô¿ÉÒÔʹÓÃÄÚ½¨µÄvgaÇý¶¯À´Ê¹ÏÔÄ¿¹¤×÷ÔÚ640x480x16É«µÄģʽÏ¡£ÒòΪvgaÇý¶¯ÊÇÖ±½Ó¶ÔÏÔ¿¨ÉϵļĴæÆ÷²Ù×÷£¬ËùÒÔÕâÖÖ·½Ê½µÄÒÆÖ²ÐԺܲËÙ¶ÈÒ²±È½ÏÂý¡£


ϵͳÆô¶¯Ê±»á°´ÒÔÏÂ˳ÐòÀ´Ñ¡ÔñͼÐÎÇý¶¯£ºlibggi£¨Èç¹ûÉèÖÃÁË»·¾³±äÁ¿GGI_DISPLAY£©,framebuffer,vga.
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. sbso ÓÚ 2010-10-04 13:35:08·¢±í:

    ¶¥Ò»¸ö£¬Â¥Ö÷½²µÄ²»´í¡£