如何从显存获取和读取 GUI 数据

如何从显存获取和读取 GUI 数据

我想将电子墨水显示器连接到单板 Linux 机器 PINE64。电子墨水显示器应用作主显示器,即 GUI 应显示在其上。由于没有直接的方法将电子墨水显示器连接到常见的图形端口(例如 HDMI、VGA、DVI),我想知道是否可以到达 Linux 中的图形内存并读取 GUI 数据,解析它电子墨水显示并通过 SPI 或 I²C 将数据发送到显示控制器。如果可以在哪个发行版上进行?

到目前为止我发现了一种方法。定期截取屏幕截图并将其保存为图像,解析图像并通过 SPI 将其发送到显示控制器。但我认为这种方法效率不高。

或者还有其他选择吗?

答案1

您可能会考虑实现远程帧缓冲协议 RFB,如RFC 6143。这是由虚拟网络控制器服务器和客户端在许多系统上都很常见。在 Linux 上,该包可能被称为tigervnc-server服务器Xvnc(或脚本前端vncserver),也可能tigervnc被称为通常的 X11 客户端的包vncviewer,但有不同的版本。

协议描述如下这里(pdf)。它的目的是轻量级且易于客户实施。优点是只有屏幕发生变化的部分需要重新绘制。

相关内容