sstfb

簡介

這是一個用於 3dfx Voodoo Graphics (又名 voodoo 1,又名 sst1) 和 Voodoo² (又名 Voodoo 2,又名 CVG) 顯示卡的幀緩衝區裝置驅動程式。 它是一個高度實驗性的程式碼,但保證可以在我的電腦上,使用我的 “Maxi Gamer 3D” 和 “Maxi Gamer 3d²” 顯示卡,以及我 “在椅子和鍵盤之間” 工作。 有些人測試了其他組合,似乎也可以工作。 主頁位於 <http://sstfb.sourceforge.net>,如果您想要最新版本,請檢視 CVS,因為驅動程式仍在開發中,我覺得釋出一些未完全工作的東西的 tarball 令人不舒服……別擔心,它仍然非常可用(我吃自己的狗糧)。

請閱讀 Bug 部分,並將任何成功或失敗報告給我 (Ghozlane Toumi <gtoumi@laposte.net>)。 順便說一句,如果您只有一個監視器,並且不想玩 vga passthrou 電纜,我只能建議您從某個地方借一個螢幕……

安裝

這個驅動程式(應該)可以在 ix86 上工作,使用 “late” 2.2.x 核心(經過 x = 19 測試)和 “recent” 2.4.x 核心,作為一個模組或編譯到核心中。 自臭名昭著的 2.4.10 以來,它已被包含在主流核心中。 您可以應用 sstfb/kernel/*-2.{2|4}.x.patch 中找到的補丁,並將 sstfb.c 複製到 linux/drivers/video/,或者將單個補丁 sstfb/patch-2.{2|4}.x-sstfb-yymmdd 應用到您的 Linux 原始碼樹。

然後像往常一樣配置您的核心:在 “console” 部分中選擇 “m” 或 “y” 作為 3Dfx Voodoo Graphics。 編譯,安裝,玩得開心……請給我一份報告:)

模組使用

警告

  1. 在發出任何命令之前,您應該完整閱讀本節。

  2. 如果您只有一個監視器可以使用,一旦您 insmod 該模組,3dfx 將控制輸出,因此您必須將監視器插入 “normal” 顯示卡才能發出命令,或者您可以盲目地使用 tools 目錄中的 sst_dbg_vgapass(參見 Tools)。 最新的解決方案是在 insmod 驅動程式時傳遞引數 vgapass=1。(參見核心/模組選項)

模組插入

  1. insmod sstfb.o

    您應該看到主機板的一些奇怪輸出:一個大的藍色正方形,一個綠色和一個紅色的小的正方形,以及一個垂直的白色矩形。 為什麼? 函式的名稱是不言自明的:“sstfb_test()”……(如果您沒有第二個監視器,您必須將監視器直接插入 2D 顯示卡才能看到您正在鍵入的內容)

  2. con2fb /dev/fbx /dev/ttyx

    將 tty 繫結到新的幀緩衝區。 如果您已經有一個幀緩衝區驅動程式,則 voodoo fb 可能是 /dev/fb1。 如果沒有,則裝置將是 /dev/fb0。 您可以透過執行 cat /proc/fb 來檢查這一點。 您可以在 tools/ 目錄中找到 con2fb 的副本。 如果您沒有其他 fb 裝置,則此步驟是多餘的,因為控制檯子系統會自動將 tty 繫結到 fb。

  3. 切換到您剛剛對映的虛擬控制檯。 “tadaaa”...

模組移除

  1. con2fb /dev/fbx /dev/ttyx

    將 tty 繫結到舊的幀緩衝區,以便可以移除模組。(它如何與 vgacon 一起工作? 簡短的回答:它不起作用)

  2. rmmod sstfb

核心/模組選項

您可以將一些選項傳遞給 sstfb 模組,並在驅動程式編譯到核心中時透過核心命令列傳遞:對於模組:insmod sstfb.o option1=value1 option2=value2 ... 在核心中:video=sstfb:option1,option2:value2,option3 ...

sstfb 支援以下選項

模組

核心

描述

vgapass=0

vganopass

啟用或停用 VGA 直通電纜。

vgapass=1

vgapass

啟用後,監視器將從 VGA 板獲得訊號,而不是從 voodoo 獲得訊號。

預設值:nopass

mem=x

mem:x

強制幀緩衝區記憶體 (以 MiB 為單位) 允許的值:0、1、2、4。

預設值:0 (= 自動檢測)

inverse=1

inverse

應該啟用反向控制檯。 尚不起作用...

clipping=1

clipping

啟用或停用裁剪。

clipping=0

noclipping

啟用裁剪後,所有螢幕外讀取和寫入都將被丟棄。

預設值:啟用裁剪。

gfxclk=x

gfxclk:x

強制顯示卡時鐘頻率(以 MHz 為單位)。 請小心使用此選項,它可能很危險。

預設值:auto

  • Voodoo 1 為 50Mhz,

  • Voodoo 2 為 75MHz。

slowpci=1

fastpci

啟用或停用快速 PCI 讀/寫。

slowpci=1

slowpci

預設值:fastpci

dev=x

dev:x

將驅動程式附加到裝置編號 x。 0 是第一個相容的板(按 lspci 順序)

工具

這些工具主要用於除錯目的,但您可能會發現其中一些很有趣

  • con2fb,將 tty 對映到幀緩衝區

    con2fb /dev/fb1 /dev/tty5
    
  • sst_dbg_vgapass,更改 vga 直通。 您必須使用設定為 1 的 SST_DEBUG 和 SST_DEBUG_IOCTL 重新編譯驅動程式

    sst_dbg_vgapass /dev/fb1 1 (enables vga cable)
    sst_dbg_vgapass /dev/fb1 0 (disables vga cable)
    
  • glide_reset,使用 glide 重置 voodoo,如果在 rmmoding sstfb 後模組拒絕重新插入,請使用它。

Bug

  • 請勿在 sstfb 模組開啟時使用 glide,您很可能會使計算機掛起。

  • 如果您看到一些偽影(畫素未清理等),請嘗試關閉裁剪 (clipping=0),和/或使用 slowpci

  • 該驅動程式無法檢測到 4Mb 幀緩衝區 voodoos,似乎最後 2 個 Mbs 會環繞。 正在調查。

  • 該驅動程式僅為 16 bpp,24/32 將不起作用。

  • 該驅動程式不是您最喜歡的玩具的安全的。 這包括 SMP...

    [實際上,從檢查來看,它似乎是安全的 - Alan]

  • 當使用 XFree86 FBdev(X over fbdev)時,您可能會在視窗的邊界看到奇怪的顏色圖案(畫素丟失了最低位元組 -> 基本上是藍色分量和一些綠色)。 我無法使用 XFree86-3.3 重現這一點,但其中一位測試人員在使用 XFree86-4 時遇到了這個問題。 顯然,最新的 Xfree86-4.x 解決了這個問題。

  • 我沒有真正測試更改調色盤,因此在玩這些時您可能會發現一些奇怪的東西。

  • 有時驅動程式將無法識別 DAC,並且初始化將失敗。 這對於 voodoo 2 顯示卡尤其如此,但應該在最新版本中解決。 請聯絡我。

  • 考慮到硬體在 24/32 bpp 中執行……不尋常的操作,24/32 不太可能很快工作。

Todo

  • 擺脫上一段。

  • 購買更多咖啡。

  • 測試/移植到其他架構。

  • 嘗試使用前後緩衝區調整來新增平移。

  • 嘗試在 voodoo2 上實現 accel,即使它作為僅限 3D 的板卡出售,該板卡實際上可以在 2D 中做很多事情...

Ghozlane Toumi <gtoumi@laposte.net>

日期:2002/05/09 20:11:45

http://sstfb.sourceforge.net/README