【发布时间】:2018-03-12 14:51:29
【问题描述】:
我正在尝试制作某种视频生成器来测试监视器。为此,我试图避免使用任何 X 和窗口管理器,所以我坚持使用非 GUI Linux。
我能够在 Linux 下直接写入帧缓冲设备,但我根本无法更改分辨率。 Fbset 没有任何效果。
在a tutorial 的帮助下,我能够使用 DRM 更改分辨率,但只能更改我的屏幕显示它支持的模式。
有没有办法完全禁用 EDID 读取或注入自定义计时?
【问题讨论】:
-
感谢您的评论。但我所说的 DRM 是指 Linux 直接渲染管理器。它是直接在图形卡上设置模式的界面。它是某种低级 API。
-
顺便说一句,我认为您可能希望删除 DRM 标签,因为它通常在这里指的是数字版权管理,因此可能会误导人们。有趣的问题 - 您是否有理由避免使用 Windows 管理器来测试您的显示器?
-
好点,谢谢。原因是我想确保没有驱动程序以某种方式操纵输出图像,并且我希望它既纤薄又快速。另外,由于我正在研究这个,我学到了很多 Linux 如何在其中工作,而我不会使用 GUI 应用程序。并且由于 X 可以忽略 EDID 并注入自定义计时,因此它也必须是可能的。我已经尝试在 X 及其组件的源代码中找到它,但不幸的是它的方式非常复杂。
-
如果
fbset不适合你,那么你在让你的代码工作时也会遇到问题(它将使用与fbset相同的内核接口)。您使用的是哪个帧缓冲驱动程序?是否有充分的理由不使用 KMS 驱动程序(它们还公开帧缓冲区接口,具有合适的内核配置)。鉴于我们还不能确定您的问题是系统问题还是代码问题,这个问题可能更适合Unix & Linux。 -
我很乐意使用 AMDGPU 驱动程序,但使用它我只能写入 fb0 设备并在屏幕上绘图。当我尝试使用 fbset 更改分辨率时,它会导致 tty 的字母变小,但显卡的输出信号保持不变。 fbset 也将时序显示为 0 0 0 ... 0。使用 Vesa 驱动程序,我从 fbset 获得了正确的时序,但根本无法更改分辨率。你能告诉我更多关于带有 KMS 驱动程序的 sutable 内核配置吗?
标签: linux screen-resolution timing framebuffer