sstfb¶
介绍¶
这是一个用于 3dfx 的 Voodoo Graphics(又名 Voodoo 1,又名 sst1)和基于 Voodoo²(又名 Voodoo 2,又名 CVG)的视频板的帧缓冲设备驱动程序。这是一个高度实验性的代码,但保证在我的电脑上,使用我的 “Maxi Gamer 3D” 和 “Maxi Gamer 3d²” 板,以及我“在椅子和键盘之间”的情况下工作。有些人测试了其他的组合,似乎也有效。主页位于 <http://sstfb.sourceforge.net>,如果您想要最新版本,请查看 CVS,因为该驱动程序正在开发中,我感觉发布一些不完全工作的 tarball 感到不舒服...不用担心,它仍然非常可用(我用自己的狗粮喂自己)。
请阅读“错误”部分,并向我报告任何成功或失败的情况 (Ghozlane Toumi <gtoumi@laposte.net>)。顺便说一句,如果您只有一个显示器,并且不想玩 VGA 直通电缆,我只能建议您在其他地方借一个屏幕...
安装¶
这个驱动程序(应该)可以在 ix86 上工作,使用“较晚的” 2.2.x 内核(测试使用 x = 19)和“最新的” 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 源代码树。
然后像往常一样配置您的内核:在“控制台”部分选择“m”或“y”到 3Dfx Voodoo Graphics。编译,安装,玩得开心...请给我一个报告 :)
模块使用¶
警告
在发出任何命令之前,您应该完整阅读本节。
如果您只有一个显示器可以玩,一旦您 insmod 该模块,3dfx 将控制输出,因此您必须将显示器插入“正常”视频板才能发出命令,或者您可以盲目地使用工具目录中的 sst_dbg_vgapass(请参阅“工具”)。最新的解决方案是在 insmod 驱动程序时传递参数 vgapass=1。(请参阅“内核/模块选项”)
模块插入¶
insmod sstfb.o
您应该会看到来自板卡的一些奇怪输出:一个大的蓝色方块,一个绿色和一个红色的小方块和一个垂直的白色矩形。为什么?该函数的名称是不言自明的:“sstfb_test()”...(如果您没有第二个显示器,您必须将显示器直接插入 2D 显卡才能看到您正在输入的内容)
con2fb /dev/fbx /dev/ttyx
将 tty 绑定到新的帧缓冲。如果您已经有一个帧缓冲驱动程序,voodoo fb 很可能是 /dev/fb1。如果不是,则设备将是 /dev/fb0。您可以通过执行 cat /proc/fb 来检查这一点。您可以在 tools/ 目录中找到 con2fb 的副本。如果您没有另一个 fb 设备,则此步骤是多余的,因为控制台子系统会自动将 tty 绑定到 fb。
切换到您刚映射的虚拟控制台。“tadaaa” ...
模块移除¶
con2fb /dev/fbx /dev/ttyx
将 tty 绑定到旧的帧缓冲,以便可以移除模块。(它如何与 vgacon 一起工作?简短的答案:它不起作用)
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 为单位)。使用此选项时请小心,它可能很危险。 默认值:自动
|
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 直通。您必须重新编译驱动程序,并将 SST_DEBUG 和 SST_DEBUG_IOCTL 设置为 1
sst_dbg_vgapass /dev/fb1 1 (enables vga cable) sst_dbg_vgapass /dev/fb1 0 (disables vga cable)
glide_reset,使用 glide 重置 voodoo,如果在 rmmoding sstfb 后模块拒绝重新插入,请使用此方法。
错误¶
当 sstfb 模块运行时,请勿使用 glide,您很可能会使计算机挂起。
如果您看到一些伪影(像素未清除等),请尝试关闭裁剪 (clipping=0),和/或使用 slowpci
驱动程序不检测 4Mb 帧缓冲 voodoo,似乎最后 2Mb 环绕。正在研究。
该驱动程序仅支持 16 bpp,24/32 将不起作用。
该驱动程序不是您最喜欢的玩具安全的。这包括 SMP...
[实际上,从检查来看,它似乎是安全的 - Alan]
当使用 XFree86 FBdev(X over fbdev)时,您可能会在窗口的边界处看到奇怪的颜色图案(像素丢失了最低字节 -> 基本上是蓝色分量和一些绿色)。我无法用 XFree86-3.3 重现这种情况,但其中一位测试人员在使用 XFree86-4 时遇到了这个问题。显然,最新的 Xfree86-4.x 解决了这个问题。
我没有真正测试更改调色板,因此在玩调色板时可能会发现一些奇怪的东西。
有时驱动程序将无法识别 DAC,并且初始化将失败。对于 voodoo 2 板卡尤其如此,但应该在最新版本中解决。请联系我。
24/32 不太可能很快工作,因为硬件在 24/32 bpp 中确实会做...不寻常的事情。
待办事项¶
去掉上一段。
多买点咖啡。
测试/移植到其他架构。
尝试使用前缓冲区和后缓冲区的调整来添加平移。
尝试在 voodoo2 上实现加速,即使该板作为仅 3D 的板卡出售,它实际上可以在 2D 中做很多事情 ...
Ghozlane Toumi <gtoumi@laposte.net>
日期:2002/05/09 20:11:45