红联Linux门户
Linux帮助

手动设置和修改X-Window的显示模式

发布时间:2006-09-28 11:25:54来源:红联作者:MOCEL
  简短说明:

  本文档的主要目的在于介绍手动配置 Linux 下 XF86 的配置方法, 主要是关于如何通过修改XF86Config 文件调整显示器在图形模式下的显示分辨率和颜色深度, 以及如何通过建立符号连接修改 X Server。 另外提到一些跟图形界面有关 的网友常问问题。 文中对于如何使用软件工具做相应的没有过多提及, 希望会在 以后的版本中加入和软件修改方法之间的联系和差别。

  一. X Window 工作方式略谈

  (如果你之关心如何对 X Widow 进行设置, 可以跳过这一节。 只是理解这一节所讲的知识对于理解下面的各设置步骤有一定帮助) X Window 的工作方式跟 Microsoft Windows 有着本质的不同。 MS Windows 的图形用户界面 (GUI) 是跟系统紧密相联的。 而 X Window 则不是, 它实际上是 在系统核心 (kernel) 的上面运行的一个应用程序。

  X Window 的运行分为四层。 最底层的是 X Server(服务器), 提供图形界面 的驱动, 为 X Window 提供服务。 上面的一层是用于网上通信的网络协议 -- X 网络协议。 这部分使远程运行 X Window 成为可能。 只需要在服务器上运行一个 X Server, 而客户机 (Client) 上运行更上一层的程序, 则可以实现 X Widow 的 远程运行。 再往上的一层是称作 Xlib 的低层函数接口, 介于网络和和基础系统 于较高层的程序之间。 应用程序的实现是通过调用这一层的函数实现的。

  最顶层 就是管理窗口的窗口管理器了, 也就是一般所说的 WM (Window Manager)。 在这 一层的软件是用户都比较常接触的, 比如 fvwm, AfterStep, Enlightment 以及 WindowMaker 等等。

  从上面的介绍来看, X Window 的运行是一种客户机/服务器(Client/Server) 的模式, 服务器用于显示客运的应用程序, 又被称为显示服务器(Display Server) 显示服务器位于硬件和客户机之间, 它跟踪所有来自输入设备比如键盘, 鼠标的 输入动作, 经过处理后将其送回客户机。 这样, 使用户甚至可以在 MS Windows的机器上运行 X Client, 截取并传送用户的输入, 只是将 X Window 的屏幕输出显示在用户的屏幕上。 客户机的输入和输出系统跟 X 服务器之间的通信都是遵守 X 协议的。

  由于本文档的主要目的在于介绍如何设置, 因此对 X Window 不再作进一步的 介绍。 更详细的资料可以参考有关的 HOWTO, man 页等等。

  二.关于 X Window 的设置

  1. X Server


  在 Linux 下, 这些服务器的程序是存放在 /usr/X11R6/bin/ 下面, 并且都由 XF86_ 打头, 一般来说, 会提供单显 Mono, 标准 VGA 和 SVGA 的驱动, 分 别命名为: XF86_Mono, XF86_VGA16 和 XF86_SVGA, 另外可能还会有 S3和其他一 些带有图形加速功能的显卡的驱动。 下面是作者本人机器上运行的 RedHat Linux 6。1 中所带有的 X Server 驱动:

[code]XF86_3DLabs XF86_Mono XF86_I128 XF86_VGA16
XF86_P9000 XF86_8514 XF86_Mach32 XF86_S3
XF86_W32 XF86_AGX XF86_Mach64 XF86_S3V
XF86_FBDev XF86_Mach8 XF86_SVGA[/code]
文章评论

共有 1 条评论

  1. MOCEL 于 2006-09-28 11:27:48发表:

      其中问号代表的字母根据具体情况决定。 有些时候, 由于这个连接不正确, 导致 无法运行 X Window, 这时可以使它指向 XF86_VGA16, 使用 16 色的 VGA 模式进入 X Window, 注意如果需要运行 XF86Setup 程序 (是个图形界面的 X Window 配置工 具程序),那么这个XF86_VGA16驱动一定要存在,这是由于该驱动所提供的显示模式是一般显示卡和显示器都支持的, 故该配置程序使用此 X Server 为驱动。 当用户的 显卡是比较特殊的型号时, 需要装特定的驱动程序, 也需要作此工作。 驱动程序的获得有多种途径, 一般的 Linux 发行版本都提供了丰富的驱动程序, 可以满足大部分要求, 比较特殊的驱动程序, 可以在网上获得。 当然现在 Linux 对硬 件的支持还不是很完善, 但这已经超出了本文档的访问, 不在作更多的表述。

      2. 显示模式

      显示模式包括分辨率, 扫描频率, 色深等等。 这也是网友在显示方面提问最多的 一个问题。 对于现在的显示卡和显示器, 一般都可以使用 1024 x 768 x 16 bit 色的显示模式。 当然保险起 见,在使用下面所叙述的方法设置您所使用的显示模式的时候, 请确定您的显示卡和显示器能够达到该模式的要求, 否则可能会有损坏硬件的危险。

      在各发行版本中, 都会提供一些设置 X Window 的工具软件, 如 Xconfigurator, XF86Setup, XF86Config 等等, 这些程序无一例外的是提供了一个修改 X Window 的配置文件 XF86Config 的简便方法。 当然使用起来比较方便, 但是对于一些需要灵活 调整的场合就不是非常适合, 需要手动调整配置文件中的参数达到最好效果。 您不必 一定这样做, 这里只是介绍这样一种方法, 使您可以在有疑问的时候方便地解决。

      一般这个文件是存在于 /usr/X11R6/lib/X11/ 目录下, 在 /etc 或者 /etc/X11 目录中有它的一个符号连接。 它是一个文本文件, 可以使用 vi 对它进行修改。 下面 对该文件中各部分的作用做个详细的介绍。 (如有遗漏, 欢迎提出)

      在这个文件中有这样几个概念: 段 (Section) 和子段 (Subsection)。 每个段或 子段分别给出了不同的参数, 格式分别为:

    [code]Section
    ......
    Endsection

    Section
    Subsection
    ......
    Endsubsection
    Endsection[/code]

      一个完整的配置文件中包含六个段, 分别是 File (文件), SeverFlag (服务器特 殊标志), Keyboard (键盘), Pointer (指示设备, 一般是鼠标), Monitor (监视器), Device (显示适配器, 即显卡), Screen (屏幕设置信息)。

      File 段: 这一段指示出一些运行 X Window 所需要的文件的位置, 比如颜色的别 名文件 rgb。txt (注意这里是不需要写出该文件的扩展名), 比如:

    [code]RgbPath "/usr/X11R6/lib/X11/rgb"[/code]

      如果您看过 /usr/X11R6/lib/X11/rgb。txt 的内容, 你会很容易的知道它是 干什么用的。 有了它, 你可以使用 red1 代表 RGB 颜色值 255 0 0 等等。

      接下来是字体文件的路径,这里的设置将影响到中文字体的输出。这里对路径的设置可以是多个, 例如下面的这样:

    [code]FontPath "unix/:-1"
    FontPath "/usr/share/zhfont/X11:unscaled"
    FontPath "/usr/share/zhfont/TTF"
    FontPath "/usr/X11R6/lib/X11/fonts/local"
    FontPath "/usr/X11R6/lib/X11/fonts/chinese"
    FontPath "/usr/X11R6/lib/X11/fonts/TTF"
    FontPath "/usr/X11R6/lib/X11/fonts/Type1"
    FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
    FontPath "/usr/X11R6/lib/X11/fonts/misc"
    FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
    FontPath "/usr/X11R6/lib/X11/fonts/100dpi"[/code]

      在使用一个字体目录之前, 需要使用 mkfontdir 命令把一条路径中的字体 作个列表, 在该目录中生成 font。dir 作为对字体的索引, 如:

    [code]mkfontdir /usr/X11Ry/lib/X11/fonts/100dpi[/code]

      具体该命令的用法, 请使用 man 命令查看其 man page (手册页), 或者会 在本文档的后续版本中提供详细的说明。

      ServerFlag 段: 这个段指明了一些具体的参数, 如下:

      NoTrapSignals 这个标志将使调试信号对 X Server 不起作用。 调试信号会使 X Server "转储核心", 把内存中有关的 X Server 的信息存储到硬盘上, 即所谓的 "Core dump"。 这样的目的是便于对 X Server 进行调试。