Intel 810/815 帧缓冲驱动程序¶
Tony Daplas <adaplas@pol.net>
2002年3月17日
首次发布:2001年7月 最新更新:2005年9月12日
A. 简介¶
这是一个适用于各种兼容Intel 810/815图形设备的帧缓冲驱动程序。包括以下型号:
Intel 810
Intel 810E
Intel 810-DC100
Intel 815 仅限内置显卡,100Mhz 前端总线
Intel 815 仅限内置显卡
Intel 815 内置显卡和AGP
B. 功能¶
可选择使用离散视频时序、VESA通用时序公式或帧缓冲专用数据库来设置视频模式
如果启用了VESA通用时序公式,支持可变范围的水平和垂直分辨率以及垂直刷新率。
支持8、16、24和32位每像素的颜色深度
支持伪彩色、直接彩色或真彩色显示模式
在8、16和24位每像素下提供完整且优化的硬件加速
稳定的视频状态保存和恢复
MTRR支持
利用用户输入的显示器规格自动计算所需的视频模式参数。
可与运行原生i810驱动程序的xfree86并发运行
硬件光标支持
支持通过DDC/I2C或BIOS进行EDID探测
C. 可用选项列表¶
- “video=i810fb”
启用i810驱动程序
建议:必需
- “xres:<value>”
选择水平分辨率(像素)。 (如果指定了“mode_option”参数,此参数将被忽略。请参阅下面的“o”)。
建议:用户偏好(默认 = 640)
- “yres:<value>”
选择垂直分辨率(扫描线)。如果启用了离散视频时序,此参数将被忽略并计算为3*xres/4。(如果指定了“mode_option”参数,此参数将被忽略。请参阅下面的“o”)
建议:用户偏好(默认 = 480)
- “vyres:<value>”
选择虚拟垂直分辨率(扫描线)。如果指定(0)或不指定,将根据最大可用内存进行计算。
建议:不要设置(默认 = 480)
- “vram:<value>”
选择分配给显存的系统RAM大小(MB)
建议:1 - 4 MB。(默认 = 4)
- “bpp:<value>”
选择所需的像素深度
建议:8(默认 = 8)
- “hsync1/hsync2:<value>”
选择显示器的最小和最大水平同步频率(kHz)。如果使用固定频率显示器,hsync1必须等于hsync2。如果EDID探测成功,这些值将被忽略,并从EDID块中获取。
建议:查阅显示器手册获取正确值(默认 = 29/30)
- “vsync1/vsync2:<value>”
选择显示器的最小和最大垂直同步频率(Hz)。您也可以使用此选项锁定显示器的刷新率。如果EDID探测成功,这些值将被忽略,并从EDID块中获取。
建议:查阅显示器手册获取正确值(默认 = 60/60)
重要提示:如果您需要限制时序,请尝试为计算误差(溢出/下溢)留出一些余量。例如:如果使用vsync1/vsync2 = 60/60,请确保hsync1/hsync2至少有1个单位的差异,反之亦然。
- “voffset:<value>”
选择在逻辑内存中分配帧缓冲内存的偏移量(MB)。目的是避免标准图形应用程序(XFree86)使用的内存块。默认偏移量(64 MB光圈为16 MB,32 MB光圈为8 MB)将避免XFree86的使用,并允许最多7 MB/15 MB的帧缓冲内存。根据您的使用情况,向上或向下调整值(0表示最大使用,31/63 MB表示最少使用)。请注意,任意设置可能会与XFree86冲突。
建议:不要设置(默认 = 8 或 16 MB)
- “accel”
启用文本加速。可以通过“fbset -accel true/false”随时启用/重新启用此功能。
建议:启用(默认 = 未设置)
- “mtrr”
启用MTRR。这允许数据以突发方式传输到帧缓冲内存,从而显著提高性能。由于“共享内存”,这对于i810/i815帮助不大。
建议:不要设置(默认 = 未设置)
- “extvga”
如果指定,辅助/外部VGA输出将始终启用。当没有连接显示器时,如果BIOS关闭VGA端口,此功能会很有用。之后无需重启即可连接外部VGA显示器。
建议:不要设置(默认 = 未设置)
- “sync”
强制硬件引擎执行“同步”操作,即等待硬件完成当前指令后再开始下一条指令。这将产生更稳定的设置,但会降低速度。
建议:不要设置(默认 = 未设置)
- “dcolor”
对于像素深度大于8bpp的情况,使用directcolor视觉模式而非truecolor。对于色彩调整(如伽马控制)很有用。
建议:不要设置(默认 = 未设置)
- <xres>x<yres>[-<bpp>][@<refresh>]
驱动程序现在接受引导模式选项的指定。如果指定此选项,则“xres”和“yres”选项将被忽略。有关用法,请参阅modedb默认视频模式支持。
D. 内核启动¶
每个选项/选项对之间用逗号(,)分隔,选项及其值之间用冒号(:)分隔,如下所示
video=i810fb:option1,option2:value2
示例用法¶
在 /etc/lilo.conf 中,添加以下行
append="video=i810fb:vram:2,xres:1024,yres:768,bpp:8,hsync1:30,hsync2:55, \
vsync1:50,vsync2:85,accel,mtrr"
这将把帧缓冲初始化为1024x768,8bpp。帧缓冲将使用2 MB的系统RAM。MTRR支持将启用。刷新率将根据hsync1/hsync2和vsync1/vsync2的值计算。
- 重要
您必须包含hsync1、hsync2、vsync1和vsync2才能启用优于640x480@60Hz的视频模式。然而,如果您的芯片组/显示器组合支持I2C并具有EDID块,您可以安全地排除hsync1、hsync2、vsync1和vsync2参数。这些参数将从EDID块中获取。
E. 模块选项¶
模块参数与内核参数基本相似。主要区别在于,对于那些不需要值的选项,您需要包含一个布尔值(1表示真,0表示假)。
例如,要启用MTRR,请包含“mtrr=1”。
示例用法¶
使用上述相同的设置,按如下方式加载模块
modprobe i810fb vram=2 xres=1024 bpp=8 hsync1=30 hsync2=55 vsync1=50 \
vsync2=85 accel=1 mtrr=1
或者只需将以下内容添加到 /etc/modprobe.d/ 中的配置文件中
options i810fb vram=2 xres=1024 bpp=16 hsync1=30 hsync2=55 vsync1=50 \
vsync2=85 accel=1 mtrr=1
然后执行
modprobe i810fb
F. 设置¶
按照您通常的方法配置内核
make menuconfig/xconfig/config
在“Code maturity level options”(代码成熟度级别选项)下,启用“Prompt for development and/or incomplete code/drivers”(提示开发和/或不完整代码/驱动程序)。
启用Intel 810/815板载图形的agpgart支持。这是必需的。该选项位于“Character Devices”(字符设备)下。
在“Graphics Support”(图形支持)下,选择“Intel 810/815”,可以选择静态编译或作为模块。如果您需要最大化显示器的功能,请选择“use VESA Generalized Timing Formula”(使用VESA通用时序公式)。为了安全起见,您可以不选择此项。
如果您想支持DDC/I2C探测(即插即用显示器),请将“Enable DDC Support”(启用DDC支持)设置为“y”。要使此选项显示,请将“use VESA Generalized Timing Formula”(使用VESA通用时序公式)设置为“y”。
如果您想要帧缓冲控制台,请在“Console Drivers”(控制台驱动程序)下启用它。
编译您的内核。
按照D和E节所述加载驱动程序。
尝试DirectFB (http://www.directfb.org) + i810图形驱动程序补丁,以查看芯片组的实际工作(或不工作 :-))。
G. 致谢:¶
Geert Uytterhoeven - 他出色的操作指南和虚拟帧缓冲驱动代码使这成为可能。
感谢Jeff Hartmann的agpgart代码。
感谢X开发人员。只需阅读XFree86源代码即可获得宝贵的见解。
感谢Intel©。感谢他们提供了这个注重价值的芯片组驱动程序和文档。
Matt Sottek。他的输入和想法帮助实现了一些优化。
H. 主页:¶
更完整且可能已更新的信息可在 http://i810fb.sourceforge.net 获取。
Tony