Вопрос или проблема
Я использую 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 не может подключиться к дисплею. Основные причины могут включать в себя:
- Неверная настройка DISPLAY: Переменная окружения DISPLAY должна быть правильно настроена для указания на X-сервер, который вы используете.
- Проблемы с X-сервером: Убедитесь, что X-сервер (например, XMing) запущен и корректно настроен для приема входящих соединений.
- Настройки WSL: Различия между WSL1 и WSL2 могут влиять на работу графических приложений.
Шаги для решения проблемы
-
Проверьте версию WSL:
Убедитесь, что вы используете WSL1, так как поддержка графических приложений в WSL2 все еще экспериментальная. Для проверки версии выполните следующую команду в PowerShell:wsl -l -v
Если ваша версия Ubuntu указана как WSL2, вы можете перевести её обратно в WSL1 с помощью команды:
wsl --set-version Ubuntu 1
-
Запустите XMing:
Убедитесь, что XMing запущен перед тем, как вы попытаетесь запустить графические приложения. XMing должен быть конфигурирован для разрешения подключений без пароля. Если у вас уже установлен XMing, убедитесь, что вы используете параметр-listen on localhost
для включения нужных опций. -
Настройка 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
-
Проверка доступа X11:
Запустите командуxhost +
, чтобы разрешить доступ к X-серверу для всех пользователей. Однако, будьте осторожны с этой командой, так как она открывает доступ ко всем. В более безопасном подходе, вы можете разрешить доступ только вашему пользователю:xhost +local:
-
Проверка логов 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.