Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

[显卡]设置和修改 X Window 的显示模式

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

许可证:

  本文档的发布遵循 DGPL, 任何人有权免费获得, 阅览, 转载和发布本文档, 未经作者许可, 任何个人或组织不得用于任何形式的商业用途.

  本文档现在由 Rocky S. Lee 进行维护, 任何人可以对其中存在的遗漏, 错误进行修改和指正. 修改者名单将列于本文档的作者名后.

简短说明:

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

  本文档修改版本将在今后进行发布, 关注本文档的 Linux 用户可以敬请留意以下站点:

  华南木棉 BBS bbs.gznet.edu.cn

  中国 Linux 论坛 www.linuxforum.net

  西十八 BBS bbs.x18.scut.edu.cn

一. 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 Linux6.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 -> F86_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 为驱动. 当用户的显卡是比较特殊的型号时, 需要装特定的驱动程序, 也需要作此工作.

  驱动程序的获得有多种途径, 一般的 Linux 发行版本都提供了丰富的驱动程序,可以满足大部分要求, 比较特殊的驱动程序, 可以在网上获得. 当然现在 Linux 对硬件的支持还不是很完善, 但这已经超出了本文档的访问, 不在作更多的表述.

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:[显卡]如何驱动i810显卡   下一篇:[软件安装]软件安装通用思路

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号