Gentoo Logo

X服务器配置指南

内容:

1.  什么是X Window服务器?

图形界面 vs 命令行

大多数用户对于命令行的使用感到恐惧。有时我们会想:既然Gentoo(或者其他的Linux发行版)给我们提供了一定的自由度,那么我们能否通过鼠标的点击来完成我们的工作呢?呵呵,你当然可以这么做 :-) Linux提供了许多优秀的用户界面和环境,你可以在现有的系统基础上来对它们进行安装和设置。

许多新用户会碰到一个令他们十分惊奇的事实:一种图形用户界面只不过是运行在系统上的一个应用程序。它不是Linux内核的一部分,也没有集成在你的系统里。它是一个可以为你的工作站提供图形化工作界面的强大工具。

由于标准的重要性,有人为窗口的绘制和移动、通过鼠标的移动和键盘实现程序和用户间的互动,以及其它重要的方面创建了一种标准,这种标准就叫做X Window系统,它通常缩写为X11或者X。它广泛应用于Unix,Linux,以及其他类Unix操作系统上。

为Linux用户提供运行图形化用户界面条件并且使用X11标准的应用程序是Xorg-X11――XFree86项目的一个分支。由于XFree86决定使用与GPL相悖的许可证,我们推荐使Xorg。当前的官方Portage上已经不再提供XFree86。

X.org项目

X.org项目创建并且拥有一个可供自由散布的开源X11系统实施方案。它是一个基于X11的开源桌面构架。

Xorg在你的硬件和你想运行的图形界面软件之间提供了一个接口。除此之外,Xorg完全具有网络意识功能,这意味着当你在一个系统上运行某个程序,你同时可以在另一个系统上查看它。

2.  安装 Xorg

在安装Xorg之前,你需要在/etc/make.conf文件中设置两个重要的变量。

第一个变量是VIDEO_CARDS。用来设置你所使用的显示驱动,通常这由你的显卡牌子和类型决定。最普通的设置是nVidia显卡使用nvidia而ATI Radeon显卡使用fglrx。这些都是针对nVidia和ATI的专门驱动。如果你希望使用开源版本,使用nv替代nvidia,但恐怕该驱动没有3D加速支持。ATI显卡的radeonradeonhd开源驱动在老的Radeon显卡上可以完全支持3D加速,但在新的显卡上行不通。变量VIDEO_CARDS可以包含多个驱动,如果需要请用空格分开。

第二个变量是INPUT_DEVICES,用于给定输入设备的驱动。通常情况下keyboard mouse就可以正常工作。如果你需要其他的输入设备,比如笔记本上的触摸板,请把它也加入INPUT_DEVICES.

现在你需要确定使用的驱动并在/etc/make.conf文件中添加相应的设置:

代码 2.1: make.conf选项例举

(对鼠标于键盘的支持)
INPUT_DEVICES="keyboard mouse"
(对nVidia显卡)
VIDEO_CARDS="nvidia"
(或,对ATI Radeon显卡)
VIDEO_CARDS="fglrx"

更多有关如何设置nVidia和ATI显卡的指导可以在Gentoo Linux nVidia指南Gentoo Linux ATI FAQ找到。如果你不知道应该选择何种驱动,请参考这些指导获得更多信息。

注意: 如果所建议的设置不能起作用,你应该运行emerge -pv xorg-server,检查所有选项并选择那些适用你的系统。下面的例子是针对amd64体系和xorg-server-1.2

代码 2.2: 显示所有驱动选项

# emerge -pv xorg-server

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] x11-base/xorg-server-1.2.0-r3  USE="dri nptl xorg (-3dfx) -debug
-dmx -ipv6 -kdrive -minimal -sdl -xprint" INPUT_DEVICES="keyboard mouse -acecad
-aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300 -elographics -evdev
-fpit -hyperpen -jamstudio -joystick -magellan -microtouch -mutouch -palmax
-penmount -spaceorb -summa -synaptics -tek4957 -ur98 -vmmouse -void -wacom"
VIDEO_CARDS="nvidia -apm -ark -chips -cirrus -cyrix -dummy -epson -fbdev -fglrx
-glint -i128 (-i740) -i810 (-impact) (-imstt) -mach64 -mga -neomagic (-newport)
(-nsc) -nv -r128 -radeon -rendition -s3 -s3virge -savage -siliconmotion -sis
-sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx)
-tdfx -tga -trident -tseng -v4l -vesa -vga -via -vmware -voodoo" 0 kB

设置完所有需要的变量后你就可以进行安装Xorg。

代码 2.3: 安装Xorg

# emerge xorg-server

注意: 你可以不安装较轻量级的xorg-server,而安装xorg-x11元软件包。功能上,xorg-x11xorg-server是一样的。但是xorg-x11会帮你装上很多你可能不会用到的软件,比如很多针对不同语言的字体。对于一个桌面系统来说它们并不是必要的。

安装结束后,你可能需要重新初始化一些环境变量后才能继续。你只需要运行env-update后再运行source /etc/profile就可完成这一工作。

代码 2.4: 重新初始化环境变量

# env-update
# source /etc/profile

3.  配置Xorg

xorg.conf文件

Xorg的配置文件xorg.conf,在/etc/X11。Xorg-X11软件包提供了一个样本配置文件在/etc/X11/xorg.conf.example,你可以参考它来创建自己的配置文件。它有非常详细的文档注释,但如果你确实需要更多的有关语法的文档信息,请不要犹豫去查看man帮助手册:

代码 3.1: 阅读xorg.conf man帮助手册

# man 5 xorg.conf

希望你能快乐的阅读这些文档,当然,这是不可能的,所以我们下一步就来看看如何自动创建配置文件。

默认操作:自动创建xorg.conf

Xorg可以自动为你配置好大多数的选项。在多数情况下,你只需要修改其中的某些行列来调整你想要的分辨率。如果你对深层次的优化感兴趣,那么请务必阅读文章最后所提供的资源。但首先,我们需要生成一个Xorg配置文件(希望它能正常工作)。

代码 3.2: 创建xorg.conf文件

# Xorg -configure

当Xorg检测完你的硬件后,请务必注意屏幕上的最后一行显示。如果它告诉你某个地方检测失败,那么你就不得不自己手工编辑一个xorg.conf文件;如果没有,那么它会告诉你/root/xorg.conf.new已经创建并可以供你测试了。那么,就让我们测试一下吧 :)

代码 3.3: 测试xorg.conf.new文件

# X -config /root/xorg.conf.new

如果一切顺利,你会看到一个简单的黑白模式。检查鼠标是否工作正常,分辨率是否OK。如果得到有关"/dev/mouse"的错误,请在xorg.conf文件中的"InputDevice"处,试试将你的鼠标设备改成/dev/input/mice。你也许不能够准确地判断分辨率,但应该能够看出是否太低。你可以随时按下Ctrl-Alt-Backspace来退出。

可选操作:半自动创建xorg.conf

Xorg提供了一个名叫xorgconfig的工具,它将询问你有关系统的各种信息(图形适配器、键盘……)。它将根据你输入的信息来创建xorg.conf文。

代码 3.4: 半自动创建xorg.conf

# xorgconfig

Xorg提供的另一个工具,是xorgcfg,它首先会尝试运行Xorg -configure然后启动X服务器进行更多的调整。

代码 3.5: 使用xorgcfg

# xorgcfg
(如果X崩溃或者配置失败,试试:)
# xorgcfg -textmode

拷贝xorg.conf

先让我们将xorg.conf.new拷贝为/etc/X11/xorg.conf,这样我们就不必每次运行Xorg -config了――直接输入Xstartx显然要轻松得多。:)

代码 3.6: 拷贝xorg.conf

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

使用startx

现在尝试运行startx启动X服务器。startx是一个运行X session的脚本,它启动了X服务器并在其上运行一些可视化应用程序。同时根据以下的逻辑它将决定使用何种应用程序:

  • 如果在home目录下存在一个名为.xinitrc的文件,它将会执行文件中列出的命令。
  • 否则,它将会读取XSESSION变量并执行/etc/X11/Sessions/中可用的一个会话。你可以在/etc/rc.conf中设置系统上所有用户的默认XSESSION变量值。
  • 如果以上所有都失败了,那么它将会回到一个简单的窗口管理器,通常是twm

代码 3.7: 启动X

# startx

如果你看到一个丑陋而令人讨厌的窗口管理器,就是twm。结束twm会话,请在出现的xterm中输入exit或Ctrl-D。你也可以使用Ctrl-Alt-Backspace组合键来杀掉X会话。然而这样或许让X退出的不是很光彩但请相信这样没有什么坏处。:)

4.  调整xorg.conf

设置分辨率

如果你觉得屏幕分辨率有点问题,你需要检查配置文件中的两个段落。首先看看Screen段落,它列出了X服务器可以运行的所有分辨率。在默认情况下,这个段落往往不存在任何分辨率。如果是这种情况,Xorg将根据Monitor段落中的信息来给出一个大概的分辨率。

Xorg检查Monitor段落中的HorizSyncVertRefresh设置后会计算出一个有效的分辨率。眼下,先把这些东西放到一边,只有当Screen段落(接下来将会提到)中更改后的设置无法正常工作时,你才需要看看你的显示器相关规格然后赋予正确的数值。你也可以使用工具来检测你的显示器信息,比如sys-apps/ddcxinfo-knoppix

警告: 不要在不加考虑的情况下更改这两个与显示器规格有关的变量,任何超出同步率的设置都有可能损坏显示器。

现在让我们来更改分辨率。在接下来的/etc/X11/xorg.conf的例子中,我们将加入ModesDefaultDepth使X服务器把24位色深和1024x768分辨率作为默认值启动。不要在意下面给出的例子――它只是一个样本,里面的大多数设置都将与你的计算机设置不同

代码 4.1: 修改/etc/X11/xorg.conf中的Screen段落

Section "Screen"
  Identifier  "Default Screen"
  Device    "S3 Inc. ProSavage KN133 [Twister K]"
  Monitor   "Generic Monitor"
  DefaultDepth  24
  # 为了便于寻找和阅读请跳过一些内容
  SubSection "Display"
    Depth   24
    Modes   "1024x768"
  EndSubSection
EndSection

运行X(startx),看它是否启用了你所需要的分辨率:)

配置键盘

要设置X以使用国际键盘布局,请找到与键盘设置相关的InputDevice段落,并且加入XkbLayout选项来指明你想使用的键盘布局。比如,接下来我们将为你说明如何应用比利时的键盘布局。你只需要将国家代码替换为你自己的即可。

代码 4.2: 更改键盘布局

Section "InputDevice"
  Identifier  "Generic Keyboard"
  Driver    "keyboard"
  Option    "CoreKeyboard"
  Option    "XkbRules"  "xorg"
  Option    "XkbModel"  "pc105"
  Option    "XkbLayout" "be"
EndSection

配置鼠标

如果你的鼠标没有正常工作,你应该首先检查你的鼠标是否已经被系统内核检测到。鼠标应该是作为/dev/input/mouse0(或/dev/input/mice如果你想用多鼠标)出现。有些情况下使用/dev/psaux。其他情况你可以通过移动鼠标并输出这些文件来检查设备所标识的鼠标。结束会话请使用Ctrl-C

代码 4.3: 检查设备文件

# cat /dev/input/mouse0
(不要忘记按Ctrl-C来结束这项工作)

如果你的鼠标未被检测到,请检查必要的模块是否已经被载入。

如果你的鼠标已经被检测到,那么就在InputDevice段落中合适的位置填入你的设备。在接下来的例子中,你可以看到我们将设置其它两个选项:Protocol(它列出了可以使用的鼠标协议――大多数用户使用的是PS/2或者IMPS/2)以及ZAxisMapping(对鼠标滚轮的支持(如果可用的话)。

代码 4.4: 在Xorg中改变鼠标设置

Section "InputDevice"
  Identifier  "TouchPad Mouse"
  Driver    "mouse"
  Option    "CorePointer"
  Option    "Device"    "/dev/input/mouse0"
  Option    "Protocol"    "IMPS/2"
  Option    "ZAxisMapping"    "4 5"
EndSection

运行startx然后期待结果吧:)恭喜,(希望)现在你的系统上已经有一个正常工作的Xorg了。接下来就是删除这个既不美观又不实用的窗口管理器,然后装上一个功能丰富的窗口管理器(甚至是桌面环境),比如KDE或者GNOME,但是这已经超出我们所讨论的范围了 :)

5.  资源

创建并优化xorg.conf

首先,man xorg.conf为你配置相关设置提供了快速而又完备的参考。当你编辑你的配置文件的时候,请在最接近编辑窗口的位置打开终端并阅读这些资料。

还有,请一定要看看/etc/X11/xorg.conf.example这个文件;你可以拷贝一下这个文件并以此为基础来创建你自己的xorg.conf.

在X.org提供的其他文档之外,你还可以在他们的网站上找到X.org FAQ

互联网上有许多关于编辑修改xorg.conf的资源,我们只在这里列出其中的一小部分,你可以使用Google来搜索更多的资料:)由于xorg.confXF86Config(XFree86项目使用的配置文件)在多数配置上使用相同的句法,而且有关XF86Config的信息相对更多一点,因此我们也同样列出了XFree的相关资源。

其他资源

如果你希望升级久的整体化Xorg到新的模块化Xorg 7,请参考Migrating to Modular X HOWTO(迁移到模块化X指南)

更多的有关如何安装和配置不同的桌面环境和应用程序的信息可以在这里Gentoo桌面文档资源找到。

如果你要从一个更早的版本升级到xorg-server-1.5,请一定阅读迁移指南.



打印

更新于2009年 7月 11日

本翻译的原始版本已经不再被维护

总结: Xorg是一个允许用户通过简单的设置来使用图形界面环境的X Windows服务器。这篇指南解释了什么是Xorg,如何配置Xorg以及相关的其它各种配置选项。

Sven Vermeulen
作者

dragonnapalm
译者

Joshua Saddler
Editor

jeffkyjin
译者

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.