在配置 X11 之前, 您需要了解所安装的系统的下列信息:
显示器规格
显示卡的芯片类型
显示卡的显存容量
显示器的规格被 X11 用来决定显示的分辨率和刷新率。 这些规格通常可以从显示器所带的文档中, 以及制造商的网站找到。 需要知道两个数字范围: 垂直刷新率和水平刷新率。
显示卡的芯片类型将决定 X11 使用什么模块来驱动图形硬件。 尽管系统能自动检测出绝大多数的硬件, 但事先了解在自动检测出错的时候还是很有用处的。
显示卡的显存大小决定了系统支持的分辨率和颜色深度。 了解这些限制非常重要。
对于 Xorg 7.3 这个版本, 可以不需要任何的配置文件就能运行,在提示符下键如下命令:
%
startx
从 Xorg 7.4 开始, 可以使用
HAL 自动检测键盘和鼠标。Ports
sysutils/hal
和
devel/dbus
将被作为
x11/xorg
所依赖的包安装进系统。
并且需要在 /etc/rc.conf
文件中启用:
在更深入的配置 Xorg 以前, 需要运行这些服务 (手工启动或者重启机器)。
自动配置对于某些硬件可能不起作用或者无法做到期望的配置。 在这种情况下就有必要做一些手工配置。
诸如 GNOME, KDE 或 Xfce 之类的桌面环境, 大多都提供了一些允许用户非常易用的工具, 来设置像分辨率这样的显示参数。 所以如果你觉得默认的配置并不适合, 而且你打算安装一个这样的桌面环境, 那么就请继续完成桌面环境的安装, 并使用适合的显示设置工具。
配置 X11 需要一些步骤。 第一步是以超级用户的身份建立初始的配置文件:
#
Xorg -configure
这会在 /root
中生成一个叫做
xorg.conf.new
的配置文件
(无论您使用 su(1) 或直接登录,
都会改变默认的 $HOME
目录变量)。
X11 程序将尝试探测系统中的图形硬件,并将探测到的硬件信息写入配置文件,
以便加载正确的驱动程序。
下一步是测试现存的配置文件, 以确认 Xorg 能够同系统上的图形设备正常工作。 对于 Xorg 7.3 或者之前的版本, 键入:
#
Xorg -config xorg.conf.new
从 Xorg 7.4 和更高的版本开始,
这个测试将显示出一个黑色的屏幕,对于判断 X11 是否能正常工作会造成一些困扰。
可以通过 retro
选项使用旧的模式:
#
Xorg -config xorg.conf.new -retro
如果看到黑灰的格子以及 X 型鼠标指针, 就表示配置成功了。
要退出测试, 需要同时按下
Ctrl+Alt+Fn
来切换到用于启动 X 的虚拟控制台
(F1 表示第一个虚拟控制台)
之后按
Ctrl+C。
在Xorg 7.3 以及更早期的版本中, 应使用 Ctrl+Alt+Backspace 组合键来强制退出 Xorg。 如果需要在 7.4 和之后的版本中启用这个组合键, 可以在任意 X 终端模拟器中输入下面的命令:
%
setxkbmap -option terminate:ctrl_alt_bksp
或者为 hald 创建一个叫作
x11-input.fdi
的键盘配置文件并保存至
/usr/local/etc/hal/fdi/policy
目录。 这个文件需包含以下这些:
你可能需要重启你的机器来使得 hald 重新读取这个文件。
此外, 还需要在
xorg.conf.new
中的
ServerLayout
或 ServerFlags
小节中添加:
如果鼠标无法正常工作, 在继续深入之前需要先配置它。
参阅 FreeBSD 安装一章中的 第 2.10.10 节 “配置鼠标”。 另外,
从 7.4 版本开始, xorg.conf
中的
InputDevice
部分将被忽略,
这有助于自动检测硬件设备。 可以在这个文件中的
ServerLayout
或者 ServerFlags
加入以下选项使用旧的模式:
输入设备连同其他需要的选项 (比如, 键盘布局切换) 就可以像在之前的版本中的那样配置了。
正如前面所提到的, 自版本 7.4 开始 hald 守护进程默认自动检测你的键盘。 可能检测出你的键盘布局或型号有差异, 在桌面环境中, 比如 GNOME, KDE 或者 Xfce 提供了工具来配置键盘。 另一方面, 也可在 setxkbmap(1) 工具的帮助下或者通过 hald 的配置文件来直接设置键盘的属性。
举例来说, 如果某人想要使用一个 PC 102 键法语布局的键盘,
我们就需要为 hald 创建一个配置文件,
叫作 x11-input.fdi
并保存入 /usr/local/etc/hal/fdi/policy
目录。 这个文件需要包含如下这些:
如果这个文件已经存在, 只要把键盘配置相关的部分拷贝加入即可。
你需要重启你的机器使 hald 读入此文件。
也可以在 X 模拟终端或一个脚本中使用以下的命令达到相同的效果:
%
setxkbmap -model pc102 -layout fr
/usr/local/share/X11/xkb/rules/base.lst
列出了各种不同的键盘, 布局和可用的选项。
接下来是调整 xorg.conf.new
配置文件并作测试。 用文本编辑器如
emacs(1) 或 ee(1) 打开这个文件。 要做的第一件事是为当前系统的显示器设置刷新率。
这些值包括垂直和水平的同步频率。 把它们加到
xorg.conf.new
的
"Monitor"
小节中:
在配置文件中也有可能没有 HorizSync
和
VertRefresh
。
如果是这样的话, 就只能手动添加, 并在
HorizSync
和 VertRefresh
后面设置合适的数值了。 在上面的例子中, 给出了相应的显示器的参数。
X 能够使用显示器所支持的 DPMS (能源之星) 功能。 xset(1) 程序可以控制超时时间, 并强制待机、挂起或关机。 如果希望启用显示器的 DPMS 功能, 则需要把下面的设置添加到 monitor 节中:
关闭 xorg.conf.new
之前还应该选择默认的分辨率和色深。
这是在 "Screen"
小节中定义的:
DefaultDepth
关键字描述了要运行的默认色深。
这可以通过 Xorg(1) 的
-depth
命令行开关来替代配置文件中的设置。
Modes
关键字描述了给定颜色深度下屏幕的分辨率。
需要说明的是, 目标系统的图形硬件只支持由 VESA 定义的标准模式。
前面的例子中, 默认色深是使用 24位色。
在采用这个色深时, 允许的分辨率是 1024x768。
最后就是将配置文件存盘, 并使用前面介绍的测试模式测试一下。
在发现并解决问题的过程中, 包含了与 X11 服务器相关的各个设备的信息的
X11 日志文件会为您发现和排除问题有所帮助。
Xorg 日志的文件名是
/var/log/Xorg.0.log
这样的格式。
实际的日志文件名可能是 Xorg.0.log
到
Xorg.8.log
等等。
如果一切准备妥当, 就可以把配置文件放到公共的目录中了。
您可以在 Xorg(1) 里面找到具体位置。
这个位置通常是 /etc/X11/xorg.conf
或
/usr/local/etc/X11/xorg.conf
。
#
cp xorg.conf.new /etc/X11/xorg.conf
现在已经完成了 X11 的配置全过程。 Xorg 可以通过 startx(1) 工具来启动。 除此之外, X11 服务器也可以用 xdm(1) 来启动。
配置Intel i810芯片组的显示卡需要有针对 X11
的能够用来驱动显示卡的 agpgart
AGP程序接口。
请参见 agp(4) 驱动程序的联机手册了解更多细节。
这也适用于其他的图形卡硬件配置。
注意如果系统没有将 agp(4)
驱动程序编译进内核,尝试用 kldload(8) 加载模块是无效的。
这个驱动程序必须编译进内核或者使用 /boot/loader.conf
在启动时加载进入内核。
这一节假定您了解一些关于高级配置的知识。 如果使用前面的标准配置工具不能产生可用的配置, 则在日志文件中提供的信息应该足以修正配置使其正确工作。 如果需要的话, 您应使用一个文本编辑器来完成这项工作。
目前的宽屏 (WSXGA、 WSXGA+、 WUXGA、 WXGA、 WXGA+, 等等) 支持 16:10 和 10:9 或一些支持不大好的显示比例。 常见的一些 16:10 比例的分辨率包括:
2560x1600
1920x1200
1680x1050
1440x900
1280x800
有时, 也可以简单地把这些分辨率作为 Section
"Screen"
中的 Mode
来进行配置,
类似下面这样:
Xorg 能够自动地通过 I2C/DDC 信息来自动获取宽屏显示器的分辨率信息, 并处理显示器支持的频率和分辨率。
如果驱动程序没有对应的 ModeLines
,
就需要给 Xorg 一些提示了。
使用 /var/log/Xorg.0.log
能够提取足够的信息,
就可以写一个可用的 ModeLine
了。
这类信息如下所示:
这些信息称做 EDID 信息。 从中建立
ModeLine
只是把这些数据重新排列顺序而已:
如此, 本例中的 Section "Monitor"
中的 ModeLine
应类似下面的形式:
经过简单的编辑步骤之后, X 就可以在您的宽屏显示器上启动了。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.