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 FSB
Intel 815 仅限内部图形
Intel 815 内部图形和 AGP
B. 功能¶
可以选择使用离散视频时序、VESA 通用时序公式或特定于帧缓冲的数据库来设置视频模式
如果启用了 VESA 通用时序公式,则支持可变范围的水平和垂直分辨率以及垂直刷新率。
支持每像素 8、16、24 和 32 位的颜色深度
支持伪彩色、直接彩色或真彩色视觉效果
在 8、16 和 24 bpp 下的完整和优化的硬件加速
强大的视频状态保存和恢复
MTRR 支持
利用用户输入的显示器规格自动计算所需的视频模式参数。
可以与使用原生 i810 驱动程序的 xfree86 并行运行
硬件光标支持
支持通过 DDC/I2C 或 BIOS 进行 EDID 探测
C. 可用选项列表¶
- “video=i810fb”
启用 i810 驱动程序
建议:必需
- “xres:<值>”
选择水平分辨率(以像素为单位)。(如果指定了 “mode_option”,则此参数将被忽略。请参阅下面的“o”)。
建议:用户偏好(默认值 = 640)
- “yres:<值>”
选择垂直分辨率(以扫描线为单位)。如果启用了离散视频时序,则此参数将被忽略,并将计算为 3*xres/4。(如果指定了 “mode_option”,则此参数将被忽略。请参阅下面的“o”)。
建议:用户偏好(默认值 = 480)
- “vyres:<值>”
选择虚拟垂直分辨率(以扫描线为单位)。如果指定 (0) 或未指定,则将根据可用最大内存进行计算。
建议:不设置(默认值 = 480)
- “vram:<值>”
选择要为视频内存分配的系统 RAM 量(以 MB 为单位)
建议:1 - 4 MB。(默认值 = 4)
- “bpp:<值>”
选择所需的像素深度
建议:8(默认值 = 8)
- “hsync1/hsync2:<值>”
选择显示器的最小和最大水平同步频率(以 kHz 为单位)。如果使用固定频率显示器,则 hsync1 必须等于 hsync2。如果 EDID 探测成功,这些将被忽略,并且值将取自 EDID 块。
建议:查看显示器手册以获取正确的值(默认值 = 29/30)
- “vsync1/vsync2:<值>”
选择显示器的最小和最大垂直同步频率(以 Hz 为单位)。您还可以使用此选项来锁定显示器的刷新率。如果 EDID 探测成功,这些将被忽略,并且值将取自 EDID 块。
建议:查看显示器手册以获取正确的值(默认值 = 60/60)
重要提示:如果需要限制时序,请尽量为计算错误(溢出/下溢)留出一些余地。示例:如果使用 vsync1/vsync2 = 60/60,请确保 hsync1/hsync2 至少有 1 个单位的差异,反之亦然。
- “voffset:<值>”
选择在逻辑内存的哪个偏移量(以 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”
对于像素深度大于 8 bpp 的情况,使用直接彩色视觉效果而不是真彩色视觉效果。对于颜色调整(例如伽马控制)很有用。
建议:不设置(默认值 = 未设置)
- <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"
这将以 8bpp 的分辨率将帧缓冲初始化为 1024x768。帧缓冲将使用 2 MB 的系统 RAM。将启用 MTRR 支持。刷新率将根据 hsync1/hsync2 和 vsync1/vsync2 值计算。
- 重要提示
您必须包含 hsync1、hsync2、vsync1 和 vsync2 才能启用比 640x480 @ 60Hz 更好的视频模式。但是,如果您的芯片组/显示器组合支持 I2C 并且具有 EDID 块,则可以安全地排除 hsync1、hsync2、vsync1 和 vsync2 参数。这些参数将取自 EDID 块。
E. 模块选项¶
模块参数本质上类似于内核参数。主要区别在于,对于那些不需要值的选项,您需要包含一个布尔值(1 表示 TRUE,0 表示 FALSE)。
例如,要启用 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
在“代码成熟度级别选项”下,启用“提示开发和/或不完整的代码/驱动程序”。
启用对 Intel 810/815 板载图形的 agpgart 支持。这是必需的。该选项位于“字符设备”下。
在“图形支持”下,选择 “Intel 810/815”,静态或作为模块。如果需要最大化显示器的功能,请选择“使用 VESA 通用时序公式”。为了安全起见,您可以不选择此选项。
如果需要支持 DDC/I2C 探测(即插即用显示器),请将 “启用 DDC 支持” 设置为 “y”。要使此选项出现,请将 “使用 VESA 通用时序公式” 设置为 “y”。
如果需要帧缓冲控制台,请在“控制台驱动程序”下启用它。
编译您的内核。
如 D 和 E 节中所述加载驱动程序。
尝试 DirectFB (http://www.directfb.org) + i810 gfxdriver 补丁来查看芯片组的运行情况(或不运行情况 :-)。
G. 鸣谢:¶
Geert Uytterhoeven - 他出色的操作指南和虚拟帧缓冲驱动程序代码使这一切成为可能。
Jeff Hartmann 的 agpgart 代码。
X 开发人员。通过阅读 XFree86 源代码获得了见解。
Intel(c)。感谢这个注重价值的芯片组驱动程序和提供的文档。
Matt Sottek。他的输入和想法帮助实现了一些优化。
H. 主页:¶
更完整且可能更新的信息在 http://i810fb.sourceforge.net 上提供。
Tony