Вопрос или проблема
Я использую ноутбук и HTPC с Kubuntu Oracular 24.10. Ранее они работали на более старых версиях под X11, теперь я перешел на Wayland с новой версией.
Моя проблема: на протяжении многих лет я использовал ноутбук в качестве дистанционного управления для запуска видео на большом телевизионном экране под X11 на HTPC.
Обычно это выглядело так:
<local> $ ssh remote.lan
<remote> $ DISPLAY=:0 mpv /location/of/video/file
...
К сожалению, в Wayland нет DISPLAY=:0.
Когда я пытаюсь запустить mpv /location/of/video/file
через ssh, я получаю только ошибку:
vd: Используется аппаратное декодирование (nvdec-copy).
cplayer: AO: [pipewire] 44100Hz стерео 2ch floatp
cplayer: VO: [gpu-next] 1280x720 nv12
vo/gpu-next/libplacebo: vk->CreateSwapchainKHR(...): VK_ERROR_UNKNOWN (../src/vulkan/swapchain.c:620)
vo/gpu-next/libplacebo: Не удалось (пере)создать swapchain!
cplayer: Не удалось инициализировать видеопоток.
cplayer: Видео: нет видео
и плеер просто воспроизводит аудио из файла.
(Возможно) релевантные части из mpv.conf
:
###### Vulkan Linux, Windows (предпочтительно)
gpu-api=vulkan
...
hwdec=nvdec-copy # включить аппаратное декодирование, по умолчанию 'no'
vo=gpu-next # GPU-Next: https://github.com/mpv-player/mpv/wiki/GPU-Next-vs-GPU
...
Как я могу восстановить старое поведение X11 под Wayland?
Я хочу удаленно управлять через ssh программой на удаленном ПК, которая имеет выход AV на удаленной стороне, так что что-то вроде waypipe
здесь не подходит.
И я не хочу возвращаться к X11, когда все переходят на Wayland.
Ответ или решение
Управление программами на Wayland из удаленной сессии SSH может быть непростой задачей, особенно если вы привыкли к удобству переменной окружения DISPLAY=:0
в X11. В то время как Wayland меняет парадигму работы с графическими приложениями, существуют способы взаимодействия с удаленными приложениями без необходимости возвращаться к X11.
Шаги для управления программами Wayland через SSH
-
Использование
WAYLAND_DISPLAY
:
В отличие от X11, Wayland использует концепциюWAYLAND_DISPLAY
. Однако, просто выставление этой переменной окружения на удаленной системе не всегда может решить проблему. Прямое использование программ, таких какmpv
, с переменнойWAYLAND_DISPLAY
не всегда будет работать, так как приложения, работающие на Wayland, могут требовать прямого доступа к средствам вывода на экран, так как они работают через системные протоколы. -
Настройка доступа через
Wayland
:
Во-первых, необходимо убедиться, что ваша сессия Wayland настроена для работы с запрашиваемыми пользователями. Например, можно рассмотреть применение утилитweston
илиsway
для создания сессий, которые позволяют более гибко управлять доступом. -
Использование
socat
илиwayland-open
:
Рассмотрите возможность использования инструментов, таких какsocat
илиwayland-open
, которые могут перенаправлять вывод приложений. Эти утилиты могут помочь вам настроить соединение, которое позволяет запустить программу на удаленной машине с помощью SSH, переадресовав вывод на ваш локальный компьютер. -
Настройка PipeWire или VLC:
Если вам нужно воспроизвести видео, можно попробовать использоватьPipeWire
. Установите на обеих машинахPipeWire
, и настройтеmpv
на использование этого сервиса. Параметры конфигурации для работы сPipeWire
могут включать использование определенных выводов, которые, возможно, помогут воспроизводить видео на выходе устройства. -
Версия mpv:
Убедитесь, что у вас установлена последняя версияmpv
, поддерживающая работу с Wayland. Возможно, ваш текущий конфиг модуля вывода (по умолчанию использующий Vulkan) не подходит для вашей конкретной ситуации и может быть несовместимым с вашимWayland
сервером.
Пример использования SSH с Wayland
При установке необходимых компонентов и выполнении настроек, попробуйте следующий пример для запуска mpv
:
ssh remote.lan "WAYLAND_DISPLAY=wayland-0 mpv /location/of/video/file"
Обратите внимание, что wayland-0
— это пример имени сеанса, вам нужно будет проверить корректное значение на удаленном компьютере.
Заключение
Хотя управление программами на Wayland через SSH значительно отличается от работы с X11, возможны различные решения для настройки. Важно следить за обновлениями используемых вами приложений и поддерживать ваши системы на актуальной версии, чтобы минимизировать проблемы совместимости.
Также рекомендуется вести активное участие в сообществах пользователей Wayland для обмена опытом и поиска новых инструментов, которые могут облегчить вашу работу в будущем.