Вопрос или проблема
Я прохожуTutorial по адресу: https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-11-with-gui-support#5-install-and-use-a-gui-package
После установки приложений X11 я пытаюсь следовать уроку и открыть xeyes
:
xeyes &
Я получаю следующий ответ:
Ошибка: Не удается открыть дисплей
У меня была такая же проблема. Что я сделал:
- закрыл терминал
- открыл новый терминал
- выполнил
wsl --update
- перезапустил ubuntu
ubuntu
- выполнил
xeyes &
Это решило мою проблему.
Откройте C:\Users\<username>\.wslconfig
Найдите строку: guiApplications=false
и измените её на guiApplications=true
.
Если вы не можете найти строку, добавьте её в файл.
Перезагрузите компьютер (или просто выполните wsl --shutdown
, затем wsl
, как предложил @bkakilli).
У меня была такая же проблема вчера. Что исправило её сегодня:
- Обновление WSL до WSL2 (https://www.scaler.com/topics/linux-terminal-for-windows/)
- Установка Xming для Windows (https://sourceforge.net/projects/xming/)
После шагов 1 и 2 я всё равно получил ошибку “Не удается открыть дисплей”
- Раздел 4.2 следующей статьи объясняет, как установить переменные окружения (https://datacadamia.com/ssh/x11/display)
После подтверждения оболочки (bash в моем случае), установка переменной DISPLAY с помощью следующей команды позволила мне отображать команды X11 (например, xclock и т. д.) в Xming:
$ export DISPLAY=localhost:0.0
У меня была такая же проблема сегодня с Ubuntu 22.04, jammy. Чтобы исправить, я выполнил следующие шаги (хотя не уверен, что все они необходимы)
-> Проверил и установил xhost+
$ xhost +
-> Проверил и установил x11vnc
$ sudo dnf install x11vnc
$ sudo ufw allow 5900/tcp
$ sudo firewall-cmd --add-service=vnc-server
-> Установил порт дисплея с помощью скрипта
$ export DISPLAY=:0
Я использовал эти ссылки для справки
https://linuxconfig.org/how-to-share-your-desktop-in-linux-using-x11vnc
https://linuxconfig.org/fixing-the-cannot-open-display-error-on-linux
если вы используете процессор серии F с ядром i (core i5-9400F), вам необходимо установить GPU (версия Ubuntu должна быть 20.04 или новее)
см.: https://ubuntu.com/tutorials/enabling-gpu-acceleration-on-ubuntu-on-wsl2-with-the-nvidia-cuda-platform#1-overview
У меня это не работало при установке, которую я сделал через Магазин Windows. Я несколько раз пытался выполнять wsl --update
, модифицировал .wslconfig
, обновлял Windows …
Что в конце концов помогло, так это новая установка Ubuntu из PowerShell с использованием wsl --install -d Ubuntu-24.04
!!!
Ответ или решение
WSL: Ошибка "Can’t open display" при использовании GUI приложений
Если вы столкнулись с ошибкой "Can’t open display" при попытке запустить GUI приложение, такое как xeyes, в Windows Subsystem for Linux (WSL), это может быть связано с несколькими причинами. Данная статья поможет вам разобраться в проблеме и предложит возможные решения.
Причины возникновения ошибки
- Настройки WSL: Параметры конфигурации могут быть установлены некорректно.
- Отсутствие X серверов: Для запуска GUI приложений требуется наличие X сервера, такого как Xming или VcXsrv, на вашем компьютере.
- Переменные окружения: Не все необходимые переменные окружения могут быть настроены, что ведет к ошибке.
Решения проблемы
Вот несколько шагов, которые помогут вам устранить ошибку "Can’t open display":
1. Проверьте наличие X сервера
Убедитесь, что у вас установлен и запущен X сервер (например, Xming или VcXsrv). Если вы еще не установили ни один из них, скачайте и установите:
- Xming: Скачать Xming
- VcXsrv: Скачать VcXsrv
Запустите X сервер перед тем, как вызывать GUI приложение из WSL.
2. Настройка переменной DISPLAY
В WSL вам необходимо установить переменную окружения DISPLAY. Выполните следующие команды в терминале WSL:
export DISPLAY=localhost:0.0
Эта команда указывает на то, что GUI приложения должны отображаться на локальном X сервере. Если вы используете WSL2, попробуйте также следующие варианты:
export DISPLAY=$(ip route | awk '/default/ { print $3 }'):0.0
Этот код получает IP-адрес вашей WSL инсталляции и устанавливает его в качестве значения для DISPLAY.
3. Измените настройки в .wslconfig
Убедитесь, что файл конфигурации WSL (C:\Users\<ваше_имя>\.wslconfig
) настроен правильно. Добавьте или измените строку:
guiApplications=true
После внесения изменений перезапустите WSL с помощью команд:
wsl --shutdown
wsl
4. Обновите WSL
В некоторых случаях, проблема может быть связана с устаревшей версией WSL. Обновите WSL, используя команду:
wsl --update
Затем перезапустите вашу дистрибуцию Ubuntu и повторите попытку запуска вашего GUI приложения.
5. Установка дополнительных пакетов
В некоторых случаях требуются дополнительные пакеты. Убедитесь, что вы установили x11-apps
:
sudo apt update
sudo apt install x11-apps
После этого попробуйте снова запустить xeyes
:
xeyes &
Заключение
Ошибки отображения GUI приложений в WSL могут быть вызваны разными факторами, включая неправильные настройки, отсутствие X сервера и некорректные переменные окружения. Следуя предложенным шагам, вы сможете решить проблему "Can’t open display" и успешно запускать ваши GUI приложения в среде WSL. Если ни одно из решений не помогло, рассмотреть возможность переустановки WSL или дистрибутива Ubuntu, как это сделали некоторые пользователи.
Этот путь поможет вам быстро решить проблему и оценить все преимущества, которые предоставляет WSL для разработки и использования Linux-приложений в Windows.