/mnt/wslg/.X11-unit/X0 Unix Domain Socket отсутствует в WSL Ubuntu на Windows 11

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

Имел X11 работающий на Windows 11 с WSL, затем, по причинам, которые не устранили, обнаружил, что X11 больше не дает рабочих результатов.

Пробовал:
C:\Users\Yevgeny S>wsl -e xcalc
и получил:
Ошибка: Невозможно открыть дисплей: :0

Согласно некоторым ресурсам W3, WSL на Windows 11 может работать без дополнительного X11-сервера.

Некоторые источники говорят, что должна быть символическая ссылка с именем /tmp/.X11-unix/X0, указывающая на /mnt/wslg/.X11-unix/X0, и Ubuntu на WSL, похоже, имеет ее, но целевой файл в /mnt/... отсутствует. Один из источников этого — на youtube “(Устранено) Ошибка WSLg: Невозможно открыть дисплей: :0 в Windows 11” от Sonoo’s KB.

Я довольно уверен, что один из этих наборов удалил устройство во время установки:

l_HPCKit_p_2023.1.0.46346_offline.sh

l_BaseKit_p_2024.2.1.100_offline.sh

l_AIKit_p_2023.1.0.31760_offline.sh <– скорее всего, этот

Расширения Intel для PyTorch имели длинные ветки помощи с ошибками на GitHub, и закрытые из них были с успешными установками на bare metal. Возможно, я хотел бы избавиться от этих установок.

Есть идеи, как вернуть /mnt/wslg/.X11-unix/X0? sudo apt-get reinstall xorg -y этого не сделало.

Пробовал починить это:

  1. Ожидал найти /mnt/wslg/.X11-unix/X0 в файловой системе.

  2. Ожидал, что переустановка xorg успешно восстановит функциональность X11.

  3. $ sudo python3 -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/mnt/wslg/.X11-unix/X0')" Traceback (most recent call last): File "<string>", line 1, in <module> OSError: [Errno 30] Файловая система только для чтения
    3.a Удалось немного создать доменный сокет, но это не восстановило функциональность X11.

  4. Пробовал переустановить дистрибутив, X11 работал несколько минут; затем сделал apt-get с кучей пакетов python3.11-*, X11 перестал работать. Хотя я обнаружил, что сокет X0 не так уж и важен.

Есть ли шаги, которые я могу предпринять, чтобы восстановить Unix Domain Socket по адресу /mnt/wslg/.X11-unix/X0 должным образом? Или что мне следует сделать, чтобы сохранить функциональность X11 стабильной?

Спасибо.

.

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

Восстановление Unix Domain Socket /mnt/wslg/.X11-unix/X0 в WSL Ubuntu на Windows 11

Введение

Проблема с отсутствием сокета Unix Domain Socket /mnt/wslg/.X11-unix/X0 в Среде Подсистемы Windows для Линукс (WSL) может вызвать ощибки при попытках запустить X11-приложения, такие как xcalc. В данном ответе мы рассмотрим причины этой проблемы и предложим несколько шагов для ее решения.

Причины проблемы

  1. Удаление сокета: Некоторые установленные программы или пакеты могли удалить или изменить структуру файловой системы WSL, что могло привести к исчезновению сокета. Вы упомянули, что установка пакетов Intel для PyTorch могла вызвать эту проблему.

  2. Проблемы с X11: WSL 2 имеет встроенное упрощенное решение для работы с графическими приложениями (WSLg). Если WSLg работает неправильно или отсутствует необходимый файл, это может помешать запуску X11-приложений.

Шаги по восстановлению

  1. Проверка WSLg: Убедитесь, что WSLg установлен и правильно работает. Для этого выполните следующую команду в Windows PowerShell или командной строке:

    wsl --status

    Убедитесь, что версия WSLg помечена как активная.

  2. Перезапуск WSL: Иногда может помочь перезапуск самого WSL. Для этого выполните команду:

    wsl --shutdown

    Затем запустите WSL снова.

  3. Обновление WSL: Убедитесь, что у вас установлены последние обновления для WSL. Вы можете обновить WSL с помощью:

    wsl --update
  4. Переустановка необходимых компонентов: Если перечисленные действия не помогли, попробуйте переустановить пакеты, связанные с графическими интерфейсами. Это можно сделать командой в терминале Ubuntu:

    sudo apt update && sudo apt install --reinstall xorg x11-apps
  5. Создание символической ссылки: В некоторых случаях может потребоваться вручную создать символическую ссылку, если она отсутствует. Это можно сделать следующей командой:

    sudo ln -s /mnt/wslg/.X11-unix/X0 /tmp/.X11-unix/X0
  6. Проверка настроек безопасности: Убедитесь, что файлы и каталоги имеют правильные права доступа. Вы можете выполнить следующую команду, чтобы установить необходимые права:

    sudo chmod 1777 /tmp/.X11-unix/
  7. Удаление конфликтных пакетов: Если проблема возникла после установки определенных пакетов, вы можете попытаться удалить или отключить их, чтобы проверить, не устраняет ли это проблему.

  8. Логи и отладка: Если вышеописанные решения не помогают, необходимо просмотреть логи системы для выявления возможных ошибок. Вы можете использовать команду:

    dmesg | grep -i "x11"

Заключение

Если ни одно из предложенных решений не дало результата, как временное решение вы можете рассмотреть возможность использования внешних X-серверов, таких как VcXsrv или Xming на Windows. Это позволит запускать приложения X11, которые зависят от отсутствующего сокета. Однако в долгосрочной перспективе важно установить стабильную работу встроенного решения WSLg.

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

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

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