2012-09-28 86 views
32

我已经安装了xvfb的服务器我无头的服务器上,当我米运行 DISPLAY =:99火狐 我得到这个例外失踪RANDR扩展如何添加缺少的RANDR扩展

他们中许多人说:从xorg.conf文件中禁用一些xinerna,但是这个文件没有在我的情况下创建。

所以我正在寻找如何添加缺少的RANDR扩展。

回答

15

首先,Xvfb不会从xorg.conf中读取配置。 Xvfb是KDrive X服务器的一个变体,就像该家族的所有成员从命令行获取其配置一样。

确实,XRandR和Xinerama是互斥的,但在Xvfb的情况下,没有Xinerama首先。您可以启用通过启动Xvfb来至少使用以下命令行选项

Xvfb +extension RANDR [further options] 
+1

至少在raspbian上,似乎没有Xvfb的RANDR支持。有其他解决方案吗? – Black

+2

@Black:您可以始终使用自己的自定义配置从源代码构建自己的源代码。我强烈建议在Raspbian系统上安装工具链并在那里编译。幸运的是,Xvfb对于R-Pi来说并不是很复杂和可管理的任务;如果你可以避免这种情况,你肯定不想经历建立一个兼容的交叉编译工具链的努力。 – datenwolf

+0

没有帮助,同样的错误... –

24

当我使用xvfb的通过硒运行Firefox的无头,我看到此错误消息XRandR扩展。事实证明,这条消息对我来说是一条红鲱鱼。该消息只是一个警告,而不是一个错误。这不是为什么Firefox不能正确启动。

Firefox未启动的原因是它已更新为与我正在使用的Selenium驱动程序不兼容的版本。我将硒驱动程序升级到最新版本,并且Firefox再次启动(即使有关于RANDR的此警告消息)。

Firefox的新版本通常只与Selenium的一个或两个版本兼容。有时Firefox会与012版本的兼容版本的Selenium一起发布。当发生这种情况时,新版Selenium可能需要一到两周才能发布。因此,我现在保留一个已知可与我已安装的Selenium版本配合使用的Firefox版本。除了由我的软件包管理器保持最新版本的Firefox之外,我还在/opt/(例如/opt/firefox31/)中安装了一个版本。 Selenium Java API为要使用的Firefox二进制文件的位置提供参数。缺点是旧版本的Firefox已经知道安全漏洞,不应该与不受信任的内容一起使用。

+0

谢谢@ Stephen,精彩的回答。 – Prateek

+0

你为我节省了几个小时:) – ramigg

+0

加载webdriver时,你可以传递你喜欢的二进制位置。这包括一个自定义安装,一个便携式或任何你指向。 – erm3nda

2

有同样的问题火狐30 + 硒2.49 + 的Ubuntu 15.04

它好工作与Ubuntu的14,但升级到15.04后,我得到了相同的RANDR警告和问题在使用Xfvb启动Firefox浏览器。

添加+extension RANDR后,它再次工作。

$ vim /etc/init/xvfb.conf 

#!upstart 
description "Xvfb Server as a daemon" 

start on filesystem and started networking 
stop on shutdown 

respawn 

env XVFB=/usr/bin/Xvfb 
env XVFBARGS=":10 -screen 1 1024x768x24 -ac +extension GLX +extension RANDR +render -noreset" 
env PIDFILE=/var/run/xvfb.pid 

exec start-stop-daemon --start --quiet --make-pidfile --pidfile $PIDFILE --exec $XVFB -- $XVFBARGS >> /var/log/xvfb.log 2>&1 
+0

使用Ubuntu 14.04或14.10?因为我正在尝试14.04,并且在尝试运行Chromium浏览器时收到了“丢失的RANDR”扩展消息...可能是Chromium问题 – zabumba