谷歌Chrome在Linux FrameBuffer上

29

我正在处理一个项目,需要在Linux FrameBuffer上运行Google Chromium,但必须没有任何窗口系统依赖(它应该绘制我们提供的缓冲区,这将使它能够轻松移植到任何嵌入式系统),我不需要其多标签GUI,只需要在缓冲区中使用其渲染器窗口,有人尝试过吗?请问应该采用什么方法来实现?


4
建议查看WebKit,而非完整的Chromium浏览器,可能会更好。 - Andrew Aylett
@Andrew Aylett,嗯,我正在寻找Chromium浏览器,因为Chrome端口是唯一稳定、活跃的端口,我尝试了最新的Gtk和Qt端口,但它们无法正确地渲染许多网站。 - SunnyShah
将与嵌入式编程无关的内容 http://stackoverflow.com/tags/embedded/info 重新标记。请返回已翻译的文本。 - uɐɪ
你可能想看一下NetSurf...它几乎完全支持HTML4...(请@我,我不会手动查找答案) - user2284570
不错的想法,这在嵌入式环境中非常有用-拥有 WebKit 渲染的能力使得制作 UI 变得非常容易。 - John Hunt
7个回答

18
如果您需要对窗口功能进行一些直接控制,或者想要在DOM数据中查找问题,那么解决这个问题的正确方法可能是直接嵌入webkit。这比我即将提出的建议要快得多且更加清洁。
现在,假设您不需要所有这些花哨的控制,并且您真的很懒。您可以采用古老、低技术的解决方案来创建虚拟帧缓冲区,然后直接读取其内容。为此,您可以在服务器上设置xvfb:

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

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


2
好的,我计划启动一个 Google Chrome 的分支,并使其独立于 Gtk 依赖项。我知道这需要大量的工作,但在嵌入式行业中,这可以产生奇迹。 - SunnyShah
我将在此更新我的 Google Code 存储库位置。 - SunnyShah

5

我想你在使用uzblGTK/DirectFB时会更加顺利。这两种引擎都可以与JavaScript一起使用。对于Facebook聊天问题,我认为你只需要更改user-agent字符串即可。


2

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


2

1

你可以购买剩下的10块(左右)OGD1板。 http://en.wikipedia.org/wiki/Open_Graphics_Project

然后,您可以使用libpci直接与硬件通信。

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

我意识到这个答案更多是一种厚颜无耻的宣传。 但是对于那些对您的问题感兴趣的人来说,可能会想要这样的板子。 我已经有了这样的一个板子,如果它得到更多的曝光,它会帮助很多人。


0

这个项目:

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

实现这一点的方法是,在虚拟显示器上运行Webkit并以PDF格式捕获渲染输出。您可以自定义它以执行其他操作。
或者,您可以创建一个带有tightvnc的显示器,并设置DISPLAY变量,以便Chrome在该显示器中呈现。

wkhtmltopdf基于QtWebkit,我需要使用仅限于Google Chrome的webkit端口(因为它是唯一稳定且渲染问题非常少的)。 - SunnyShah
你能给我们举几个在wkhtmltopdf上无法正确呈现的网站的例子吗? - Shamit Verma
尝试在QtWebkit中打开http://www.yatra.com,并在Mozilla或Chrome中打开,您将能够找到不同之处。 - SunnyShah
尝试使用QtWebkit进行Facebook聊天是不起作用的,我甚至检查了最新的QtWebkit主干。 - SunnyShah

0

我建议使用webkit2pdf软件包(适用于许多不同的Linux发行版)。然后使用fbgs,它是fbi帧缓冲程序的包装器,可以直接在帧缓冲上显示PDF文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接