什么是 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
或者只需使用十六进制或十进制的 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 日