作者:Chris Houser
来源:IBM
我应该学习此教程吗?
或许您已经安装了 XFree86 4.0(或更高版本),但不知道接下来该干什么。或者您可能已尝试运行 X,但只看到整个屏幕都是黑白点画。或者很可能,您已经成功运行了 X,但您确信显卡支持更多的色彩或更高的分辨率。对于其中任何一种情况,您都找对了地方。首先,我们将为您的特定显卡和监视器设置 XFree86 X 服务器并使之运行。然后,将涉及您的所有个人配置选项,这些配置选项使您的桌面有家的感觉。
在本教程中,Chris Houser 向您演示了如何使 XFree86 4.x(Linux 版的标准免费 X 服务器)在您的系统上启动与运行起来。Chris 逐步指导您完成配置 X 以与硬件一起正确工作并使用您所喜欢的分辨率和颜色深度来使 X 运行起来的过程。
另外,Chris 还论及了 X 的用法基础,包括远程运行 X 应用程序、保护 X 和使用 X 资源数据库来配置 X 应用程序。他还向您演示了在 Xfree86 启动时如何启动您所喜欢的窗口管理器、桌面环境和应用程序。在本教程结束时,您将很好地领会 XFree86 的基本原理,可以准备将 XFree86 的许多功能应用到实际使用中。
Chris Houser,朋友称他为“Chouser”,自 1994 年他成为印地安那州 Taylor 大学的计算机科学网络管理员开始,他就一直是一名 UNIX 支持者,在那里他获得了“计算机科学与数学”学士学位。其后,他曾经从事 Web 应用程序编程、用户界面设计、专业视频软件支持,现在他正在从事 Compaq 上的 Tru64 UNIX 设备驱动程序编程。他还给各种免费软件项目投稿,最近他在给 Gentoo Linux(http://www.gentoo.org) 投稿。他与他的妻子及两只猫居住在新罕布什尔州。
Chris 欢迎您对本教程提出疑问和意见。可以通过 chouser@gentoo.org 与他联系。
XFree86 的角色
XFree86 是一种多用途系统,它扮演两个不同的主要角色。首先,我们将它用作设备驱动程序; 在这个角色中,X 允许操作系统和应用程序与计算机硬件通信。要做到这一点,XFree86 必须知道有关硬件的一些详细信息。该信息存储在它的主配置文件 XF86Config 中。
查找 XF86Config
在开始之前,关键是要找到 XF86Config 文件所在的位置。要查找 XF86Config,以 root 用户登录到文本控制台 ― 不应该马上运行 X。通常,将在 /etc/X11/ 中找到 XF86Config;如果系统上存在这个特殊目录,那么它很可能就是 XF86Config 所在的位置。其它公共位置包括 /etc/、/usr/X11R6/etc/X11/、/usr/X11R6/lib/X11/ 或 /usr/lib/X11/ 下的某处。
如果您发现某个地方应该有 XF86Config,而它不在那里,请不要担心;我将在后面几屏中指导您如何从零开始创建 XF86Config。
向前跳过
如果您已经使 X 工作,但想要学习如何调整各种 XFree86 配置设置,则向前跳到下一章节,XFree86 配置。现在,让我们看一下如何从零开始创建一个 XF86Config 文件。
创建新的 XF86Config 文件
创建新的 XF86Config 文件的最容易方法是使用 XFree86 的 -configure 选项。这里是如何告诉 XFree86 探测硬件并创建一个初始 XF86Config 文件的命令:
# XFree86 -configure
屏幕应该会变成黑色,或许会闪烁一会儿 ― 您不必担心;允许有几秒钟的时间来完成硬件探测。
如果您没有看到屏幕变成黑色,相反得到一行类似 XFree86: command not found 的错误,则可能需要将 XFree86 的二进制安装目录(几乎总是 /usr/X11R6/bin)添加到路径中。如果正在使用类似 Bourne 的 shell(sh、bash 和 ksh 等),则可以输入下列命令来完成它:
# PATH="/usr/X11R6/bin:$PATH"
如果正在运行类似 csh 的 shell(csh、tcsh 等),则可以输入下列命令来做到:
# setenv PATH "/usr/X11R6/bin:$PATH"
一旦完成了任一设置,请再次尝试 XFree86 -configure。这次它应该起作用了。请记住,将 /usr/X11R6/bin 添加到缺省路径中,这样每次打开新控制台时,您就不必显式地将它添加到路径中了。
安装新的 XF86Config
现在,主目录 /root 中应该有一个名为 XF86Config.new 的新文件。如果正在替换现有的 XF86Config 文件,则将它移开并在其位置上复制这个新文件。当然,如果没有要替换的 XF86Config 文件,则只要跳过下面的第一个 mv 命令:
# cd /etc/X11
# mv XF86Config XF86Config.orig
# cp /root/XF86Config.new XF86Config
第一次 XFree86 测试运行
这个新的 XF86Config 包含 XFree86 对于您所具有的硬件类型以及应该如何设置它的最好猜测。要测试到目录为止您所拥有的配置,只要再次运行 XFree86,但这次不带 -configure:
# XFree86
这应该使屏幕再次变成黑色。几秒钟之后,整个屏幕都是黑白点画图案,并且应该看到中间有一个黑色的 X。点画模式是缺省 XFree86 背景,屏幕中间的黑色 X 是缺省鼠标指针。如果移动鼠标,它应该移动。如果光标不移动,不要担心;这意味着我们只需要调整一下 X 鼠标设置,我们马上就会做。
要在一旦出现点画图案时就回到文本控制台,请按住 Ctrl 和 Alt 键,并轻轻地按一下 Backspace 键。这是要记住的重要的组合键,因为它几乎总是关闭 X 然后使您回到文本控制台 ― 万一您找不到从 X 会话退出的任何其它方法。
测试运行故障排除
如果运行 XFree86 不会使图形点画图案出现在屏幕上,相反您得到了某种错误,那么您或许有超出了本教程范围的不常用的硬件或者操作系统设置。现在,可能是转至 http://www.xfree86.org 的好时机,研究一下您的 XFree86 发行版是否支持您的特殊显卡,如果支持的话,如何启用这一支持。
然而,假设一切都工作正常,您应该能看见图形点画模式。祝贺您!现在,XFree86 是用一些可用的缺省值进行配置的,但还要进行许多可能的配置调整,使 X 的行为方式如您所愿。如果目前为止它正在很好地工作,而且您很忙,则可以跳至禁用远程 X 连接;否则,让我们将新的 XF86Config 文件装入文本编辑器。
第一次查看
用您所喜欢的文本编辑器打开 XF86Config,让我们看一下可能有哪些配置调整:
# vi XF86Config
您应该看到它由几节构成,每节都整洁地用 Section 和 EndSection 行隔开,每节都包含不同硬件或软件组件的设置。您可以看到在 Section 行上命名的组件类型,如 "ServerLayout"、"InputDevice"、"Monitor" 等。通常,其中的大多数节都应该在早先运行 XFree86 -configure 时得到了正确设置,不应该将它们混在一起。
配置鼠标
如果在最初测试 XFree86 时可以通过移动鼠标来使“X”光标移动,则可以跳过下面的这几屏并继续 XF86Config:深度。
然而,如果鼠标不工作,这意味着 XFree86 正在对您的特殊鼠标使用错误的鼠标设备名或错误的鼠标协议。要查看当前的 XFree86 鼠标设置,找到 XF86Config 中名为 "InputDevice" 的 Section。或许有两个这种 Section,或许更多,而您要找到您鼠标的那个 Section。这应该不难找到,因为 Identifier 应该是 "Mouse0"。
对于鼠标配置,有两个基本配置选项:Protocol 和 Device。在新式的 PC 上,Protocol 应该几乎始终是 "PS/2"。然而,正确的 Device 设置可能取决于操作系统、发行版(distribution)或其它因素,如系统是否使用 devfs。
正确的鼠标设备
最常用的鼠标 Device Option 是 "/dev/mouse",但仅当将 /dev/mouse 符号链接指向 /dev 中真实的鼠标设备名时它才工作,并且特定的 Linux 系统可能正确地设置了它,也可能没有正确地设置它。如果没有 /dev/mouse 符号链接,则您必须亲自查找特定的鼠标设备名。
幸运的是,这个过程通常很容易。几乎所有的新式鼠标都插入计算机的 PS/2 端口,它在 Linux 中显示为 "psaux" 设备。如果您碰巧使用启用 devfs 的系统,则可以在 /dev/psaux 或 /dev/misc/psaux 中找到该设备节点。如果这些设备节点之一存在,则尝试为 XF86Config 中的 Device Option 指定它;当输入 XFree86 以再次测试 X 时,鼠标应该开始正确工作。
现在,XF86Config 的鼠标 InputDevice 节应该类似于:
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/psaux"
EndSection
如果仍不能使鼠标工作,则可能在内核中没有启用 PS/2 鼠标支持。要解决这一问题,请尝试装入适合于您的鼠标的内核模块,或者编译一个包括了鼠标支持的最新内核。
XF86Config:深度
现在,我们将看一下为 XFree86 定义了允许的分辨率/颜色深度组合的那部分 XF86Config 文件。您将在 "Screen" 节中看到该信息,该节应该在 XF86Config 文件的末尾或其附近。在 "Screen" 节内部应该至少有一个(可能有几个)"Display" SubSection,每个 SubSection 都有它自己的“深度”设置。
“深度”指的是用于在屏幕上存储每个像素的位数,其中“深度”1 是黑白色的,“深度”24 指定真彩色显示:
深度 颜色数
1 2(黑白)
4 16(16 色调色板)
8 256(256 色调色板)
15 32,768(近似彩色)