安装并配置 X
本节介绍了初级管理(LPIC-1)考试 101 的主题 1.110.1 的内容。这个主题的权重为 5。
在本节中,您将学习如何:
- 检查确认 X 服务器可以支持您的显卡和显示器
- 配置并安装 X
- 针对您的显卡和监视器来定制并优化 X
- 配置并安装 X 字体服务器
- 安装字体
X Window 系统 的历史
X Window System,简称为 X 或 X11,是一个用来进行图形化(位图)显示的窗口系统。X 最初在 1984 年诞生于 MIT,它是作为 Project Athena 的一部分开发的,这个项目使用不同的硬件来提供一个计算环境。X 将显示功能划分成显示服务器(display server) 和客户机(client),客户机提供应用程序逻辑。它是网络透明的,因此显示服务器和客户机不必在相同的服务器上。注意此处 “客户机” 和 “服务器” 的意义与一般的意义可能相反。除了处理显示输出之外,服务器端还需要处理来自键盘、鼠标、图形手写板和触摸屏这些设备的输入。
X 为 GUI 应用程序提供了一个工具包,但是它没有指定用户界面。在典型的 Linux 系统上,可以在 KDE 和 GNOME 之间进行选择,还可以使用另外几个窗口管理器。由于 X 并没有指定用户界面,因此这些桌面和窗口管理器可以具有不同的外观。
由于 X 是用来解决不同硬件之间的大量通信的,因此会看到不同版本的 X 客户机和服务器通常都可以很好地相互操作。
XFree86 和 X.Org
到 1987 年,MIT 希望交出对 X 的控制权,就成立了一个非赢利性组织 MIT X Consortium 来负责 X 的开发。经过很多变化之后,Open Group 在 1999 年成立了 X.Org。从 1992 年开始,X 的很多活跃开发都是由 XFree86 进行的,它最初是为了在 Linux 中使用而将 X 向 Intel® 386 硬件所做的移植,因此就得名为 XFree86。XFree86 作为一个非付费成员加入了 X.Org。
尽管 XFree86 最初是为 386 平台创建的,但是之后版本的 XFree86 可以支持几个不同的平台,它一度成为 Linux 上应用最广泛的 X 版本。经过对新许可证条款和 XFree86 的开发模型的一些争论之后,X.Org Foundation 终于成立了。X.Org 以以前版本的许可证下的最后一个 XFree86 版本为基础开始工作,已经创建了 X11R6.7 和 X11R6.8。尽管很多发行版本仍然在使用 XFree86,不过很多发行版本已经开始使用 X.Org 了。
视频硬件的支持
XFree86 和 X.Org 包都可以支持很多现代的显卡。详细信息请参阅您的发行版的在线文档(请参阅 参考资料)。有些厂商并没有为所有的功能都发行开放源码的驱动程序,因此可能需要将厂商的驱动程序集成到自己的 XFree86 系统中。可以查看厂商 Web 站点上提供的改进或更新后的 Linux 驱动程序。通常用于 3D 加速的驱动程序可能存在这种问题。即使 XFree86 现在还不能使用您的硬件的处理能力,那么也许可以使用 VESA(Video Electronics Standards Association)framebuffer 模式来运行。
现代监视器实现了 VESA Display Data Channel(DDC)规范,这可以允许通过编程来确定监视器的信息和功能。XFree86 配置工具(除 xf86config 之外的工具)就使用这些信息来配置 X 系统。
了解 X 如何使用硬件的一种方法是启动一个 live CD 发行版,例如 Knoppix 或 Ubuntu。这些发行版通常在检测和使用硬件方面都具有很好的能力。很多发行版都提供了图形化的安装选择,这也需要正确检测并使用硬件。
XFree86
很多发行版都包括一个已为系统打包好的 XFree86 或 X.Org 版本。如果没有找到它们,可以根据在主题 102 的教程(“LPI 101 考试准备:Linux 安装与包管理”)中所学习到的知识来查找一个 RPM 或 .deb 包并安装它。
XFree86 安装
如果现在没有可用的 XFree86 包,那就需要从 XFree86 项目的 Web 站点(请参看 参考资料)上下载对应的文件了。这里有为几个流行的硬件平台上的 Linux 预编译好的包,也可以从源代码发行版进行安装。本教程假设将安装当前发行版(4.5.0)的一个二进制包。
需要下载几个二进制包。应该使用可用的 md5 校验和以及 GPG 密钥来对下载文件的有效性进行验证。表 3 列出了 XFree86 所需要的文件。
表 3. XFree86 所需要的文件 |
文件 | 说明 |
Xinstall.sh | 安装脚本 |
extract | tarball 提取工具 |
Xbin.tgz | X 客户机、工具和运行时库 |
Xlib.tgz | 运行时所需要的数据文件 |
Xman.tgz | 手册页 |
Xdoc.tgz | XFree86 文档 |
Xfnts.tgz | 基本字体集 |
Xfenc.tgz | 字体编码数据 |
Xetc.tgz | 运行时配置文件 —— 第 1 部分 |
Xrc.tgz | 运行时配置文件 —— 第 2 部分 |
Xvar.tgz | 运行时数据 |
Xxserv.tgz | XFree86 X 服务器 |
Xmod.tgz | X 服务器模块 |
如果不确定要下载哪个版本,那么可以下载您认为是最接近的 Xinstall.sh 文件,并使用 -check 选项对系统进行检查,如清单 1 所示。
HtnLinux联盟
清单 1. 检查正确的 XFree86 二进制包
root@pinguino:~/xfree86# sh Xinstall.sh -check
Checking which OS you're running...
uname reports 'Linux' version '2.6.12-10-386', architecture 'i686'.
libc version is '6.3.5' (6.3).
Binary distribution name is 'Linux-ix86-glibc23'
If you don't find a binary distribution with this name, then
binaries for your platform are not available from XFree86.org.
|
对于这个例子来说,应该查找 "Linux-ix86-glibc23" 包。
表 4 列出了 XFree86 的可选文件。对于本教程来说,需要字体服务器,还可以安装想要的任何其他东西。
表 4. XFree86 可选文件 |
文件 | 说明 |
Xdrm.tgz | 直接渲染管理器(DRM)内核模块源代码 |
Xfsrv.tgz | 字体服务器 |
Xnest.tgz | 嵌套 X 服务器 |
Xprog.tgz | X 头文件、配置文件以及用来开发 X 应用程序的库 |
Xprt.tgz | X 打印服务器 |
Xvfb.tgz | 虚拟 framebuffer X 服务器 |
Xtinyx.tgz | TinyX 服务器 |
Xf100.tgz | 100dpi 字体 |
Xfcyr.tgz | Cyrillic 字体 |
Xfscl.tgz | 可缩放字体(Speedo、Type1 和 TrueType) |
Xhtml.tgz | HTML 版本的文档 |
Xps.tgz | PostScript 版本的文档 |
Xpdf.tgz | PDF 版本的文档 |
在安装 XFree86 之前,应该首先备份自己的 /usr/X11R6、/etc/X11 和 /etc/fonts 目录,因为这些目录中的内容可能会由于安装 XFree86 而改变。可以使用 tar/cp 或 zip 命令来实现这种备份功能。当准备好安装 XFree86 时,请切换到存放所下载的 XFree86 文件的目录中,并按照清单 2 所示的方式来运行 Xinstall.sh 脚本。
HtnLinux联盟
清单 2. 安装 XFree86
root@pinguino:~/xfree86# sh Xinstall.sh
|
在安装过程中,系统会提示您输入几个问题的答案,根据之前是否安装过 X,答案可能会有所不同。在必需的组件安装之后,就会提示您分别安装各个可选组件。
随着文件安装过程的进展,这个脚本会运行 ldconfig 命令,并设置几个符号链接。
安装 XFree86 最简单的方法是使用 Xinstall.sh 脚本来安装您想要的所有组件。如果不这样做,就可能需要重新安装整个包,这可能会覆盖已经定制好的内容;或者需要手工安装其他组件。
XFree86 配置
在过去,配置 XFree86 要涉及创建一个 XF86Config 文件,其中包含有关显卡、鼠标、键盘和显示硬件的信息,以及一些定制项目,例如想要的显示分辨率。最初的配置工具 xf86config 还需要用户输入有关显卡和监视器扫描频率的详细信息。最近版本的 XFree86 可以动态确定可用硬件,并且只使用少量的配置信息就可以运行了。
可用的配置工具有:
XFree86 -autoconfig
使用 -autoconfig 选项来运行 XFree86,这会尝试自动配置 X 服务器。如果设置已经正确识别出来了,那么就应该可以使用鼠标在屏幕上四处移动 X 光标了。按住 Ctrl 和 Alt 键并按 Backspace 键可以退出显示。这确认自动配置可以正常工作,但是不会写配置文件。
XFree86 -configure
如果 -autoconfig 选项不能正常工作,就使用 -configure 选项来运行 XFree86。这个选项在某些系统上可能会出现问题。
xf86cfg
xf86cfg 命令尝试启动显示和输入驱动程序。如果成功,就会看到一个具有系统图表的窗口。右键点击一个项目来查看或更新配置。在某些系统上,可能需要使用数字键,而不是鼠标,因为鼠标可能没有正确检测出来。在运行 xf86cfg 之前,您可能会希望试图从实际的鼠标创建一个符号链接到 /dev/mouse。例如:HtnLinux联盟
ln -s /dev/input/mice /dev/mouse HtnLinux联盟
在点击 Quit 时,会看到提示说要保存 /etc/X11R6/lib/X11/XF86Config 和 /etc/X11R6/lib/X11/xkb/X0-config.keyboard 配置文件。
xf86config
xf86config 命令使用了文本模式的界面来交互提示您输入有关鼠标、键盘、显卡和显示器的信息。需要显示器的水平频率和垂直频率。可以从一个已知显卡数据库中选择大部分显卡。否则,就需要提供您的显卡所使用的特定芯片和扫描频率信息。
注:
1. 如果系统已经包含了 XFree86,那么发行商可能会还包含一个工具,例如在 SUSE 系统上是 sax2 命令,在某些 Red Hat® 系统上使用的是 redhat-config-xfree86 命令。应该经常查看这种工具的系统文档。
2. 另外一个配置工具是 XF86Setup,现在已经不再与 XFree86 一起发行了。
X.Org
很多发行版都包括一个已为系统打包好的 XFree86 或 X.Org 版本。如果没有找到它们,可以根据在主题 102 的教程(“LPI 101 考试准备:Linux 安装与包管理”)中所学习到的知识来查找一个 RPM 或 .deb 包并安装它。
X.Org 安装
如果还没有可用的 X.Org 包,就需要从 X.Org 的 Web 站点或镜像站点上(请参看 参考资料)下载并编译源代码。在撰写本文时,这些站点上都还没有提供为 X11