什么是 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 非常有用。 除此之外,sisfb 是运行 DirectFB 所必需的(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 日