我从哪里开始了解显示控制器管理?

我从哪里开始了解显示控制器管理?

我想了解 Linux 如何检测哪些显示设备可用(视频输出)以及如何决定在每个设备上显示什么。

例如:如果我有一个带有串行线和 HDMI 端口的嵌入式设备,如何使控制台出现在 HDMI 显示器上而不是串行控制台上?

另外,如果我想使用与视频驱动程序链接的简单 OpenGL 应用程序,OpenGL 将使用什么接口在 HDMI 端口上进行绘制?

指向正确文档的指针会很棒。

答案1

对于大多数系统,处理输出到哪个屏幕设备取决于 GPU 或其他一些视频显示控制器。系统上与视频设备的所有接口均由直接渲染管理器 (DRM) 和密切相关的内核模式设置 (KMS) 内核子系统处理。

来自维基百科页面关于主题:

在计算中,直接渲染管理器 (DRM)(Linux 内核的一个子系统)与现代显卡的 GPU 接口。 DRM 公开了一个 API,用户空间程序可以使用该 API 向 GPU 发送命令和数据,并执行配置显示器模式设置等操作。 DRM 最初是作为 X Server 的直接渲染基础设施的内核空间组件开发的,但从那时起它已被其他图形堆栈替代方案(例如 Wayland)使用。

用户空间程序可以使用DRM API命令GPU进行硬件加速3D渲染和视频解码以及GPGPU计算。

官方 Linux 文档可以在 下的源存储库中找到Documentation/gpu这里是 github 链接,为了您的方便。

此外,维基百科的文章似乎相当广泛。根据您的目标,仅此资源可能就足够了,而且它肯定比官方文档更容易阅读,技术含量也更低。

相关内容