5.4. 配置 X11

Contributed by Christopher Shumway.

5.4.1. 开始之前

在配置 X11 之前, 您需要了解所安装的系统的下列信息:

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

显示卡的芯片类型将决定 X11 使用什么模块来驱动图形硬件。 绝大多数的硬件都能被自动检测, 但是了解它在自动检测出错的时候还是很有用处的。

显示卡的显存大小决定了系统支持的分辨率和颜色深度。 了解这些限制非常重要。

5.4.2. 配置 X11

配置 X11 需要几步。 第一步是以超级用户的身份建立初始的配置文件:

# Xorg -configure

在使用 XFree86 的情况下键入:

# XFree86 -configure

这会在 /root 中生成一个叫做 xorg.conf.new 的配置文件 (无论您使用 su(1) 或直接登录, 都会改变默认的 $HOME 目录变量)。 对于 XFree86 来说, 配置文件的名字是 XF86Config.new。 X11 程序将尝试探测系统中的图形硬件并写包含检测到的硬件的配置文件, 以便加载正确的驱动程序。

下一步是测试现存的配置文件, 以确认 Xorg 能够同系统上的图形设备正常工作。 要完成这个任务,只需:

# Xorg -config xorg.conf.new

XFree86 用户应:

# XFree86 -xf86config XF86Config.new

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

Note: 如果鼠标工作不正常, 请首先配置它。 请查看 Section 2.9.10 FreeBSD 安装一章

接下来是调整 xorg.conf.new (或 XF86Config.new, 如果运行 XFree86 的话) 配置文件并作测试。 用文本编辑器如 emacs(1)ee(1) 打开这个文件。 要做的第一件事是为当前系统的显示器设置刷新率。 这些值包括垂直和水平的同步频率。 把它们加到 xorg.conf.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"

关闭 xorg.conf.new (或 XF86Config.new) 之前还应该选择默认的分辨率和色深。 这是在 "Screen" 小节中定义的:

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

DefaultDepth 关键字描述了要运行的默认色深。 这可以通过 Xorg(1) (或 XFree86(1)) 的 -depth 命令行开关来替代配置文件中的设置。 Modes 关键字描述了给定颜色深度下屏幕的分辨率。 需要说明的是, 目标系统的图形硬件只支持由 VESA 定义的标准模式。 前面的例子中, 默认色深是使用 24位色。 在采用这个色深时, 允许的分辨率是 1024x768。

最后就是将配置文件存盘, 并使用前面介绍的测试模式测试一下。

Note: 在发现并解决问题的过程中可以帮助您的工具之一就是 X11 的日志文件,包含了与 X11 服务器相关的每个设备的信息。 Xorg 日志的文件名是 /var/log/Xorg.0.log 这样的格式 (XFree86 日志文件名是 XFree86.0.log 这样的格式)。日志的准确的名字 可以从 Xorg.0.logXorg.8.log 等等。

如果一切准备停当, 就可以把配置文件放到公共的目录中了。 您可以在 Xorg(1) (或 XFree86(1)) 里面找到具体位置。 这个位置通常是 /etc/X11/xorg.conf/usr/X11R6/etc/X11/xorg.conf (对于 XFree86 它应该是 /etc/X11/XF86Config/usr/X11R6/etc/X11/XF86Config)。

# cp xorg.conf.new /etc/X11/xorg.conf

For XFree86:

# cp XF86Config.new /etc/X11/XF86Config

现在已经完成了 X11 的配置全过程。 为了使用 startx(1) 来启动 XFree86 4.X 需要安装 x11/wrapper port。 Xorg 已经包含了 wrapper 代码, 因此并不需要安装 wrapper port。 X11 服务器也可以用 xdm(1) 来启动。

Note: 有一个图形配置工具, xorgcfg(1) (对于 XFree86 来说, 是 xf86cfg(1)), 随 X11 软件包一同安装。 它可以通过选择合适的驱动和设置交互式地定义配置。 这个程序可以从控制台通过命令 xorgcfg -textmode 来直接启动。 与了解详情, 请参考 xorgcfg(1)xf86cfg(1) 的联机手册。

另外还有一个叫做 xorgconfig(1) 的文本界面配置工具 (对于 XFree86xf86config(1)), 这是一个控制台工具因此对用户显得不太友好, 不过当其他工具无法工作时, 它仍然可能可以使用。

5.4.3. 高级配置主题

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

配置Intel i810芯片组的显示卡需要有针对 X11 的能够用来驱动显示卡的 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

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

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

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

Option "NoDDC"