Как запустить X.org и GNOME на WSL?

После того, что кажется годами тщетных попыток и поисков в Google, я наконец решил приехать сюда. Как новичок в Linux, я действительно ничего не знаю. Пройдя бесчисленное количество руководств, я смог решить все проблемы, кроме одной. (хотя потом, вероятно, будет еще много всего)

Я получаю эту ошибку startx:

      X.Org X Server 1.20.13
X Protocol Version 11, Revision 0
Build Operating System: linux Ubuntu
Current Operating System: Linux DESKTOP-2DV5IQB 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64
Kernel command line: initrd=\initrd.img panic=-1 pty.legacy_count=0 nr_cpus=8
Build Date: 14 December 2021  02:14:13PM
xorg-server 2:1.20.13-1ubuntu1~20.04.2 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.38.4
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Thu Apr 28 21:10:03 2022
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
xf86EnableIOPorts: failed to set IOPL for I/O (Function not implemented)
xf86EnableIOPorts: failed to set IOPL for I/O (Function not implemented)
(EE)
Fatal server error:
(EE) no screens found(EE)
(EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Couldn't get a file descriptor referring to the console

Когда я пытался бежать xinit:

      X.Org X Server 1.20.13
X Protocol Version 11, Revision 0
Build Operating System: linux Ubuntu
Current Operating System: Linux DESKTOP-2DV5IQB 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64
Kernel command line: initrd=\initrd.img panic=-1 pty.legacy_count=0 nr_cpus=8
Build Date: 14 December 2021  02:14:13PM
xorg-server 2:1.20.13-1ubuntu1~20.04.2 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.38.4
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Thu Apr 28 21:11:39 2022
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
xf86EnableIOPorts: failed to set IOPL for I/O (Function not implemented)
xf86EnableIOPorts: failed to set IOPL for I/O (Function not implemented)
(EE)
Fatal server error:
(EE) no screens found(EE)
(EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

Я действительно не знаю, что делать в этот момент. Все, что я хотел сделать, это следовать «простым» инструкциям на веб-сайте Ubuntu , чтобы установить GNOME!

Мой вопрос в основном заключается в том, правильно ли я делаю это? Если да, то почему я получаю эти ошибки и что я могу сделать, чтобы их исправить? Если нет, то как мне это сделать?

Я использую WSL, и мои многочисленные запросы привели меня к подозрению, что это может быть половиной проблемы. Я также, вероятно, очень ошибаюсь в этом.

Любая помощь будет оценена по достоинству!

1 ответ

Вы можете установить VcXsrv, чтобы запустить X-сервер в Windows. Я оставляю вам это руководство .

В WSL обновите систему, установите среду рабочего стола:

      sudo apt update
sudo apt upgrade
sudo apt install lxde

ГНОМ в вашем случае. Затем установите переменную среды DISPLAY, которая вам нужна, чтобы указать IP-адрес Windows WSL, как показано ниже:

      export DISPLAY=<address>:0

Замените соответствующим значением. Вы можете получить адрес, идущий в PowerShell и выполняющий ipconfig. Вы увидите его в разделе WSL (IPv4).

Здесь объясняется, почему вам может понадобиться установить LIBGL_ALWAYS_INDIRECT.

      export LIBGL_ALWAYS_INDIRECT=1

Когда вы запускаете XLaunch в Windows (предоставляется VcXsrv):

  1. Настройки дисплея: выберите «Одно большое окно».
  2. Номер дисплея: 0 (число рядом с IP-адресом, когда вы устанавливаете DISPLAY)
  3. Выберите способ запуска клиентов: выберите «Не запускать клиент».
  4. Дополнительные настройки: по умолчанию и «Отключить контроль доступа» (я не знаю, вызывает ли это какие-либо проблемы с безопасностью)

Затем в WSL вы можете использовать startxи запустите среду рабочего стола.

Когда я сделал это, я также установил x11-appsи беги xeyesчтобы проверить, работает ли он.

EDIT: вы можете попробовать настроить DISPLAY следующим образом, чтобы автоматически получить IP-адрес:

      export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
Другие вопросы по тегам