【问题标题】:Unable to open X display when trying to run google-chrome on Centos (Rhel 7.5)尝试在 Centos (Rhel 7.5) 上运行 google-chrome 时无法打开 X 显示
【发布时间】:2020-06-03 20:28:08
【问题描述】:

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

[19615:19615:0219/152933.751028:ERROR:browser_main_loop.cc(1512)] Unable to open X display.

我尝试将我的 DISPLAY 环境值设置为各种值:

export DISPLAY=localhost:0.0
export DISPLAY=127.0.0.1:0.0
export DISPLAY=:0.0

我也尝试用不同的值替换上面示例中的 0.0。

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

systemctl isolate multi-user.target

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

   *-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 驱动程序:

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。 有什么想法?

【问题讨论】:

  • 您正试图从另一台计算机上启动 google chome,对吧?
  • 检查你是否有一个正在运行的xorg,它的端口是6000+n(n是显示号)
  • 我正在尝试在虚拟机上从我的计算机上使用 Chrome。需要明确的是,我不想要 X 转发 - 我想要 się 虚拟机上可用的 NVIDIA Tesla GPU。
  • 基本但必要的问题:你的虚拟机上是否有正在运行的 xorg ?

标签: ssh centos x11-forwarding


【解决方案1】:

你可以试试 Xvfb。它不需要额外的硬件。

如果您尚未安装 Xvfb,请安装它并执行以下步骤。

sudo apt-get install -y xvfb

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

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 显示的屏幕截图:

sudo apt-get -y install imagemagick x11-apps

确保每次启动 box/vm 时 Xvfb 都会启动:

Xvfb -ac :99 -screen 0 1280x1024x16 &
export DISPLAY=:99

运行谷歌浏览器

google-chrome

【讨论】:

  • 太棒了 - 这对我来说在带有 WSL 2.0 和 Ubuntu 的 Windows 上有效!你摇滚!
  • 解决了我无法在 WSL 2 Ubuntu 中使用 Karma 运行测试的问题。非常感谢。
【解决方案2】:

好的,伙计们。经过 2 个小时的疯狂,我发现了我的问题。我的盒子配置正确。你不能做的是从一个盒子 ssh 到另一个盒子,再到这个盒子,并期望 X11 转发能很好地发挥作用。在不拆开整个网络的情况下,我发现如果我从 MAIN 框转到这个框(没有双重或三重 ssh'ing),chrome 就会作为使用 CLI 的普通用户出现。所以这是一个来自多个盒子的多个炮弹的问题,导致显示器显示它被设置为NOTING!手动设置显示只会使问题复杂化。一旦我从主外框直接向这个框发射,我的显示设置为 10:0,这是我的配置中的第一个实例。不要犯这个错误,你会浪费宝贵的时间。

【讨论】:

    【解决方案3】:

    我在使用 WSL 和 Ubuntu 时遇到了同样的问题。我已经卸载/重置了 ubuntu。之后,我执行了以下命令

    wsl --set-default-version 2
    

    然后我再次安装了 Ubuntu,我没有收到 --no-sandbox 问题或任何问题。

    希望这对某人有用。

    【讨论】:

      【解决方案4】:

      FWIW,我在使用 SSH 登录到 Docker compose 堆栈中的 Selenium chrome 节点时遇到了这个问题。如果我以rootsudo -u seluser google-chrome 调用它,Chrome 会启动,但如果我以seluser 登录则不会。诀窍是rootDISPLAY 设置为:99:0,而seluser 根本没有设置它。如果我明确设置它(从seluser shell 或docker compose exec 命令行),它就可以工作。

      $ 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
      

      $ docker-compose exec -u seluser -e DISPLAY=:99:0 \
        selenium-chrome \
          google-chrome http://app.test:3000/home
      

      不过,:99.0 没有记录,所以如果这不起作用,您可以尝试检查 rootDISPLAY 值:

      docker-compose exec -u root selenium-chrome bash -c 'echo "${DISPLAY}"'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-31
        • 2020-02-09
        • 1970-01-01
        • 2022-01-11
        相关资源
        最近更新 更多