Почему x11vnc и x0vncserver дают одинаковые сбои в Gnome Ubuntu 22.04?

Почему x11vnc и x0vncserver дают одинаковые сбои в Gnome Ubuntu 22.04?

Я хотел бы иметь возможность войти в свою удаленную Ubuntu 22.04 и увидеть рабочий столкак показано на этой машине. (Я знаю, как создать vncserverс отдельным экземпляром рабочего стола). У меня отдельные проблемы со встроенным удаленным рабочим столом, поэтому это конкретно про x11vncи x0vncserver.

У меня они прекрасно работали много лет на 18.04 под Xfce.

Теперь, 22.04, они дают сбой похожим образом, поэтому я подозреваю, что это действительно проблема Gnome или Xorg (или - Compiz вообще существует?). Это подозрение усиливается тем фактом, что он отлично работает с использованиемgnome-session-flashback.

Я перепробовал много вариантов и для , и x11vncдля x0vncserver, но проблема осталась.

Короткая версия: Когда я перемещаю окно, я вижу и исходное окно в его исходном положении, и окно в новом положении. И, возможно, одно или два окна на пути, по которому было перемещено окно. Например, здесь я начал с одного терминала:

оригинальное единое окно

Затем я переместил окно:

Перемещенное окно

Только нижний правый является интерактивным...

Теперь фокус... Если я остановлю и клиента, и vnc-сервер, и запущу другой клиент и vnc-серверы, артефакты перемещения останутся. Вот рецепт воспроизведения (здесь «клиент» — это машина Debian, на которой запущен vnc-клиент, «сервер» — это машина Ubuntu 22.04, на которой запущен vnc-сервер):

  • Начните с недавно перезагруженного сервера.
  • Подключитесь в первый раз
    • Запустить x11vnc -usepw -display :0 -forever -rfbport 5901на сервере
    • Свяжитесь с Remmina от клиента
    • В клиенте VNC:
      • Смотрите одно окно (первый скриншот выше)
      • Переместить окно
      • Видно два или более окон (второй скриншот выше)
    • Убить клиента Remmina
    • Убить x11vncпроцесс сервера
  • Подключиться второй раз
    • Запустить x0vncserver -rfbport=5901 -PasswordFile=/home/peter/.vnc/passwd -display=:0 -fgна сервере
    • Свяжитесь с xtigervncviewerклиентом
    • Видите два или более окон!!! Исходное уже перемещенное окно все еще там. "Артефакт старого положения" остается (но выглядит немного иначе, обратите внимание, что верхнее правое на самом деле представляет собой два перекрывающихся окна):

второе vnc-соединение

Так что каким-то образом история исходного положения окна сохраняется на сервере и переживает x11vnc/ x0vncserverперезапуск. Что наводит меня на мысль, что это действительно проблема Gnome/Xorg/Compiz.

Редактировать:Дополнительные точки данных

  • Я попробовал установить gnome-session-flashbackи при использовании сеанса флэшбэка x11vncработает так, как я и ожидал. Но я на самом деле не хочу, чтобы он работал gnome-session-flashbackвечно. Я ожидаю (но не проверял), что, например, XFCE тоже будет работать нормально.

  • Я использую amdgpuдрайвер с открытым исходным кодом для моей Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon RX 550 640SP / RX 560/560X] [1002:67ff] (rev ff)графической карты. Я пробовал устанавливать и использовать фирменные драйверы AMD, но это не дало результата.

  • Он также отлично работает в виртуальной машине VirtualBox, которая, очевидно, не использует графические драйверы AMD.

Кто-нибудь видел что-то подобное раньше? И знает, как это исправить?

решение1

Оказывается, это потому, что я использую переключатель KVM. У меня запущен один рабочий стол x11vncи другой (ноутбук) с клиентом VNC. Каждый раз, когда я использовал ноутбук, я переключал переключатель KVM, чтобы показать ноутбук,который отключает монитор от работающей машиныx11vnc.

Если я оставляю переключатель KVM на x11vnc1машине и использую экран ноутбука для запуска клиента VNC, все в порядке. Как только я отключаю переключатель KVM от сервера x11vnc, проблема появляется.

Я подал:LibVNC/x11vnc#234: «x11vnc имеет артефакты отображения и работает медленно, если монитор отключен или используется с переключателем KVM». для этого.

И я планирую обойти эту проблему с помощью эмулятора EDID. Я заказалВот этот. Надеюсь, это позволит компьютеру думать, что дисплей все еще подключен. И затем в следующий раз, когда я обновлю KVM-переключатель, куплю его со встроенным эмулятором EDID. Я постараюсь не забыть обновить эту ветку, когда эмулятор EDID прибудет и я его опробую.

Связанный контент