Home -- Michael's Blog :: Just Do IT -- Manuals

5.4. XFree86™ 的配置

Contributed by Christopher Shumway.

5.4.1. 开始之前

在配置 XFree86 4.X 之前, 您必须知道目标系统的下面一些信息:

显示器的规格可以被 XFree86 用来决定显示的分辨率和刷新率。 这些规格通常可以从显示器所带的文档中找到,也可以从生产商的网站找到。 需要知道两个数字范围:垂直刷新率和水平刷新率。

显示卡的芯片类型定义了 XFree86 使用什么驱动模块来驱动硬件。 对于绝大多数的硬件,都能被自动检测,但是在自动检测出错的时候了解 这些还是很有用处的。

显示卡的显存大小决定了目标系统的分辨率和颜色深度。这非常重要, 这样用户可以知道目标系统的限制。

5.4.2. 配置 XFree86 4.X

配置 XFree86 4.X 需要几步。 第一步是用 XFree86-configure 选项建立一个初始化的配置文件。 . 作为超级用户,简单的运行:

# XFree86 -configure

这会在 /root 目录下生成一个叫做 XF86Config.new 的大致的 XFree86 配置文件(事实上使用的目录是由隐含的 环境变量 $HOME 决定的,这取决于您得到超级用户权利的方式)。 XFree86 程序会试图检测 系统上的图形显示卡并写入配置文件以便在目标系统上探测硬件时能够加载正确的 驱动程序。

下一步将测试当前的配置以检验 XFree86 是否能在当前系统的显示设备上正常工作。要完成这个任务,只需要这样做:

# XFree86 -xf86config XF86Config.new

如果用户看到一个黑灰的格子和一个 X 形的鼠标指针,那么配置就是成功 的。要退出测试,只要同时键入 Ctrl+Alt+Backspace

注: 如果鼠标不工作,请确保设备已经配置过。 请查看 第 2.9.10 节 FreeBSD 安装一章

下面,调整 XF86Config.new 配置文件以适应个人的口味。用文本编辑器 emacs(1)ee(1) 打开文件。要做的第一件事是为当前系统的显示器 添加频率。这些包括垂直和水平的刷新率。这些值可以被添加到 XF86Config.new 文件的 "Monitor" 部分:

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        HorizSync    30-107
        VertRefresh  48-120
EndSection

HorizSyncVertRefresh 关键字可能不存在于配置文件中。 如果他们不存在,就需要添加他们,正确的水平同步刷新率添加在 HorizSync 关键字后面,垂直的同步刷新率添加在 VertRefresh 关键字后面。在上面的例子中 已经添加了。

X 允许可能的显示器使用 DPMS(能源之星) 特性。 xset(1) 程序控制超时时间可以强制待机,挂起或者关机。 如果您希望启用您的显示器的 DPMS 特性, 您必须将下面一行添加到 monitor 部分:

        Option       "DPMS"

XF86Config.new 配置文件被编辑器打开时,需要选择默认的分辨率和颜色深度, 这是通过 "Screen" 部分来定义的:

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Depth     24
                Modes     "1024x768"
        EndSubSection
EndSection

DefaultDepth 关键字描述了要运行的默认 颜色深度。这可以通过使用 XFree86(1)-bpp 选项来取代。 Modes 关键字 描述了给定颜色深度下屏幕的分辨率。 注意目标系统的图形硬件只支持 VESA 标准模式。 在上面的例子中,默认的颜色深度是24位色。在这个颜色深度下, 可以接受的分辨率是1024x768。

最后,用户可以写入配置文件,然后使用这个配置文件测试一下。 如果一切正常,那配置文件需要被安装在 XFree86(1) 能找得到的 地方。典型的比如 /etc/X11/XF86Config/usr/X11R6/etc/X11/XF86Config.

# cp XF86Config.new /etc/X11/XF86Config

一旦配置文件被放置在一个通用的位置,配置就完成了。为了用 startx(1) 启动 XFree86 4.X,需要安装 x11/wrapper port. XFree86 4.X 也可以用 xdm(1) 来启动。

注: 还有一个图形的配置工具, xf86cfg(1),是 XFree86 4.X 发行自带的。 它允许交互式的通过选择合适的驱动程序和设置来定义您的配置文件。 这个程序也可以在控制台下使用,使用命令 xf86cfg -textmode. 更多的细节,请查阅 xf86cfg(1) 手册页。

5.4.3. 高级配置主题

5.4.3.1. 配置 Intel® i810 显示芯片组

配置Intel i810芯片组的显示卡需要有针对 XFree86 的能够用来驱动显示卡的 agpgart AGP程序接口。 自从发行版本 4.8-RELEASE 和 5.0-RELEASE 发行以来 agp(4) 驱动程序就包含在 GENERIC 内核配置里面了。 在以前的发行版里,您必须要在您的内核配置文件里添加下面的一行:

device agp

然后重新编译一个新的内核。 或者,您可以在启动的时候使用 loader(8) 自动加载 agp.ko 内核模块。 简单的添加下面这行到 /boot/loader.conf 文件里:

agp_load="YES"

接下来,如果您正在运行 FreeBSD 4.X 或者更早的版本, 需要创建一个设备节点作为程序接口。 要创建 AGP 设备节点,在 /dev 下运行 MAKEDEV(8)

# cd /dev # sh MAKEDEV agpgart

注: FreeBSD 5.X 和以后的版本会使用 devfs(5) 来半透明的分配 设备节点,因此 MAKEDEV(8) 这一步是不必要的。

这也适用于其他的图形卡硬件配置。 注意如果系统没有将 agp(4) 驱动程序编译进内核,尝试用 kldload(8) 加载模块是无效的。 这个驱动程序必须编译进内核或者使用 /boot/loader.conf 在启动时加载进入内核。

如果您正在使用 XFree86 4.1.0 (或者以后的 版本) 并且出现了像 fbPictureInit 这样未解决的符号提示, 试着在 XFree86 配置文件里的 Driver "i810" 一行后面加入下面这行:

Option "NoDDC"
Michael's Blog :: Just Do IT -- manuals