什麼是 sisfb?

sisfb 是 SiS (矽統科技) 圖形晶片的幀緩衝區裝置驅動程式。支援以下系列:

  • SiS 300 系列:SiS 300/305, 540, 630(S), 730(S)

  • SiS 315 系列:SiS 315/H/PRO, 55x, (M)65x, 740, (M)661(F/M)X, (M)741(GX)

  • SiS 330 系列:SiS 330 (“Xabre”), (M)760

為什麼需要幀緩衝區驅動程式?

如果您想要高解析度的文字控制檯,sisfb 會很有用。此外,執行 DirectFB 需要 sisfb (DirectFB 附帶 315 系列的專用驅動程式)。

在 300 系列上,對於低於 2.6.3 的核心,sisfb 在與 DRM/DRI 的連線中發揮著重要作用:Sisfb 管理 DRM/DRI 用於 3D 紋理和其他資料的記憶體堆。使用 DRI/DRM 需要此記憶體管理。

核心 >= 大約 2.6.3 不再需要 sisfb 進行 DRI/DRM 記憶體管理。SiS DRM 驅動程式已更新,並具有自己的記憶體管理器 (如果未編譯 sisfb,將使用該管理器)。因此,除非您想要圖形控制檯,否則在核心 >= 2.6.3 上不需要 sisfb。

旁註:由於這似乎是一個常見的錯誤:sisfb 和 vesafb 不能同時處於活動狀態!在核心配置中僅選擇其中一個。

如何將引數傳遞給 sisfb?

好吧,這取決於:如果靜態編譯到核心中,請使用 lilo 的 append 語句將引數新增到核心命令列。有關更多資訊,請參見 lilo (或 GRUB) 的文件。如果 sisfb 是核心模組,則使用 modprobe (或 insmod) 命令給出引數。

將 sisfb 作為靜態核心的一部分的示例:將以下行新增到您的 lilo.conf

append="video=sisfb:mode:1024x768x16,mem:12288,rate:75"

將 sisfb 作為模組的示例:透過鍵入以下命令啟動 sisfb

modprobe sisfb mode=1024x768x16 rate=75 mem=12288

一個常見的錯誤是,人們在使用編譯到核心中的驅動程式時使用了錯誤的引數格式。請注意:如果編譯到核心中,則引數格式為 video=sisfb:mode:none 或 video=sisfb:mode:1024x768x16 (或您要使用的任何模式,也可以使用上述任何其他格式或 vesa 關鍵字代替 mode)。如果編譯為模組,則引數格式為 mode=none 或 mode=1024x768x16 (或您要使用的任何模式)。將“=”用於“:” (反之亦然) 是一個巨大的差異!另外:如果您為核心中的 sisfb 提供多個引數,則引數之間用“,”分隔。例如

video=sisfb:mode:1024x768x16,rate:75,mem:12288

如何使用它?

前言宣告:此檔案僅涵蓋驅動程式功能和特性的很少一部分。有關更多資訊,請參閱作者和維護者的網站 http://www.winischhofer.net/linuxsisvga.shtml。此外,“modinfo sisfb”提供了所有支援選項的概述,包括一些解釋。

可以使用關鍵字“mode”指定所需的顯示模式,其引數採用以下格式之一

  • XxYxDepth 或

  • XxY-Depth 或

  • XxY-Depth@Rate

  • XxY

  • 或者只需使用十六進位制或十進位制的 VESA 模式編號。

例如:1024x768x16, 1024x768-16@75, 1280x1024-16. 如果未指定深度,則預設為 8。如果未給出速率,則預設為 60Hz。深度 32 表示 24 位顏色深度 (但 32 位幀緩衝區深度,與使用者無關)。

此外,sisfb 理解關鍵字“vesa”,後跟十進位制或十六進位制的 VESA 模式編號。例如:vesa=791 或 vesa=0x117。請使用“mode”或“vesa”,但不要同時使用兩者。

僅限 Linux 2.4:如果未給出模式,則如果編譯為模組,sisfb 預設為“無模式”(mode=none);如果 sisfb 靜態編譯到核心中,則預設為 800x600x8,除非 CRT2 型別為 LCD,在這種情況下,將使用 LCD 的原始解析度。如果要切換到其他模式,請使用 fbset shell 命令。

僅限 Linux 2.6:如果未給出模式,則 sisfb 預設為 800x600x8,除非 CRT2 型別為 LCD,在這種情況下,將預設為 LCD 的原始解析度。如果要切換到其他模式,請使用 stty shell 命令。

您應該同時編譯 vgacon (如果在系統中刪除 SiS 卡時啟動) 和 sisfb (對於圖形模式)。在 Linux 2.6 下,圖形控制檯還需要“幀緩衝區控制檯支援”(fbcon)。

不應編譯 vesafb。並且請不要在 lilo 或 grub 的配置檔案中使用“vga=”關鍵字;模式選擇使用“mode”或“vesa”關鍵字作為引數完成。請參見上文和下文。

X11

如果使用 XFree86 或 X.org,建議您不要使用“fbdev”驅動程式,而應使用專用的“sis”X 驅動程式。“sis”X 驅動程式和 sisfb 由同一個人 (Thomas Winischhofer) 開發,並且彼此配合良好。

SVGALib

SVGALib 如果直接訪問硬體,則永遠無法正確恢復螢幕,尤其是在筆記型電腦上或輸出裝置是 LCD 或 TV 時。因此,請在 SVGALib 配置中使用晶片組“FBDEV”。這將使 SVGALib 使用幀緩衝區裝置進行模式切換和恢復。

配置

(一些) 接受的選項

off

停用 sisfb。僅當 sisfb 在核心中而不是模組時才理解此選項。

mem:X

控制檯的記憶體大小,其餘部分將用於 DRI/DRM。X 以千位元組為單位。在 300 系列上,預設值為 4096、8192 或 16384 (每個都以千位元組為單位),具體取決於卡具有的影片記憶體量。在 315/330 系列上,預設值為最大可用記憶體 (因為這些晶片組不支援 DRI/DRM)。

noaccel

不使用 2D 加速引擎。(預設:使用加速)

noypan

停用 y 軸平移並透過重繪整個螢幕進行滾動。這比 y 軸平移慢得多。(預設:使用 y 軸平移)

vesa:X

選擇啟動影片模式。X 是從 0 到 0x1FF 的數字,表示 VESA 模式編號 (可以以十進位制或十六進位制形式給出,後者以“0x”為字首)。

mode:X

選擇啟動影片模式。有關“X”的格式,請參見上文。

如果 sisfb 在核心中,則應給出布林選項,例如“noaccel”或“noypan”,而不帶引數 (例如“video=sisfb:noypan”)。如果 sisfb 是模組,則應將這些選項設定為 1 (例如“modprobe sisfb noypan=1”)。

Thomas Winischhofer <thomas@winischhofer.net>

2004 年 5 月 27 日