当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 设置和修改 X Window 的显示模式

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

Unix/Linux 中的 设置和修改 X Window 的显示模式


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 24 ::
收藏到网摘: n/a

  本文档的主要目的在于介绍手动配置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).显示服务器位于硬件和客户机之间, 它跟踪所有来自输入设备比如键盘、鼠标的 输入动作, 经过处理后将其送回客户机.这样, 使用户甚至可以在 MSWindows 的机器上运行 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 驱动: 

  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 

  如果你的 /usr/X11R6/bin 下面没有上面某个文件或者多了某个文件, 不必在 意, 这主要决定于你的机器的硬件.其实一般只需要跟自己硬件相配套的驱动即可,比如作者正在使用的机器上使用的是 3D Lab Permedia II 的芯片的显示卡, 因此只有 XF86_3DLabs 是有作用的.

  如此之多种类的显示适配器驱动程序, 系统当然需要一个固定和统一的方法去访问它, 一般说来, 系统是使用一个名为 X 的符号连接去访问具体的 X Server 的.这个 X 也同样是存在于 /usr/X11R6/bin/ 目录中, 可以使用如下命令打印他的具体指向: 

  ls -l /usr/X11R6/bin/X 

  得到的结果如: 

  lrwxrwxrwx   1 root  root   8 Dec 14 03:40 /usr/X11R6/bin/X -> XF86_3DLab 

  前面的属性 "lrwxrwxrwx" 中第一个字母 l 表示它是一个连接, 在最后由箭头指出它所指向的具体目标.

明白了这个, 在以后需要更换 X Server 的时候就可以通过改变这个联系来实现了, 具体命令如下: 

  ln -sf /usr/X11R6/bin/X??????? /usr/X11R6/bin/X 

  其中问号代表的字母根据具体情况决定.有些时候, 由于这个连接不正确, 导致无法运行 X Window, 这时可以使它指向 XF86_VGA16, 使用 16 色的 VGA 模式进入 X Window, 注意如果需要运行 XF86Setup 程序 (是个图形界面的 X Window 配置工具程序), 那么这个 XF86_VGA16 驱动一定要存在, 这是由于该驱动所提供的显示模式是一般显示卡和显示器都支持的, 故该配置程序使用此 X Server 为驱动.当用户的显卡是比较特殊的型号时, 需要装特定的驱动