Ubuntu на Windows Powershell “Невозможно открыть дисплей”

Вопрос или проблема

Я использую Ubuntu 18.04 в Windows Powershell на Windows 10. Я установил XMing и PuTTY и настроил их так, чтобы проксирование X11 было включено. После всего этого и установки x11-apps, когда я запускаю xeyes, мне выдается сообщение “Ошибка: Невозможно открыть дисплей: 0.0”. Я пробовал изменить DISPLAY на 0 и ‘localhost:0.0, но ничего не помогло. Я установил несколько пакетов, многие из которых, вероятно, окажутся ненужными. Я попробовал практически все в ответах на оба этих вопроса:
X “Невозможно открыть дисплей: :0”, хотя переменная DISPLAY правильная
Могу ли я запустить графическую программу на рабочем столе другого пользователя от имени root?, но

who | awk -v user="$target_user" '$1 == user && $2 ~ "^:" {print $2}'

не возвращает ничего, а xhost + дает мне ту же ошибку дисплея. Я пробовал различные конфигурационные файлы, такие как xauth, /etc/X11/Xwrapper.config. Возможно, важно отметить, что xinit возвращает фатальную ошибку экраны не найдены, а /var/log/Xorg.0.log показывает множество ошибок

dbus-core: ошибка подключения к системной шине: org.freedesktop.DBus.Error.FileNotFound (Не удалось подключиться к сокету /var/run/dbus/system_bus_socket: Нет такого файла или директории)
открыть /dev/dri/card0: Нет такого файла или директории
открыть /dev/fb0: Нет такого файла или директории
Устройства не обнаружены.

Мне нужно использовать инструменты для работы с изображениями, такие как ds9, для моего исследования, и мне это не удалось, поэтому любая помощь была бы очень полезна.

Я смог решить эту проблему с помощью вышеуказанного комментария. Проблема заключалась в том, что я установил WSL2, но настраивал Ubuntu как WSL1. Я смог успешно запустить xeyes (и пройти все соответствующие дымовые тесты), когда вернулся к WSL1 и добавил

export DISPLAY=:0.0
export LIBGL_ALWAYS_INDIRECT=1

в ~/bash.rc

Ответ или решение

Проблема "Can’t open display" в Ubuntu на Windows PowerShell: Подробное руководство по решению

Если вы столкнулись с ошибкой "Can’t open display: 0.0" при попытке запустить графические приложения в Ubuntu, работающей в среде Windows PowerShell, то это может быть связано с рядом настроек, касающихся X11 forwarding и конфигурации WSL (Windows Subsystem for Linux). В этой статье мы подробно рассмотрим возможные причины этой ошибки и предоставим инструкции по их устранению.

Причиной возникновения ошибки

Ошибка "Can’t open display" указывает на то, что графическая оболочка X не может подключиться к дисплею. Основные причины могут включать в себя:

  1. Неверная настройка DISPLAY: Переменная окружения DISPLAY должна быть правильно настроена для указания на X-сервер, который вы используете.
  2. Проблемы с X-сервером: Убедитесь, что X-сервер (например, XMing) запущен и корректно настроен для приема входящих соединений.
  3. Настройки WSL: Различия между WSL1 и WSL2 могут влиять на работу графических приложений.

Шаги для решения проблемы

  1. Проверьте версию WSL:
    Убедитесь, что вы используете WSL1, так как поддержка графических приложений в WSL2 все еще экспериментальная. Для проверки версии выполните следующую команду в PowerShell:

    wsl -l -v

    Если ваша версия Ubuntu указана как WSL2, вы можете перевести её обратно в WSL1 с помощью команды:

    wsl --set-version Ubuntu 1
  2. Запустите XMing:
    Убедитесь, что XMing запущен перед тем, как вы попытаетесь запустить графические приложения. XMing должен быть конфигурирован для разрешения подключений без пароля. Если у вас уже установлен XMing, убедитесь, что вы используете параметр -listen on localhost для включения нужных опций.

  3. Настройка DISPLAY:
    Установите правильное значение для переменной среды DISPLAY. Выполните следующие команды в вашем терминале Ubuntu:

    export DISPLAY=:0.0
    export LIBGL_ALWAYS_INDIRECT=1

    Для автоматизации этих настроек добавьте их в файл ~/.bashrc:

    echo "export DISPLAY=:0.0" >> ~/.bashrc
    echo "export LIBGL_ALWAYS_INDIRECT=1" >> ~/.bashrc
    source ~/.bashrc
  4. Проверка доступа X11:
    Запустите команду xhost +, чтобы разрешить доступ к X-серверу для всех пользователей. Однако, будьте осторожны с этой командой, так как она открывает доступ ко всем. В более безопасном подходе, вы можете разрешить доступ только вашему пользователю:

    xhost +local:
  5. Проверка логов X-сервера:
    Если проблема сохраняется, обратитесь к логам X-сервера для выявления других ошибок. Файл логов обычно можно найти по пути /var/log/Xorg.0.log. Ищите строки, начинающиеся на (EE), которые указывают на ошибки.

Заключение

Решение проблемы с X11 forwarding в Ubuntu на Windows может потребовать нескольких шагов настройки. Как видно из приведенных выше инструкций, использование WSL1, корректная конфигурация DISPLAY и запуск X-сервера являются ключевыми элементами. Если после выполнения всех этих шагов проблема не исчезла, возможно, потребуется переустановка X-сервера или обратитесь к официальной документации WSL и XMing.

Надеемся, что эта статья поможет вам устранить ошибку "Can’t open display" и использовать графические приложения, такие как DS9, в вашей среде Ubuntu на Windows.

Оцените материал
Добавить комментарий

Капча загружается...