Как запустить 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):
- Настройки дисплея: выберите «Одно большое окно».
- Номер дисплея: 0 (число рядом с IP-адресом, когда вы устанавливаете DISPLAY)
- Выберите способ запуска клиентов: выберите «Не запускать клиент».
- Дополнительные настройки: по умолчанию и «Отключить контроль доступа» (я не знаю, вызывает ли это какие-либо проблемы с безопасностью)
Затем в WSL вы можете использовать
startx
и запустите среду рабочего стола.
Когда я сделал это, я также установил
x11-apps
и беги
xeyes
чтобы проверить, работает ли он.
EDIT: вы можете попробовать настроить DISPLAY следующим образом, чтобы автоматически получить IP-адрес:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0