X Window 系统

目录

14.1. 手动配置 X Window 系统
14.2. 安装和配置字体
14.3. 更多信息

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

手动配置 X Window 系统

默认设置下,以第 5.2 节 “Setting Up Graphics Card and Monitor” (第 5 章 Setting Up Hardware Components with YaST, ↑部署指南)中所述用 SaX2 界面配置 X Window 系统。或者可以通过编辑其配置文件手动配置它。

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

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

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

[Important]使用 X -configure

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

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

Section "designation"
  entry 1
  entry 2
  entry n
EndSection 

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

表 14.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 包中提供)。要手动计算 VESA 方式,可使用工具 cvt。例如,要计算 1680x1050@60Hz 监视器的模式行,请使用命令 cvt 1680 1050 60

Device

特定的图形卡。系统通过其描述性名称来参考图形卡。本部分中的可用选项高度依赖于所用驱动程序。例如,如果使用 i810 驱动程序,请在手册页 man 4 i810 中查找有关各种可用选项的更多信息。

Screen

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

请注意,某些驱动程序要求 Display 部分中某个位置内必须存在所用的全部配置。例如,如果使用便携式计算机并希望使用比内部 LCD 更大的外部监视器,可能需要在 Modes 行结尾处添加内部 LCD 支持的更大分辨率。

ServerLayout

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

DRI

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


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

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

Screen 部分

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

例 14.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/lib/xorg/modules/drivers 目录或 /usr/lib64/xorg/modules/drivers 目录,用于 64 位操作系统目录。然后将 _drv.o 添加到名称中。因此,对于 mga 驱动程序,将装载驱动程序文件 mga_drv.o

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

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

Monitor 部分和 Modes 部分

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

只有有经验的用户才可以设置监视器定义。 modeline 是 Monitor 部分的重要部分。方式行设置相应分辨率的水平定时和垂直定时。 Monitor 部分储存有监视器属性(特别是所允许的频率)。可以使用实用程序 cvt 生成 VESA 方式。有关更多信息,请参见 cvt man cvt 的手册页。

[Warning]

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

如果您要创建自己的监视器描述,则应非常熟悉 /usr/share/X11/doc 中的文档。安装包 xorg-x11-doc 以查找 PDF 和 HTML 页面。

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