Skip to content

ImportError: undefined symbol: eglGetCurrentDisplay when running habitat-sim 0.1.7 on a system with a modern NVIDIA driver. #2586

@F2974

Description

@F2974

I encountered this problem when running my code. Could you please give me some suggestions, or could you tell me how your habitat-sim environment is set up?

  1. Because I tried using the conda command conda install -c aihabitat -c conda-forge habitat-sim=0.1.7 headless, it prompted DISPLAY not detected. Afterward, I used a method I found to download the package habitat-sim-0.1.7-py3.8_headless_bullet_linux_856d4b08c1a2632626bf0d205bf46471a99502b7.tar.bz2 from the official channel. After installing this package, the DISPLAY not detected problem was solved, but it introduced a new problem: cannot retrieve OpenGL version.

  2. Afterward, I tried to change the links in the conda environment as follows:

    # Link libGL to the system's generic entry point
    ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 .
    
    # Directly link libEGL to the NVIDIA implementation
    ln -s /usr/lib/x86_64-linux-gnu/libEGL_nvidia.so.0 ./libEGL.so.1
    
    # Directly link libGLX to the NVIDIA implementation
    ln -s /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.0 ./libGLX.so.0
  3. Afterward, it produced the eglGetCurrentDisplay error. The specific error is as follows:

    (opennav_DCvln) vgg-a@vgg-a:/data4/fqs/Open-Nav$ bash run_OpenNav.bash
    Traceback (most recent call last):
      File "run.py", line 8, in <module>
        import habitat_extensions  # noqa: F401
      File "/data4/fqs/Open-Nav/habitat_extensions/__init__.py", line 1, in <module>
        from habitat_extensions import measures, obs_transformers, sensors, nav
      File "/data4/fqs/Open-Nav/habitat_extensions/measures.py", line 13, in <module>
        from habitat.tasks.nav.nav import DistanceToGoal, Success
      File "/data4/fqs/habitat-lab/habitat/tasks/nav/nav.py", line 33, in <module>
        from habitat.sims.habitat_simulator.actions import HabitatSimActions
      File "/data4/fqs/habitat-lab/habitat/sims/habitat_simulator/actions.py", line 12, in <module>
        import habitat_sim
      File "/home/vgg-a/miniconda3/envs/opennav_DCvln/lib/python3.8/site-packages/habitat_sim/__init__.py", line 13, in <module>
        from habitat_sim import (  # noqa: F401
      File "/home/vgg-a/miniconda3/envs/opennav_DCvln/lib/python3.8/site-packages/habitat_sim/agent/__init__.py", line 9, in <module>
        from .agent import * # noqa: F401,F403
      File "/home/vgg-a/miniconda3/envs/opennav_DCvln/lib/python3.8/site-packages/habitat_sim/agent/agent.py", line 10, in <module>
        import magnum as mn
      File "/home/vgg-a/miniconda3/envs/opennav_DCvln/lib/python3.8/site-packages/magnum/__init__.py", line 28, in <module>
        from _magnum import *
    ImportError: /home/vgg-a/miniconda3/envs/opennav_DCvln/lib/python3.8/site-packages/_magnum.cpython-38-x86_64-linux-gnu.so: undefined symbol: eglGetCurrentDisplay
    

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions