分享
 
 
 

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

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

本文档的主要目的在于介绍手动配置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_P9000XF86_8514 XF86_Mach32 XF86_S3

XF86_W32XF86_AGXXF86_Mach64 XF86_S3V XF86_

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

驱动程序的获得有多种途径, 一般的 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). 每个段或 子段分别给出了不同的参数, 格式分别为:

Section

......

Endsection

Section Subsection

......

Endsubsection

Endsection

一个完整的配置文件中包含九个段, 分别是 File (文件), Modules (动态链接库) SeverFlag (服务器特殊标志), Keyboard (键盘), Pointer (指示设备, 一般是鼠标), Monitor (监视器), Device (显示适配器, 即显卡), Screen (屏幕设置信息), XInput (X 输入).

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

RgbPath "/usr/X11R6/lib/X11/rgb"

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

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

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"

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

mkfontdir /usr/X11Ry/lib/X11/fonts/100dpi

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

既然 Unix 的服务中有一项 X Font Server, 当然 X11R6 也允许 X 从字体 服务器 (Font Server) 下设定字形,例如FontPath "/usr/X11R6/lib/X11/fonts/misc/,tcp/DarkEagle:7100" 就是用来告知 X server 在本端的 /usr/X11R6/lib/X11/fonts/misc 路径中, tcp/zok 这个主机,port 为 7100 的地方找字形.

还有的一个路径是模块文件路径. 模块路径用于指定所需要的动态链接库的 路径, 可以是用逗号分开的多个路径, 也可以是多个以 ModulePath 开头的 行. 一般这个设置不是必须的, 很多时候可能并不能找到这个设置.

需要说明的是, 这里对各个路径的设置对顺序是无关的.

Modules 段: 这个段指明的是需要加载的动态模块文件. 当然当前的动态模块只 是说明了需要加载的 XInput 设备, 并且只在少数其个系统 (现在是 Linux Elf, FreeBSD 2.x 和 NetBSD 1.x, 本资料摘自 RedHat 6.1 中 XF86Config 的 man 文档) 中被支持. 下面是在本段中可用的设置项:

Load "模块名"

这条指令指示服务器加载由模块名指定的模块. 如果该模块没有使用 完整路径名, 服务器将在上面文件段中由 ModulePath 指定的路径中 进行搜索. 下面是一些可用的模块:

xf86Elo.so

xf86MuTouch.so

xf86Jstk.so

xf86Wacom.so

xf86Summa.so

xf86AceCad.so

xf86Calcomp.so

xf86Dial.so

在一些系统中还可以把 PEX 和 XIE 的扩展作为模块使用, 如下:

pex5.so

xie.so

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

NoTrapSignals 这个标志将使调试信号对 X Server 不起作用. 调试信号会使 X Server "转储核心", 把内存中有关的 X Server 的信息存储 到硬盘上, 即所谓的 "Core dump". 这样的目的是便于对 X Server 进 行调试. 一般来说, 除非是X 的除错人员, 否则我们是用不到这个选 项的.

DontZap 这个标志将使 X Server 收到 "Ctrl + Alt + Back Space" 键 组合发出的信号时 *不* 停止工作. 当然一般是不建议使用的.

DontZoom 这个标志使 X Window 不能在各种图形模式之间进行切换. X Window 的缺省状态是在用户设定了多组分辨率, 刷新频率和颜色的组 合的情况下, 运行 X Window 的过程中可以通过 Ctrl + '+' 和 Ctrl + '-' 两组键的组合在多个图形模式之间进行动态切换.

Keyboard 段: 这个段指明了 X Window 环境中所使用的键盘映射以及其他一些参 数. 如下是作者的键盘配置:

Section "Keyboard"

Protocol "Standard"

# 这里的取值的可能值是 "Standard" 和 "Xqueue"

AutoRepeat 500 5

# 指定延迟 (delay) 和 速率 (rate), 这里的设定分别为 500 和 0.

# 注意: 这个设置并非对所有的平台都适用

LeftAlt Meta

RightAlt Meta

# 使用左右 Alt 键作 Meta 键.

# 这里的可能值为 "Meta", "Compose", "ModeShift", "ModeLock",

#"ScrollLock", "Ctrl"

ScrollLock Compose

RightCtrl Control

# 这两行的可能值同上面所述

XkbKeycodes "xfree86"

XkbTypes "default"

XkbCompat "default"

XkbSymbols "us(pc101)"

XkbGeometry "pc"

XkbRules "xfree86"

XkbModel "pc101"

XkbLayout "us"

EndSection

这段设置出了 XkbLayout 会影响键盘各按键的表现以外, 其他都只是一些功 能上的设置, 没有太大影响. 在控制台模式下, 可以通过 Alt + F? 在各虚 拟终端间进行切换, 在 X Widow 环境下, 必须使用 Ctrl + Alt + F? 才能 够达到这一效果.

对于本段以及下面的 Pointer 段, 由于本人经验和所知的限制不能完整地讲 述, 会在不久以后作进一步补充. 并在此向各位表示歉意.

Pointer 段: 如前所述, 这个段是设置鼠标等设备的. 如下举例是作者的鼠标设 置:

Section "Pointer"

Protocol "PS/2"

Device "/dev/mouse"

# 下面这两个参数是一些采用磁技术的鼠标所需要的, 一般注释掉或者删除

# BaudRate 9600

# SampleRate 150

# 下面的两个参数是为方便使用双键鼠标的用户使用三键鼠标而设置的

# 当选择了虚拟三键的时候, 可以通过同时点击鼠标左右键完成中键的功能

Emulate3Buttons

Emulate3Timeout 50

# 下面这个参数也是为磁金属鼠标所设定的

# ChordMiddle EndSection

Mornitor 段: 这个段的设置需要参考显示器的用户手册, 以便获得相关的数据, 防止损坏显示器. 这个段是我改动最多的, 现举例描述如下:

Section "Monitor"

Identifier "Samsung SyncMaster 500s/500Ms"

# 监视器标示符, 在下面 Screen 段用作标示

# 这个参数的设置对显示器的模式没有直接影响, 只要保证跟后面

# Screen 段的引用保持一致 VendorName "Unknown"

# 生产厂家的名称 ModelName "Unknown"

# 制造和型号的标示, 并不重要 # 在使用 Xconfigurator 的时候, 如果不提供上述值, 则填写

# "Unknown"

# 下面这两个参数在设置显示模式上来书哦是比较重要的.

# HorizSync 是水平扫描频率, kHz 为单位.

HorizSync 50-60

# VertRefresh 是垂直扫描频率, Hz 为单位

VertRefresh 80-100

# 上面这两个参数可以是列举的形式, 也可以是范围的形式.

# 比如: 列举: 75 85 100

# 范围: 如上所述

# 接下来是模式的描述了, 如果您使用的是 TurboLinux 或者是

# RedHat Linux, 下面的模式列表将会非常的完整. 但 Slackware

# 没有提供完整的列表, 这些数据可以在显示器的说明书上见到.

# 为节省空间, 这里仅列举一条

# 800x600 @ 85 Hz, 55.84 kHz hsync

Modeline "800x600" 60.75 800 864 928 1088 600 616 621 657 -HSync -VSync

# 或者写成以下形式, 为 Slackware 采用

# Mode "800x600"

# DotClock 45

# HTimings 1024 1048 1208 1264

# VTimings 768 776 784 817

# Fla

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有