Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

could not connect to X Display: 0 #886

Closed
zkytony opened this issue Sep 10, 2021 · 1 comment
Closed

could not connect to X Display: 0 #886

zkytony opened this issue Sep 10, 2021 · 1 comment

Comments

@zkytony
Copy link

zkytony commented Sep 10, 2021

I am running ai2thor on a Ubuntu 18.04 server. I tried starting an x server with the following command:

sudo Xorg -noreset +extension GLX +extension RANDR +extension RENDER -config xorg_conf :0

and the content of xorg_conf is:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BusID          "PCI:0:30:0"
EndSection


Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    DefaultDepth    24
    Option         "AllowEmptyInitialConfiguration" "True"
    SubSection     "Display"
        Depth       24
        Virtual 1024 768
    EndSubSection
EndSection


Section "ServerLayout"
    Identifier     "Layout0"
    Screen 0 "Screen0" 0 0
EndSection

The Xorg command fails and says Cannot establish any listening sockets - Make sure an X server isn't already running(EE)

I checked and it looks like there is an Xorg server running

$ ps -C Xorg
  PID TTY          TIME CMD
 2127 tty1     00:10:28 Xorg
 3301 tty2     00:09:24 Xorg

However, when I try to launch a controller, I get:

/.../python3.8/site-packages/ai2thor/platform.py:154: Us
erWarning: could not connect to X Display: 0, Can't connect to display ":0": b'No protocol spe
cified\n'
  warnings.warn(
/.../python3.8/site-packages/ai2thor/platform.py:154: Us
erWarning: could not connect to X Display: 2, Can't connect to display ":2": [Errno 111] Conne
ction refused
  warnings.warn(
/.../python3.8/site-packages/ai2thor/platform.py:154: Us
erWarning: could not connect to X Display: 3, Can't connect to display ":3": [Errno 111] Conne
ction refused

And the program hangs.

Attempt

I attempted to start another Xorg server at :2. And then set x_display to be :2 as the argument to start the controller. However, this time I get:

Traceback (most recent call last):
...
.../controller.py", line 45, in launch_controller
    controller = Controller(
  File "/...python3.8/site-packages/ai2thor/controller.
py", line 465, in __init__
    self._build = self.find_build(local_build, commit_id, branch)   
  File "/.../python3.8/site-packages/ai2thor/controller.
py", line 1130, in find_build
    if build.platform.is_valid(request):
  File "/.../python3.8/site-packages/ai2thor/platform.py", line 32, in is_valid
    return len(cls.validate(request)) == 0
  File "/.../python3.8/site-packages/ai2thor/platform.py", line 165, in validate
    return cls._validate_screen(
  File "/.../python3.8/site-packages/ai2thor/platform.py", line 118, in _validate_screen
    disp_screen["width_in_pixels"],
TypeError: 'Display' object is not subscriptable

I have no clue how to resolve this. I have gotten this to work on a different machine with the Xorg command at the top. Help is appreciated.

@zkytony
Copy link
Author

zkytony commented Sep 10, 2021

This is resolved!

First I found the right way to generate the xorg config file (reference):

$ nvidia-xconfig

It will complain if you have not had an Xorg config file under /etc/X11/xorg.conf.

Then edit /etc/X11/xorg.conf and add the line:

Virtual 1024 768

in the Section "Screen" block. Then run

sudo Xorg -noreset +extension GLX +extension RANDR +extension RENDER -config /etc/X11/xorg.conf :0

Either :0, :1 or :2 should work (because ai2thor checks for that).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant