X Window 系统

目录

26.1. 手动配置 X Window 系统
26.2. 安装和配置字体
26.3. 更多信息

X Window 系统 (X11) 是 UNIX 中图形用户界面的实际标准。 X 是基于网络的,可以使在一个主机上启动的应用程序显示在通过任何类型的网络(LAN 或 Internet)连接的另一个主机上。 本章介绍了 X Window 系统环境的安装和优化,并提供了关于在 SUSE Linux EnterpriseŽ 中使用字体的背景信息。

[Tip]IBM System z:配置图形用户界面

IBM System z 没有 X.Org 支持的任何输入和输出设备。因此,本部分中描述的任何配置过程均不适用。有关 IBM System z 的更多相关信息,请参见第 8.6 节 “网络设备”

手动配置 X Window 系统

默认设置下,X Window 系统以第 8.14 节 “SaX2”中所述 SaX2 界面配置。或者也可以通过编辑其配置文件手动配置它。

[Warning]错误的 X 配置可能会损坏您的硬件。

配置 X Window 系统时要小心。在完成配置前,切勿启动 X Window 系统。错误配置的系统可能会对您的硬件造成无法修复的损坏(此情况尤其针对于固定频率的监视器)。该书和 SUSE Linux Enterprise 的创建者不对导致的任何损坏负责。这里提供的信息已经仔细斟酌,但并不能保证所提供的所有方法均正确且不会对您的硬件造成任何损坏。

命令 sax2 会创建 /etc/X11/xorg.conf 文件。这是 X Window 系统的主配置文件。请在此查找与图形卡、鼠标和监视器有关的所有设置。

[Important]使用 X -configure

X -configure 配置您的 X 安装(如果之前尝试 SUSE Linux Enterprise 的 SaX2 失败)。如果您的安装涉及专用的仅二进制驱动程序,X -configure 不起作用。

下面小节介绍配置文件 /etc/X11/xorg.conf 的结构。 它由多个部分组成,每个部分处理配置的某个特定方面。 每个部分都以关键字 Section <designation> 开头,以 EndSection 结尾。 以下惯例适用于所有章节:

Section "designation"
  entry 1
  entry 2
  entry n
EndSection 

表 26.1 “/etc/X11/xorg.conf 中的部分”中列出了可用的部分类型。

表 26.1. /etc/X11/xorg.conf 中的部分

类型

含义

Files

用于字体和 RGB 颜色表的路径。

ServerFlags

服务器行为的常规切换。

Module

服务器应载入的模块列表。

InputDevice

此部分配置输入设备,例如键盘和特殊输入设备(触摸板、游戏杆等)。 此部分的重要参数有 Driver 以及定义 ProtocolDevice 的选项。 对连接到计算机的每个设备,通常都有一个 InputDevice 部分。

Monitor

使用的显示器。此部分的重要元素是标识符(稍后在 Screen 定义中引用)、刷新率 VertRefresh 和同步频率限制(HorizsyncVertRefresh)。这些设置采用的单位为 MHz、kHz 和 Hz。通常,服务器拒绝不符合监视器规格的任何方式行。 这样可防止意外地将过高的频率发送到监视器。

Modes

特定屏幕分辨率的方式行参数。可以根据用户给出的值由 SaX2 计算出这些参数,并且通常无需更改这些参数。 您可以在此时进行手动干预,例如当要连接固定频率监视器时。 HOWTO 文件(位于 /usr/share/doc/howto/en/html/XFree86-Video-Timings-HOWTO)提供了各个数字值含义的细节(在 howtoenh 包中提供)。

Device

特定的图形卡。系统通过其描述性名称来引用图形卡。

Screen

MonitorDevice 放在一起以组成 X.Org 的所有必要设置。 在 Display 子部分中,指定虚拟屏幕 (Virtual) 的大小、ViewPort 以及此屏幕所用的 Modes

ServerLayout

单个或多头配置的布局。此部分将输入设备 InputDevice 和显示设备 Screen 绑定在一起。

DRI

提供 Direct Rendering Infrastructure (DRI) 的信息。


下面详细介绍 MonitorDevice ScreenX.Orgxorg.conf 的手册页提供了有关其他部分的详细信息。

xorg.conf 中可以存在多个不同的 Monitor Device 部分。甚至可以存在多个 Screen 部分。 ServerLayout 部分确定使用其中哪个部分。

Screen 部分

Screen 部分将 Monitor 部分与 Device 部分结合起来并确定要使用的分辨率和颜色深度。 Screen 部分与例 26.1 “文件 /etc/X11/xorg.conf 的 Screen 部分”类似。

例 26.1. 文件 /etc/X11/xorg.conf 的 Screen 部分

Section "Screen"1
  DefaultDepth  162
  SubSection "Display"3
    Depth       164
    Modes       "1152x864" "1024x768" "800x600"5
    Virtual     1152x8646
  EndSubSection
  SubSection "Display"
    Depth       24
    Modes       "1280x1024"
  EndSubSection
  SubSection "Display"
    Depth       32
    Modes "640x480"
  EndSubSection
  SubSection "Display"
    Depth        8
    Modes       "1280x1024"
  EndSubSection
  Device        "Device[0]"
  Identifier    "Screen[0]"7
  Monitor       "Monitor[0]"
EndSection

1

Section 确定该部分的类型,在本示例中是 Screen

2

DefaultDepth 决定默认使用的颜色深度(除非明确指定其他颜色深度)。

3

对每种颜色深度指定不同的 Display 子部分。

4

Depth 决定对本组 Display 设置使用的颜色深度。可用值有 815162432,尽管并非所有 X 服务器模块或分辨率都可以支持所有这些值。

5

Modes 部分由可能的屏幕分辨率列表组成。X 服务器从左到右检查此列表。 对于每个分辨率,X 服务器均会在 Modes 部分中搜索合适的 ModelineModeline 取决于监视器和图形卡的功能。Monitor 设置确定最终的 Modeline

找到的第一个分辨率是 Default mode。 使用 Ctrl+Alt++(在数字小键盘上)向右切换到列表中的下一个分辨率。 使用 Ctrl+Alt+(在数字小键盘上)切换到上一个。这使您能够在 X 运行时改动分辨率。

6

包含 Depth 16 Display 子部分的最后一行指出了虚拟屏幕的大小。 虚拟屏幕的最大可能大小取决于图形卡中安装的内存量和所需的颜色深度,而不取决于监视器的最大分辨率。 如果忽略此行,虚拟分辨率就是物理分辨率。因为目前的图形卡都具有大量视频内存,所以您可以创建非常大的虚拟桌面。 但是,如果您将大部分视频内存用于虚拟桌面,则可能不能再使用 3D 功能。 例如,如果图形卡有 16 MB 视频 RAM,则当采用 8 位颜色深度时,虚拟屏幕最多可以有 4096x4096 个像素。但建议不要将所有内存用于虚拟屏幕,因为图形卡的内存还要用于多种字体和图形缓存,对于加速卡而言尤其如此。

7

Identifier(这里是 Screen[0])为此部分指定一个定义的名称,在随后的 ServerLayout 部分中可以使用此名称唯一引用这个部分。 行 DeviceMonitor 指定属于此定义的图形卡和监视器。 这些行仅仅是通过 DeviceMonitor 部分的相应名称或标识符指向这些部分的链接。 下面详细讨论这些部分。

Device 部分

Device 部分描述特定的图形卡。 您可以在 xorg.conf 中包含任意多个设备项,前提是要使用关键字 Identifier 对这些项的名称进行区分。 如果您安装了多个图形卡,通常按顺序对这些部分进行编号。 第一个设备称为 Device[0],第二个设备称为 Device[1],依此类推。 以下文件是从安装有 Matrox Millennium PCI 图形卡(由 SaX2 配置)的计算机的 Device 部分摘出的一段:

Section "Device"
  BoardName     "MGA2064W"
  BusID         "0:19:0"1
  Driver        "mga"2
  Identifier    "Device[0]"
  VendorName    "Matrox"
  Option        "sw_cursor"
EndSection

1

BusID 是指安装图形卡的 PCI 或 AGP 插槽。它与使用命令 lspci 显示的 ID 相匹配。 X 服务器需要采用十进制形式的详细信息,但 lspci 以十六进制形式显示这些信息。 BusID 的值由 SaX2 自动检测。

2

Driver 的值由 SaX2 自动设置,指定哪个驱动程序用于您的图形卡。如果此卡是 Matrox Millennium,则将驱动程序模块称为 mga。 然后,X 服务器通过 drivers 子目录的 Files 部分中定义的 ModulePath 进行搜索。 在标准安装中,是 /usr/X11R6/lib/modules/drivers/usr/X11R6/lib64/modules/drivers 目录。然后将 _drv.o 添加到名称中。因此,对于 mga 驱动程序,将装载驱动程序文件 mga_drv.o

还可以通过其他选项影响 X 服务器或驱动程序的行为。 在 Device 部分中设置的选项 sw_cursor 就是这方面的一个示例。 此选项取消激活硬件鼠标光标并使用软件显示鼠标光标。 根据驱动程序模块,有不同的选项可用,它们位于目录 /usr/share/doc/package_name 中驱动程序模块的说明文件中。 通常还可以在手册页(man xorg.confman X.Orgman 4 chips)中查看有效的选项。

如果图形卡有多个视频连接器,可以将这一个卡的不同设备配置为单一视图。使用 SaX2 以这种方式对图形接口进行设置。

Monitor 部分和 Modes 部分

Device 部分类似,MonitorModes 部分分别描述一个监视器。 配置文件 /etc/X11/xorg.conf 可以包含任意多个 Monitor 部分。 每个 Monitor 部分使用行 UseModes(如果可用)引用一个 Modes 部分。如果没有 Modes 部分可用于 Monitor 部分,X 服务器将根据常规同步值计算相应值。服务器布局部分指定相关的 Monitor 部分。

只有有经验的用户才可以设置监视器定义。 modeline 是 Monitor 部分的重要部分。方式行设置相应分辨率的水平定时和垂直定时。 Monitor 部分储存有监视器属性(特别是所允许的频率)。

[Warning]

除非您对监视器和图形卡功能有深入了解,否则建议不要更改 modelien,因为这可能严重损坏监视器。

尝试过开发自己的监视器说明的人应对/usr/X11R6/lib/X11/doc/ 中的文档非常熟悉(必须安装 xorg-x11-doc 包)。

现在,很少需要手动指定方式行。 如果您使用的是最新的多频同步监视器,则通常由 X 服务器通过 DDC 直接从监视器中读取允许的频率和最佳分辨率,如 SaX2 配置一节所述。 如果由于某种原因无法执行此操作,请使用 X 服务器中包含的 VESA 方式之一。这种方式可用于几乎所有图形卡和监视器的组合。