2011-06-23 190 views
21

我正在开发一个项目,我需要在Linux FrameBuffer上运行Google铬,我需要运行它而没有任何窗口系统依赖项(它应该绘制我们提供的缓冲区来绘制,这将会使其移植到任何嵌入式系统非常容易),我不需要它的多选项卡GUI,我只需要它的缓冲区中的渲染器窗口,有任何身体曾经尝试过?我应该用什么方法来帮助我?谷歌浏览器Linux FrameBuffer

+4

我认为你可能会更好地看WebKit,而不是完整的Chromium浏览器。 –

+0

@Andrew Aylett,那么,我正在寻找铬浏览器,因为铬端口是唯一稳定的活动端口,我试过最新的Gtk和Qt端口它并没有正确渲染很多网站。 – SunnyShah

+0

未嵌入式编程相关http://stackoverflow.com/tags/embedded/info,已重新标记。 –

回答

13

如果您需要直接控制窗口函数,或者想要在DOM数据中寻找答案,那么解决此问题的正确方法是直接嵌入webkit。这比我将要建议的要快得多,也比我更清楚。

现在,让我们假设你不需要所有那些奇特的控制,而且你真的很懒。对您的问题的一个古老的,低技术解决方案可能是创建一个虚拟帧缓冲区,然后直接读取其内容。要做到这一点,你可以设置xvfb的服务器上:

http://www.x.org/releases/X11R7.6/doc/man/man1/Xvfb.1.xhtml

xvfb的是一个老的UNIX工具,它可以让你创建一个虚拟的X服务器和你想要的任何类型的配置。更重要的是,它可以配置为将其X服务器的屏幕内容直接写入内存映射文件!您也可以将其设置为使用共享内存,虽然也更复杂,但速度稍快。

+2

那么,我打算开始一个谷歌浏览器的分支,并使其独立于Gtk依赖关系,我知道这是一个巨大的工作,但在嵌入式行业中,这可以创造奇迹 – SunnyShah

+0

我会更新我的谷歌代码的存储库位置在这里。 – SunnyShah

1

这个项目:

http://code.google.com/p/wkhtmltopdf/

实现了。它在虚拟显示器上运行Webkit,并以PDF格式捕获呈现的输出。你可以自定义做别的事情。

或者您可以使用tigthvnc创建一个显示,并设置DISPLAY变量,以便Chrome在该显示中呈现。

+0

wkhtmltopdf基于QtWebkit,我只需要使用Google chrome的webkit端口(因为它是唯一稳定的非常少的渲染问题。 – SunnyShah

+0

你能给我们几个没有在wkhtmltopdf上正确渲染的网站的例子吗? –

+0

尝试,http://www.yatra.com在QtWebkit和Mozilla或Chrome上相同,你将能够找到差异。 – SunnyShah

4

我想你会有更好的运气uzblGTK/DirectFB。相同的引擎,并与javascripts一起工作。对于Facebook聊天问题,我认为你只需要更改user-agent字符串。

+0

+1为链接,非常有趣的解决方案 – Krumelur

1

有一个Origyn网络浏览器,它应该是一个基于WebKit的嵌入式浏览器,它看起来很便于使用,并且不依赖于“重”库(比如GTK)。他们的网页是http://www.sand-labs.org/owb,但看起来他们的数据库崩溃了,这可能有点令人担忧。

1

您可以购买剩余的10个(左右)OGD1板之一。 http://en.wikipedia.org/wiki/Open_Graphics_Project

然后,您可以使用libpci直接与硬件对话。

但是,您仍然需要将图片绘制到内存缓冲区中的代码。

我意识到这个答案是更无耻的插件。 但是对你的问题感兴趣的人可能会想要这样一块板子。 我已经有了这样的板子,如果它有更多的曝光,它会有很大的帮助。

1

我建议使用webkit2pdf包(其为可用于许多不同的Linux发行)。然后使用这个帧缓冲器程序的包装器,它在帧缓冲器上显示PDF文件。