在修改 Xconfig 条目之前,您需要了解一些基本事项。 这些是
您的显示器的水平和垂直同步频率选项
您的显示器的带宽
您的视频适配器的驱动时钟频率,或“点时钟”
水平同步频率只是显示器每秒可以写入水平扫描线的次数;这是关于您的显示器最重要的统计数据。 垂直同步频率是显示器每秒可以垂直扫描光束的次数。
同步频率通常列在显示器手册的规格页上。 垂直同步频率的数字通常以 Hz(赫兹,周期/秒)为单位校准,水平同步频率以 KHz(千赫兹,千周期/秒)为单位校准。 通常的范围是垂直 50 到 150Hz,水平 31 到 135KHz。
如果您有变频显示器,这些频率将以范围的形式给出。 一些显示器,尤其是低端显示器,具有多个固定频率。 这些也可以配置,但您的选项将受到内置显示器特性的严重限制。 选择最高的频率组合以获得最佳分辨率。 并且要小心 --- 尝试以高于固定频率显示器设计速度的时钟频率运行它很容易损坏它。
本指南的早期版本对过度驱动变频显示器相当随意,为了获得更好的性能,将其推过其标称的最高垂直同步频率。 此后,我们被指出了更多需要对此保持谨慎的原因; 我们将在下面的 过度驱动显示器 中介绍这些内容。
您的显示器的视频带宽应包含在手册的规格页上。 如果没有,请查看显示器的最高额定分辨率。 根据经验法则,以下是如何将这些转换为带宽估计值(以及您可以使用的点时钟的粗略上限)
640x480 25 800x600 36 1024x768 65 1024x768 interlaced 45 1280x1024 110 1600x1200 185 |
顺便说一句,这张表没有什么神奇之处; 这些数字只是标准 X Modes 数据库中每个分辨率的最低点时钟(除了最后一个,我推断出来的)。 您的显示器的带宽实际上可能高于其最高分辨率所需的最小值,因此不要害怕尝试高几个 MHz 的点时钟。
另请注意,对于 65MHz 或更低的点时钟,带宽很少成为问题。 使用 SVGA 卡和大多数高分辨率显示器,您无法接近显示器视频带宽的极限。 以下是一些示例
Brand Video Bandwidth ---------- --------------- NEC 4D 75Mhz Nano 907a 50Mhz Nano 9080i 60Mhz Mitsubishi HL6615 110Mhz Mitsubishi Diamond Scan 100Mhz IDEK MF-5117 65Mhz IOCOMM Thinksync-17 CM-7126 136Mhz HP D1188A 100Mhz Philips SC-17AS 110Mhz Swan SW617 85Mhz Viewsonic 21PS 185Mhz PanaSync/Pro P21 220Mhz |
即使是低端显示器,对于其额定分辨率,带宽通常也不会受到太大限制。 NEC Multisync II 就是一个很好的例子 --- 根据其规格,它甚至无法显示 800x600。 它只能显示 800x560。 对于如此低的分辨率,您不需要高点时钟或大量带宽; 可能您能做的最好的就是 32Mhz 或 36Mhz,它们都离显示器的额定视频带宽 30Mhz 不太远。
在这两个驱动频率下,您的屏幕图像可能不如应有的清晰,但绝对是可接受的质量。 当然,如果 NEC Multisync II 的视频带宽高于 36Mhz,那就更好了。 但对于文本编辑等常见任务来说,这并不关键,只要差异不至于引起严重的图像失真(如果真是这样,您的眼睛会立即告诉您)。
您的视频适配器手册的规格页通常会提供显卡的最大点时钟(即,它每秒可以写入屏幕的总像素数)。
如果您没有此信息,X 服务器会为您获取它。 最新版本的 X 服务器都支持 --probeonly 选项,该选项会打印出此信息并退出,而无需实际启动 X 或更改视频模式。
如果您没有 -probeonly,请不要绝望。 即使您的 X 锁定显示器,它也会向标准错误输出一行时钟和其他信息。 如果您将其重定向到一个文件,即使您必须重新启动才能恢复控制台,它也应该会被保存。
探测结果或启动消息应类似于以下示例之一
如果您正在使用 X.org 或 XFree86
Xconfig: /usr/X11R6/lib/X11/Xconfig (**) stands for supplied, (--) stands for probed/default values (**) Mouse: type: MouseMan, device: /dev/ttyS1, baudrate: 9600 Warning: The directory "/usr/andrew/X11fonts" does not exist. Entry deleted from font path. (**) FontPath set to "/usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/75dpi/" (--) S3: card type: 386/486 localbus (--) S3: chipset: 924 --- Chipset -- this is the exact chip type; an early mask of the 86C911 (--) S3: chipset driver: s3_generic (--) S3: videoram: 1024k ----- Size of on-board frame-buffer RAM (**) S3: clocks: 25.00 28.00 40.00 3.00 50.00 77.00 36.00 45.00 (**) S3: clocks: 0.00 0.00 79.00 31.00 94.00 65.00 75.00 71.00 ------------------------------------------------------ Possible driving frequencies in MHz (--) S3: Maximum allowed dot-clock: 110MHz ------ Bandwidth (**) S3: Mode "1024x768": mode clock = 79.000, clock used = 79.000 (--) S3: Virtual resolution set to 1024x768 (--) S3: Using a banksize of 64k, line width of 1024 (--) S3: Pixmap cache: (--) S3: Using 2 128-pixel 4 64-pixel and 8 32-pixel slots (--) S3: Using 8 pages of 768x255 for font caching |
如果您正在使用 SGCS 或 X/Inside X
WGA: 86C911 (mem: 1024k clocks: 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71) --- ------ ----- -------------------------------------------- | | | Possible driving frequencies in MHz | | +-- Size of on-board frame-buffer RAM | +-- Chip type +-- Server type |
注意:在您的机器未加载的情况下执行此操作(如果可能的话)。 因为 X 是一个应用程序,其定时循环可能会与磁盘活动冲突,从而导致上面的数字不准确。 多次执行此操作并观察数字是否稳定; 如果没有,请开始终止进程,直到它们稳定为止。 您的鼠标守护进程(如果您有的话)尤其容易给您带来麻烦(Linux 用户是 gpm,SVr4 用户是 mousemgr)。
为了避免时钟探测不准确,您应该剪切出时钟时序,并将它们作为 Clocks 属性的值放入您的 Xconfig 中 --- 这会抑制定时循环,并为 X 提供它可以尝试的精确时钟值列表。 使用上面示例中的数据
wga Clocks 25 28 40 3 50 77 36 45 0 0 79 31 94 65 75 71 |
在负载高度可变的系统上,这可能有助于您避免神秘的 X 启动失败。 X 有可能启动,由于系统负载而使其时序错误,然后无法在其配置数据库中找到匹配的点时钟 --- 或者找到错误的点时钟!
您的显示器的同步频率范围,以及您的视频适配器的点时钟,决定了您可以使用的最终分辨率。 但这取决于驱动程序来挖掘您硬件的潜力。 没有同样称职的设备驱动程序的卓越硬件组合是浪费金钱。 另一方面,凭借通用的设备驱动程序和功能较弱的硬件,您可以将硬件推到超出其额定性能的范围。 这是 X 的设计理念。
您应该将您使用的点时钟与显示器的视频带宽相匹配。 虽然这里有很多余地 --- 有些显示器可以超过其标称带宽 30% 之多。 这里的风险与超过显示器的额定垂直同步频率有关; 我们将在下面详细讨论它们。
了解带宽将使您能够在可能的配置之间做出更明智的选择。 它可能会影响您显示器的视觉质量(尤其是精细细节的清晰度)。