确定可用的 TTY 文本模式分辨率

确定可用的 TTY 文本模式分辨率

如何确定显卡可用的文本模式分辨率?我一直使用 uvesafb 来获得更高的分辨率,但帧缓冲区 TTY 显示非常慢,所以我想尝试坚持使用文本模式。

编辑:与此相关,我确实找到了一个名为svga文本模式,允许将显卡设置为任意文本模式分辨率。但是,源码包解释称它需要特定芯片组的驱动程序。该程序已经好几年没有开发了,因此不支持较新的硬件。原作者建议改用帧缓冲区。

答案1

这通常是专有的。目前所有视频卡似乎都支持的常见模式是(按行列):

  80 x 25(标准 - 所有视频卡都应支持)
  80 x 43(最初由 EGA 卡普遍支持)
  80 x 50(极其常见,但可能难以读取)

然后您进入自定义模式。我记得我的 MS-DOS 4.01 机器上有一块 ATi 卡,它可以支持 132 x 66 和各种其他尺寸。如果您使用 80 x 25 或 80 x 50,那么您不应该遇到兼容性问题,几乎所有机器都可以追溯到 80386 级(以及几乎任何带有 VGA 卡的 XT)。如果您支持非常老旧的硬件,那么只需坚持使用 80 x 25。

答案2

我找到了这个这里

将“vga=ask”附加到引导加载程序(grub、lilo 等)或引导提示中的内核参数规范中。您将看到标准 VGA 文本模式的列表,然后要求您输入模式或“扫描”。输入“scan”(不带引号)并按 Enter。此逻辑在引导过程的极早期执行,在 CPU 从实模式切换到保护模式之前。(它必须在实模式下运行,因为它将进行视频 BIOS 调用。)Linux 将探测视频 BIOS,向其询问所有可用的文本模式。然后,它将尝试设置所有模式,并消除无法设置的模式。(有时给定的视频 BIOS 与多个芯片组一起使用,并且并非所有模式都适用于所有芯片组。)在此期间,您可能会在屏幕上看到奇怪的东西,并听到显示器内部发出奇怪的声音。然后,Linux 将显示此芯片组的视频 BIOS 支持的所有文本视频模式的列表。 (但是,这些模式可能适用于您的显示器,也可能不适用,特别是如果您使用的是定频或双频显示器。)从列表中选择一种模式。然后,Linux 将通过视频 BIOS 调用设置该模式并继续引导过程。要定期使用该模式,请在 vga 引导参数中明确指定它。注意:引导加载程序可能不支持十六进制数的规范。将其转换为十进制。例如,视频模式 0x0f00 应指定为 vga=3840。此方法还会产生真正的硬件级文本模式,这意味着屏幕滚动速度非常快!缺点是您只能使用视频 BIOS 支持的文本模式,并且您无法在不重新启动的情况下更改模式。

相关内容