我正在做一个项目,我需要在 Linux FrameBuffer 上运行 Google chromium,我需要在没有任何窗口系统依赖的情况下运行它(它应该在我们提供它绘制的缓冲区上绘制,这将使其非常移植到任何嵌入式系统easy) ,我不需要它的多选项卡 GUI,我只需要缓冲区中的渲染器窗口,有没有人尝试过这个?关于我应该使用什么方法的任何帮助?
7 回答
如果您需要对窗口功能进行一些直接控制,或者想在 DOM 数据中四处寻找,那么解决此问题的正确方法可能是直接查看嵌入 webkit。这将比我将要建议的更快、更干净。
现在,让我们假设您不需要所有花哨的控制并且您真的很懒惰。一个古老的、低技术的解决方案可能是创建一个虚拟帧缓冲区,然后直接读取其内容。为此,您可以在服务器上设置 xvfb:
http://www.x.org/releases/X11R7.6/doc/man/man1/Xvfb.1.xhtml
xvfb 是一个旧的 unix 工具,可让您使用所需的任何类型的配置创建虚拟 x 服务器。更重要的是,它可以配置为将其 X 服务器屏幕的内容直接写入内存映射文件!您还可以将其设置为使用共享内存,这会更快一些,但也更复杂。
我想你会在uzbl和GTK/DirectFB上有更好的运气。相同的引擎,并与 javascripts 一起使用。对于 facebook 聊天问题,我认为您只需要更改user-agent
字符串即可。
尝试将webkit引擎移植到基于 netsurf 帧缓冲区的代码。
高温高压
有 Origyn Web 浏览器,它应该是一个嵌入式的基于 WebKit 的浏览器,看起来很便携,并且不依赖于“重”库(如 GTK)。他们的网页是http://www.sand-labs.org/owb但看起来他们的数据库崩溃了,这可能有点令人担忧。
您可以购买剩下的 10 个(左右)OGD1 板中的一个。 http://en.wikipedia.org/wiki/Open_Graphics_Project
然后,您可以使用 libpci 直接与硬件对话。
但是,您仍然需要将图片绘制到内存缓冲区中的代码。
我意识到这个答案更像是一个无耻的插件。但是对您的问题感兴趣的人可能想要这样的板。我已经有一个这样的板,如果它得到更多的曝光会很有帮助。
这个项目:
http://code.google.com/p/wkhtmltopdf/
做到这一点。它在虚拟显示器上运行 Webkit,并以 PDF 的形式捕获渲染输出。您可以自定义做其他事情。
或者,您可以使用 tigthvnc 创建一个显示,并设置 DISPLAY 变量,以便 Chrome 在该显示中呈现。
我建议使用webkit2pdf包(可用于许多不同的 Linux 发行版)。然后使用fbgs,它是fbi帧缓冲区程序的包装器,它在帧缓冲区上显示 PDF 文件。