Linux 如何检测屏幕分辨率?

Linux 如何检测屏幕分辨率?

Linux 如何在启动时或运行过程中检测屏幕分辨率?

我想在嵌入式 Linux 目标上强制自定义分辨率,该目标的用户界面不基于 X 服务器。

当检测到的分辨率不是标准分辨率之一时,Linux 如何重新配置​​系统?

如果可能的话,请给我提供一些能够解释启动时图形初始化机制的文本。

短暂性脑缺血。

答案1

在基于 x86 的系统上,Linux 内核将使用一项名为VESA BIOS 扩展在启动时设置分辨率。

如果您希望控制台以特定的分辨率运行,您可以vga=X+0x200在启动时将其传递给内核,其中 X 是特定分辨率的 VESA BIOS 代码。

比如说你想要 1600x1200 @ 24 位颜色:

    这非标准此分辨率的 VESA 标识符为0x011F287)。

    另一方面,Linux 将其标识为0x011F+0x0200=0x031F799)。

        您可以将其添加vga=799到启动字符串中以获得具有 24 位色彩的 1600x1200。

此代码不能保证在所有视频卡上都能工作,VESA 很久以前就停止发布标准分辨率代码,任何高于 1280x1024 的代码都是非标准的。

相关内容