首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在Centos (Rhel 7.5)上运行google-chrome时无法打开X显示

尝试在Centos (Rhel 7.5)上运行google-chrome时无法打开X显示
EN

Stack Overflow用户
提问于 2020-02-19 23:51:46
回答 4查看 62.7K关注 0票数 27

我需要使用SSH在虚拟机上远程运行Google Chrome。我不想要xforwarding -我想要利用虚拟机上可用的GPU。当我尝试运行google-chrome时,我得到以下错误:

代码语言:javascript
复制
[19615:19615:0219/152933.751028:ERROR:browser_main_loop.cc(1512)] Unable to open X display.

我已经尝试将我的DISPLAY env值设置为各种值:

代码语言:javascript
复制
export DISPLAY=localhost:0.0
export DISPLAY=127.0.0.1:0.0
export DISPLAY=:0.0

我还试着用不同的值替换掉上面例子中的0.0。

我在/etc/ssh/sshd中有ForwardX11 no,我尝试这样设置目标:

代码语言:javascript
复制
systemctl isolate multi-user.target

当我尝试运行sudo lshw -C display时,我得到以下输出:

代码语言:javascript
复制
   *-display
       description: VGA compatible controller
       product: Hyper-V virtual VGA
       vendor: Microsoft Corporation
       physical id: 8
       bus info: pci@0000:00:08.0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: vga_controller bus_master rom
       configuration: driver=hyperv_fb latency=0
       resources: irq:11 memory:f8000000-fbffffff
  *-display UNCLAIMED
       description: VGA compatible controller
       product: GM204GL [Tesla M60]
       vendor: NVIDIA Corporation
       physical id: 1
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list
       configuration: latency=0
       resources: iomemory:f0-ef iomemory:f0-ef memory:41000000-41ffffff memory:fe0000000-fefffffff memory:ff0000000-ff1ffffff

我尝试通过以下方式更新我的gpu驱动程序:

代码语言:javascript
复制
wget https://www.nvidia.com/content/DriverDownload-March2009/confirmation.php?url=/tesla/375.66/nvidia-diag-driver-local-repo-rhel7-375.66-1.x86_64.rpm
yum -y install nvidia-diag-driver-local-repo-rhel7-375.66-1.x86_64.rpm

但在那之后,我仍然在我的NVIDIA gpu旁边看到了UNCLIMED。Aby点子?

EN

回答 4

Stack Overflow用户

发布于 2020-04-05 21:04:10

您可以尝试使用Xvfb。它不需要额外的硬件。

如果您还没有安装Xvfb,请安装它,然后执行以下步骤。

代码语言:javascript
复制
sudo apt-get install -y xvfb

使“无头”铬/硒工作的依赖项:

代码语言:javascript
复制
sudo apt-get -y install xorg xvfb gtk2-engines-pixbuf
sudo apt-get -y install dbus-x11 xfonts-base xfonts-100dpi xfonts-75dpi xfonts-cyrillic xfonts-scalable

可选但很棒:用于捕获Xvfb display的屏幕截图:

代码语言:javascript
复制
sudo apt-get -y install imagemagick x11-apps

确保Xvfb在每次机器/虚拟机启动时启动:

代码语言:javascript
复制
Xvfb -ac :99 -screen 0 1280x1024x16 &
export DISPLAY=:99

运行谷歌Chrome

代码语言:javascript
复制
google-chrome
票数 36
EN

Stack Overflow用户

发布于 2020-09-02 04:28:29

好了伙计们。在疯狂了2个小时后,我发现了我的问题。我的盒子配置正确。你不能做的是,ssh从一个盒子,到另一个盒子,再到这个盒子,并期望X11转发能很好地发挥作用。在没有拆分整个网络的情况下,我发现如果我从主机盒到这个机顶盒(没有两个或三个ssh‘’ing),chrome就会以普通用户的身份使用CLI。因此,这是一个来自多个框的多个shell的问题,使显示器显示它设置为空!手动设置显示只会使问题复杂化。一旦我直接从主外部框转到这个框,我的显示被设置为10:0,这是我的配置中的第一个实例。不要犯这个错误,你会浪费宝贵的时间。

票数 3
EN

Stack Overflow用户

发布于 2021-05-06 05:15:48

FWIW,我在使用SSH登录到Docker compose堆栈中的Selenium chrome节点时遇到了这个问题。如果我用sudo -u seluser google-chrome作为root调用Chrome,那么Chrome就会启动,但如果我以seluser登录,就不会启动。诀窍是rootDISPLAY设置为:99:0,而seluser根本没有设置。如果我显式地设置它(无论是从seluser外壳还是从docker compose exec命令行),它都可以工作。

代码语言:javascript
复制
$ docker-compose exec -u seluser \
  selenium-chrome \                 # or whatever your service is called
  /bin/bash
seluser@c02cda62b751:/$ export DISPLAY=:99:0
seluser@c02cda62b751:/$ google-chrome http://app.test:3000/home

代码语言:javascript
复制
$ docker-compose exec -u seluser -e DISPLAY=:99:0 \
  selenium-chrome \
    google-chrome http://app.test:3000/home

但是,该:99.0没有文档记录,因此如果不起作用,您可以尝试使用以下命令检查rootDISPLAY值:

代码语言:javascript
复制
docker-compose exec -u root selenium-chrome bash -c 'echo "${DISPLAY}"'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60304251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档