XFree86 4.x教程
作者: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(近似彩色)
16 65,536(近似彩色)
24 16,777,216(真彩色模式;准确的彩色)
XF86Config:深度
您可能只要在 "Screen" 节内部添加一行,以指定 XFree86 的缺省颜色深度,这一行将类似于:
Section "Screen"
DefaultDepth 24
(其余的 "Screen" 节……)
EndSection
带有高“深度”配置,您将有更丰富的颜色选择。通常,最好是争取到显卡将支持的最高深度;建议深度为 15(好)到
24(最好),因为这些特别深度将允许显示照片逼真的图象。假如深度小于 15,会使一些图像显得很不连贯,因为 X
服务器需要使用一种称为“抖动”的点画效果来模拟某些颜色。假如您有一块新式的显卡,则应该一定能够使用值为 24 的 DefaultDepth。
XF86Config: 模式
还要将一些缺省分辨率添加到 XF86Config 文档。要完成这一步,将如下面所示的 Modes 行添加到和您在上面所选择的
DefaultDepth 配置相对应的 "Display" SubSection。建议将相同的 Modes 行添加到每个 "Display"
SubSection,避免以后产生混乱。
Modes "1280x1024" "1024x768" "800x600" "640x480"
每对数字就是个屏幕分辨率。例如,假如使用 "800x600",则会在水平方向上看到 800 个像素,在垂直方向上看到 600
个像素。假如使用更小的数字,则在屏幕上显示更少的“实际内容”,但您能够看到的每样东西都会变得更大,更便于阅读。注意,您不能随意地简单地选择这些模
式名;上面列出的分辨率("1024x768" 等)是编程以使 XFree86
可识别的标准模式。可能要定义您自己的定制分辨率,要完成这一操作需要另外几个步骤,而且您通常应该坚持这些预定义模式。
XF86Config:消除“坏”模式
一个重要的注解 — 在上一屏的示例中,XFree86 将试图创建 1280x1024 屏幕,仅当显卡碰巧不支持 1280x1024
时,才后退到其他分辨率。所以,假如 DefaultDepth 为 24 并且 modes 行类似于前面 "Depth 24"
SubSection 的 modes 行,则缺省情况下 X 将尝试用 24 位彩色来配置一个分辨率为 1280x1024
的屏幕。然而,假如显卡或监控器不支持分辨率 1280x1024,则 X 将后退到 1024x768、800x600
等,直到找到一个有效模式为止。
XFree86 和模式转换
然而,即使在缺省情况下没有启用特定分辨率,但 XFree86 仍允许您在 X 运行时通过使用特别的组合键来转换到他。运行 X 时,通过按下
Ctrl 和 Alt 键并轻按数字小键盘上的“ ”和“-”键以在列表中上下移动,能够在任何指定的有效显示器分辨率之间循环。
我建议从列表中删除任何高于您通常运行的分辨率,而保留较低分辨率。较低的分辨率有时是有用的,例如,要“放大”桌面上的某一小图标或文档,或要玩游戏,他们以稍低于通常使用的分辨率运行效果最好。通常,游戏会将 X 自动转换到更低的分辨率(假如可用)。
XF86Config:最终的 "Screen" 节
这时,XF86Config 的 "Screen" 节应该类似于下面所显示的那样。假如数字有些不同,那不必担心,只要确保其中的大体顺序类似于:
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
一旦将您喜欢使用的分辨率添加到 XF86Config
文档,就能够尝试再次运行“XFree86”,以查看正在起作用的更高分辨率。只带有点画图案背景,很难注意到屏幕分辨率中的差异,但应该有差异。一旦配
置了 X 以启动几个应用程式(这使您能够更容易地看出屏幕分辨率中的差异),您就可能要回到本教程的这一部分。
XF86Config:监控器支持
正如前面所提到的那样,假如 XFree86 确定特定显卡/监控器不支持特定分辨率,那么 XFree86
可能会忽略这一选择。假如有一个新式的“即插即用”监控器,那么 XFree86
将能够查询他并确定他所支持的分辨率和刷新速率,并除去完全不在监控器上起作用的任何无效分辨率。然而,假如 XFree86
完全拒绝初始化您知道监控器支持的分辨率和显示深度,则可能需要调整 XF86Config 文档中的 "Monitor"
节并手工指定监控器的水平和垂直刷新配置。这里是如何完成这一操作的步骤。
XF86Config:监控器支持(续)
首先,需要跟踪监控器的特定刷新配置。我的特定监控器的水平刷新范围是从 31.5 到 64.3Khz, 垂直刷新范围是从 50 到 100Hz。要手工指定我的配置,我已将 "Monitor" 节编辑成如下所示:
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 31.5 - 64.3
VertRefresh 50 - 100
EndSection
在对您的 "Monitor" 节做适当更改之后,XFree86 现在应该开始正确识别显示器所支持的分辨率。
XF86Config:其他选项
假如要查找 XF86Config 中的其他配置、他们的含义连同您可能要更改的配置,请参阅 XF86Config 帮助页面,他十分周详:
# man XF86Config
远程 X 连接
现在,您已使 XFree86 的硬件配置起作用,在使用系统范围的配置之前,更有一个小的步骤。缺省情况下,XFree86
允许客户机应用程式以几种不同的方法(包括通过因特网连接)和之对话。这是一种功能强大的特性,假如您打算远程运行某些 X
客户机,则需要这一特性并且应该向前跳到 XFree86:服务器章节。
然而,在许多工作站上,从不远程运行 X 客户机,并且让 XFree86 侦听 TCP/IP 端口只会没有必要地增加更多安全性方面的危险。要禁用这一功能并杜绝这一潜在的安全性漏洞,可使用您所喜欢的文本编辑器来编辑系统范围的 startx 脚本:
# vi /usr/X11R6/bin/startx
禁用远程 X 连接
Startx 是个我们将在本教程的下一部分中周详讨论的 shell 脚本。现在,向下滚动到第 23 行附近,也就是第二个文本块的末端。在那里,应该看到行:
serverargs=""
将该行更改为:
serverargs="-nolisten tcp"
现在,配置了 XFree86,使他能够在系统上运行。假如您是一名系统管理员,那么这就是您所需要做的事情。然而,假如您是用户,则可能要添加一些个人配置,以便 X 以您想要的方式运行。
介绍 startx
XFree86 扮演的第二个主要角色是服务器,为多个客户机提供中央服务。在讨论 X
时,术语“服务器”和“客户机”似乎会有点儿混淆。他帮助我记住,就象 Web 服务器相同,通常只运行一个 X
服务器,而他控制对共享资源的访问。对于 Web 服务器,这些资源能够是 Web 页面和其他文档,但对于 X,他们是显卡、监控器、键盘和鼠标。
X 客户机是个和服务器交互以打开一个窗口的应用程式或程式,并且在单击按钮并输入时接收输入。
就象 Web 服务器需要 Web 客户机(Web 浏览器)以使他有用相同,X 服务器需要 X 客户机。当用 startx 命令启动
XFree86 时,会读取主目录中的 .xinitrc 文档,以确定哪些程式将自动启动。这些应用程式几乎始终是 X
客户机,可能包括终端仿真器、时钟、图像程式和窗口管理器或桌面环境。
.xinitrc 脚本
.xinitrc 文档只是个 shell 脚本,所以,假如您熟悉编写 shell 脚本,本节应该对您很有意义。假如您没有编写过 shell 脚本,那也能够;他将是个值得学习的简单示例,您将很快掌控他的窍门。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
| | 版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2007 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86263408 86263960 86264018 86267838 86262244 86263408 售前咨询:总机转201 202 203 204 205 206 207 208 售后服务:总机转211
212 213 214 217 218 晚上0点以后拔分机225 |
| 财务咨询:总机转224
223 传真:028-86264041 财务QQ: 635483282
售前咨询QQ: 327314358 241975952 275026793 408235859 2182518 499513144 售后服务QQ: 634349278 809071471 307742704 512359778 287976517 363783715 在线咨询
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号
|
| |