Intel 810/815 幀緩衝驅動程式

Tony Daplas <adaplas@pol.net>

http://i810fb.sourceforge.net

2002年3月17日

首次釋出:2001年7月 最新更新:2005年9月12日

A. 簡介

這是一個適用於各種相容Intel 810/815圖形裝置的幀緩衝驅動程式。包括以下型號:

  • Intel 810

  • Intel 810E

  • Intel 810-DC100

  • Intel 815 僅限內建顯示卡,100Mhz 前端匯流排

  • Intel 815 僅限內建顯示卡

  • Intel 815 內建顯示卡和AGP

B. 功能

  • 可選擇使用離散影片時序、VESA通用時序公式或幀緩衝專用資料庫來設定影片模式

  • 如果啟用了VESA通用時序公式,支援可變範圍的水平和垂直解析度以及垂直重新整理率。

  • 支援8、16、24和32位每畫素的顏色深度

  • 支援偽彩色、直接彩色或真彩色顯示模式

  • 在8、16和24位每畫素下提供完整且最佳化的硬體加速

  • 穩定的影片狀態儲存和恢復

  • MTRR支援

  • 利用使用者輸入的顯示器規格自動計算所需的影片模式引數。

  • 可與執行原生i810驅動程式的xfree86併發執行

  • 硬體游標支援

  • 支援透過DDC/I2C或BIOS進行EDID探測

C. 可用選項列表

  1. “video=i810fb”

    啟用i810驅動程式

    建議:必需

  2. “xres:<value>”

    選擇水平解析度(畫素)。 (如果指定了“mode_option”引數,此引數將被忽略。請參閱下面的“o”)。

    建議:使用者偏好(預設 = 640)

  3. “yres:<value>”

    選擇垂直解析度(掃描線)。如果啟用了離散影片時序,此引數將被忽略並計算為3*xres/4。(如果指定了“mode_option”引數,此引數將被忽略。請參閱下面的“o”)

    建議:使用者偏好(預設 = 480)

  4. “vyres:<value>”

    選擇虛擬垂直解析度(掃描線)。如果指定(0)或不指定,將根據最大可用記憶體進行計算。

    建議:不要設定(預設 = 480)

  5. “vram:<value>”

    選擇分配給視訊記憶體的系統RAM大小(MB)

    建議:1 - 4 MB。(預設 = 4)

  6. “bpp:<value>”

    選擇所需的畫素深度

    建議:8(預設 = 8)

  7. “hsync1/hsync2:<value>”

    選擇顯示器的最小和最大水平同步頻率(kHz)。如果使用固定頻率顯示器,hsync1必須等於hsync2。如果EDID探測成功,這些值將被忽略,並從EDID塊中獲取。

    建議:查閱顯示器手冊獲取正確值(預設 = 29/30)

  8. “vsync1/vsync2:<value>”

    選擇顯示器的最小和最大垂直同步頻率(Hz)。您也可以使用此選項鎖定顯示器的重新整理率。如果EDID探測成功,這些值將被忽略,並從EDID塊中獲取。

    建議:查閱顯示器手冊獲取正確值(預設 = 60/60)

    重要提示:如果您需要限制時序,請嘗試為計算誤差(溢位/下溢)留出一些餘量。例如:如果使用vsync1/vsync2 = 60/60,請確保hsync1/hsync2至少有1個單位的差異,反之亦然。

  9. “voffset:<value>”

    選擇在邏輯記憶體中分配幀緩衝記憶體的偏移量(MB)。目的是避免標準圖形應用程式(XFree86)使用的記憶體塊。預設偏移量(64 MB光圈為16 MB,32 MB光圈為8 MB)將避免XFree86的使用,並允許最多7 MB/15 MB的幀緩衝記憶體。根據您的使用情況,向上或向下調整值(0表示最大使用,31/63 MB表示最少使用)。請注意,任意設定可能會與XFree86衝突。

    建議:不要設定(預設 = 8 或 16 MB)

  10. “accel”

    啟用文字加速。可以透過“fbset -accel true/false”隨時啟用/重新啟用此功能。

    建議:啟用(預設 = 未設定)

  11. “mtrr”

    啟用MTRR。這允許資料以突發方式傳輸到幀緩衝記憶體,從而顯著提高效能。由於“共享記憶體”,這對於i810/i815幫助不大。

    建議:不要設定(預設 = 未設定)

  12. “extvga”

    如果指定,輔助/外部VGA輸出將始終啟用。當沒有連線顯示器時,如果BIOS關閉VGA埠,此功能會很有用。之後無需重啟即可連線外部VGA顯示器。

    建議:不要設定(預設 = 未設定)

  13. “sync”

    強制硬體引擎執行“同步”操作,即等待硬體完成當前指令後再開始下一條指令。這將產生更穩定的設定,但會降低速度。

    建議:不要設定(預設 = 未設定)

  14. “dcolor”

    對於畫素深度大於8bpp的情況,使用directcolor視覺模式而非truecolor。對於色彩調整(如伽馬控制)很有用。

    建議:不要設定(預設 = 未設定)

  15. <xres>x<yres>[-<bpp>][@<refresh>]

    驅動程式現在接受引導模式選項的指定。如果指定此選項,則“xres”和“yres”選項將被忽略。有關用法,請參閱modedb預設影片模式支援

D. 核心啟動

每個選項/選項對之間用逗號(,)分隔,選項及其值之間用冒號(:)分隔,如下所示

video=i810fb:option1,option2:value2

示例用法

在 /etc/lilo.conf 中,新增以下行

append="video=i810fb:vram:2,xres:1024,yres:768,bpp:8,hsync1:30,hsync2:55, \
        vsync1:50,vsync2:85,accel,mtrr"

這將把幀緩衝初始化為1024x768,8bpp。幀緩衝將使用2 MB的系統RAM。MTRR支援將啟用。重新整理率將根據hsync1/hsync2和vsync1/vsync2的值計算。

重要

您必須包含hsync1、hsync2、vsync1和vsync2才能啟用優於640x480@60Hz的影片模式。然而,如果您的晶片組/顯示器組合支援I2C並具有EDID塊,您可以安全地排除hsync1、hsync2、vsync1和vsync2引數。這些引數將從EDID塊中獲取。

E. 模組選項

模組引數與核心引數基本相似。主要區別在於,對於那些不需要值的選項,您需要包含一個布林值(1表示真,0表示假)。

例如,要啟用MTRR,請包含“mtrr=1”。

示例用法

使用上述相同的設定,按如下方式載入模組

modprobe i810fb vram=2 xres=1024 bpp=8 hsync1=30 hsync2=55 vsync1=50 \
         vsync2=85 accel=1 mtrr=1

或者只需將以下內容新增到 /etc/modprobe.d/ 中的配置檔案中

options i810fb vram=2 xres=1024 bpp=16 hsync1=30 hsync2=55 vsync1=50 \
vsync2=85 accel=1 mtrr=1

然後執行

modprobe i810fb

F. 設定

  1. 按照您通常的方法配置核心

    make menuconfig/xconfig/config

  2. 在“Code maturity level options”(程式碼成熟度級別選項)下,啟用“Prompt for development and/or incomplete code/drivers”(提示開發和/或不完整程式碼/驅動程式)。

  3. 啟用Intel 810/815板載圖形的agpgart支援。這是必需的。該選項位於“Character Devices”(字元裝置)下。

  4. 在“Graphics Support”(圖形支援)下,選擇“Intel 810/815”,可以選擇靜態編譯或作為模組。如果您需要最大化顯示器的功能,請選擇“use VESA Generalized Timing Formula”(使用VESA通用時序公式)。為了安全起見,您可以不選擇此項。

  5. 如果您想支援DDC/I2C探測(即插即用顯示器),請將“Enable DDC Support”(啟用DDC支援)設定為“y”。要使此選項顯示,請將“use VESA Generalized Timing Formula”(使用VESA通用時序公式)設定為“y”。

  6. 如果您想要幀緩衝控制檯,請在“Console Drivers”(控制檯驅動程式)下啟用它。

  7. 編譯您的核心。

  8. 按照D和E節所述載入驅動程式。

  9. 嘗試DirectFB (http://www.directfb.org) + i810圖形驅動程式補丁,以檢視晶片組的實際工作(或不工作 :-))。

G. 致謝:

  1. Geert Uytterhoeven - 他出色的操作指南和虛擬幀緩衝驅動程式碼使這成為可能。

  2. 感謝Jeff Hartmann的agpgart程式碼。

  3. 感謝X開發人員。只需閱讀XFree86原始碼即可獲得寶貴的見解。

  4. 感謝Intel©。感謝他們提供了這個注重價值的晶片組驅動程式和文件。

  5. Matt Sottek。他的輸入和想法幫助實現了一些最佳化。

H. 主頁:

更完整且可能已更新的資訊可在 http://i810fb.sourceforge.net 獲取。

Tony