顯示驅動:framebuffer (最快), VGA (慢), libggi (慢).
FrameBuffer,可以譯作“幀緩衝”,有時簡稱為fbdrv,基於fbdrv的console也被稱之為fbcon。這是一種獨立於硬體的抽象圖形裝置。 FrameBuffer的優點在於其高度的可移植性、易使用性、穩定性。使用Linux核心的FrameBuffer驅動(vesafb),可以輕鬆支援到1024X768X32bpp以上的分辯率。而且目前可得到的絕大多數linux版本所發行的核心中,已經先行編譯了FrameBuffer支援,通常不需要重新編譯核心就可以使用。所以FrameBuffer也是zhcon推薦使用的驅動方式。
進入FrameBuffer可以簡單地在系統啟動時向kernel傳送vga=mode-number的參數來啟用FrameBuffer裝置,如:
將會啟動1024x768x8bpp模式。
[table=98%][tr][td]
色彩
[/td][td]
640x400
[/td][td]
640x480
[/td][td]
800x600
[/td][td]
1024x768
[/td][td]
1280x1024
[/td][td]
1600x1200
[/td][/tr][tr][td]
4bits
[/td][td]
?
[/td][td]
?
[/td][td]
0x302
[/td][td]
?
[/td][td]
?
[/td][td]
?
[/td][/tr][tr][td]
8bits
[/td][td]
0x300
[/td][td]
0x301
[/td][td]
0x303
[/td][td]
0x305
[/td][td]
0x307
[/td][td]
0x31C
[/td][/tr][tr][td]
15bits
[/td][td]
?
[/td][td]
0x310
[/td][td]
0x313
[/td][td]
0x316
[/td][td]
0x319
[/td][td]
0x31D
[/td][/tr][tr][td]
16bits
[/td][td]
?
[/td][td]
0x311
[/td][td]
0x314
[/td][td]
0x317
[/td][td]
0x31A
[/td][td]
0x31E
[/td][/tr][tr][td]
24bits
[/td][td]
?
[/td][td]
0x312
[/td][td]
0x315
[/td][td]
[s0x318
[/td][td]
0x31B
[/td][td]
0x31F
[/td][/tr][tr][td]
32bits
[/td][td]
?
[/td][td]
?
[/td][td]
?
[/td][td]
?
[/td][td]
?
[/td][td]
?
[/td][/tr][/table]
要使linux預設進入FrameBuffer,可以修改/etc/lilo.conf,加入一下語句:
退出編輯,執行:
重新啟動linux,可以使其進入800x600的256色模式。
libggi,libggi是一個跨平台的繪圖庫。在Linux上,libggi是通過調用FrameBuffer或svgalib來完成圖形操作的,可能速度速度比較慢。但在某些不支援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.