![我从哪里开始了解显示控制器管理?](https://linux22.com/image/60339/%E6%88%91%E4%BB%8E%E5%93%AA%E9%87%8C%E5%BC%80%E5%A7%8B%E4%BA%86%E8%A7%A3%E6%98%BE%E7%A4%BA%E6%8E%A7%E5%88%B6%E5%99%A8%E7%AE%A1%E7%90%86%EF%BC%9F.png)
我想了解 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 链接,为了您的方便。
此外,维基百科的文章似乎相当广泛。根据您的目标,仅此资源可能就足够了,而且它肯定比官方文档更容易阅读,技术含量也更低。