我尝试使用 Selenium 在我的 Ubuntu 14.04 服务器上运行 Firefox 来运行单元测试。我正在使用本博客中描述的 Xvfb来模拟虚拟显示器以显示 Firefox。
但是 Xvfg 以某种方式无法加载/与 RandR 一起使用。因为每当我尝试这个时:
sudo Xvfb :10 -ac &
export DISPLAY=:10
firefox
Run Code Online (Sandbox Code Playgroud)
我得到一个 Xlib: extension "RandR" missing on display ":10"-Error。
我也试过sudo Xvfb :10 -ac +extension RANDR,sudo Xvfb :10 -ac -extension RANDR因为它也提供“xrandr”apt-get install x11-xserver-utils。
我的设置是一个普通的空 Ubuntu 14.04 服务器,带有apt-get install xvfb firefox.
任何人都可以帮我在有或没有 RandR 的情况下运行 Xvfb 吗?
最近安装了 Ubuntu 16.04 64 位桌面。
图形:AMD OLAND 上的 Gallium 0.4(DRM 2.43.0,LLVM 3.8.0)当我看到其他链接时,他们为 Nvidia 的 Ubuntu 提供解决方案不确定这会有所帮助,因为我有 AMD Radeon。
$ xvfb-run firefox http://www.google.com
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: Can't open configuration file /home/ram/.drirc: No such file or directory.
libGL: Can't open configuration file /home/ram/.drirc: No such file or directory.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
[GFX1]: Unknown image format 16
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我想运行一些无头单元测试,我的问题可以用 glxinfo 重新创建。我尝试运行:
xvfb-run glxinfo
Run Code Online (Sandbox Code Playgroud)
它打印了多行关于 GLX:
Xlib:显示“:99”上缺少扩展“GLX”。
如果我尝试在后台运行 Xvfb:
Xvfb :99 &
Run Code Online (Sandbox Code Playgroud)
它打印扩展列表,GLX 也在那里:
初始化内置扩展 GLX
但是,仍然运行:
DISPLAY=:99 glxinfo
Run Code Online (Sandbox Code Playgroud)
给出相同的 GLX 错误。
它仅在我使用 nvidia 驱动程序时发生(在存储库中的 352 和 340 专有上测试)。切换到 Nouveau 后,相同的命令可以正常工作。这是 nvidia 软件包的问题吗?在这种情况下,有没有更好的方法来运行 xvfb?
我在 2 个显示器上运行 Ubuntu 11.10,分辨率为 3840x1080。这是通过 NVIDIA 的 TwinView 模式完成的。当我运行以下命令时:
x11vnc -safer -localhost -once -display :0 -ncache 10 -ncache_cr -geometry 3840x1080
Run Code Online (Sandbox Code Playgroud)
并从带有 TightVNC 的 Windows 机器连接,我的连接列出分辨率为 3840x12960。如果您不想进行数学运算,那就是 12 x 1080。VNC 连接的顶部看起来正常,但我可以向下滚动很多,我看到以前窗口的鬼影。
知道为什么或如何阻止这种情况吗?
我正在尝试使用此命令运行无头 firefox,sudo xvfb-run -a firefox http://google.com
因此出现此错误
(process:9000): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Xlib: extension "RANDR" missing on display ":113".
Run Code Online (Sandbox Code Playgroud)
我已经搜索解决这个问题,参考这个链接/sf/ask/1256096411/
Xvfb :113 -screen 0 1024x768x24 -extension RANDR &
Run Code Online (Sandbox Code Playgroud)
当我重新运行我得到的同一个命令时Xlib: extension "RANDR" missing on display ":114".,依此类推
我怎么能解决这个问题?任何解决方案将不胜感激
Ubuntu:
$lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
Run Code Online (Sandbox Code Playgroud)
Xvfb:
$ dpkg -s xvfb
Package: xvfb
Status: install ok installed
Priority: optional
Section: x11
Installed-Size: 2140
Maintainer: Ubuntu X-SWAT <ubuntu-x@lists.ubuntu.com>
Architecture: amd64
Multi-Arch: foreign
Source: xorg-server
Version: 2:1.15.1-0ubuntu2.7
Provides: xserver
Run Code Online (Sandbox Code Playgroud)
当前问题:
Xvfb 不支持 RANDR 扩展,即使我添加了标志:
+extension RANDR
Run Code Online (Sandbox Code Playgroud)
如果我运行 xdpyinfo,RANDR 不在列表中。这是缺少的功能或错误。我在这里找到了一个带有补丁的参考:https : //bugzilla.novell.com/show_bug.cgi?id=823410
看起来在 debian 等其他发行版中,已经有一个支持 Xvfb 的测试版本:https : //unix.stackexchange.com/questions/205509/running-firefox-in-xvfb-extension-randr-missing-on -展示
我试图通过 Xvfb 运行一个程序,它返回以下错误:
Xlib: extension "RANDR" missing on …Run Code Online (Sandbox Code Playgroud) 在 VirtualBox 中运行的 Ubuntu Server 16.04
\n\nsudo sh -c \'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list\'\nsudo apt-get update\nsudo apt-get install xvfb dbus-x11 google-chrome-stable\nRun Code Online (Sandbox Code Playgroud)\n\n$xvfb-run -a --server-args=\'-screen 0, 1024x768x16\' google-chrome -start-maximized http://example.com > /dev/null &\n\n$ ps auxx | grep Xvfb\nuser 1355 1.2 1.6 174992 33808 ? S 13:21 0:30 Xvfb :99 -screen 0, 1024x768x16 -nolisten tcp -auth /tmp/xvfb-run.adDyGd/Xauthority\n\n$ cat /tmp/xvfb-run.adDyGd/Xauthority\nuser99MIT-MAGIC-COOKIE-1\xef\xbf\xbd\xef\xbf\xbdgj\xef\xbf\xbd\xef\xbf\xbd/\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdauser@user:~$\nRun Code Online (Sandbox Code Playgroud)\n\n$ xdpyinfo -display :99\nNo protocol specified\nxdpyinfo: unable to open display ":99".\nRun Code Online (Sandbox Code Playgroud)\n\n … 我有一个 GTK 程序,我想从其中一个虚拟终端(通过 SSH 和本地)的控制台运行。有没有办法让这个应用程序(或任何其他 GTK 应用程序,以供将来参考)显示到虚拟监视器而不是犯错?
请注意,我不想使用 CLI 版本——并非所有 GTK 程序都有 CLI 版本。
Vivid 从新贵切换到 systemd。我曾经将 xfvb 配置为在 updstart 下作为服务运行。现在已经坏了。
在暴发户下,我有/etc/init/xvfb.conf:
description "Xvfb X Server"
start on (net-device-up
and local-filesystems
and runlevel [2345])
stop on runlevel [016]
exec /usr/bin/Xvfb :99 -screen 0 1024x768x24
Run Code Online (Sandbox Code Playgroud)
我可以从 sudo service xvfb start
在 15.04 下,当我尝试使用服务启动 xvfb 时,我现在收到此消息:
无法启动 xvfb.service:单元 xvfb.service 加载失败:没有这样的文件或目录。
将 xvfb 配置为作为服务与 systemd 一起运行的新方法是什么?
xvfb ×9
14.04 ×2
16.04 ×2
firefox ×2
framebuffer ×1
gtk ×1
nvidia ×1
opengl ×1
randr ×1
services ×1
systemd ×1
transmission ×1
virtualbox ×1
vnc ×1