
Я хотел бы иметь возможность войти в свою удаленную 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
клиентом - Видите два или более окон!!! Исходное уже перемещенное окно все еще там. "Артефакт старого положения" остается (но выглядит немного иначе, обратите внимание, что верхнее правое на самом деле представляет собой два перекрывающихся окна):
- Запустить
Так что каким-то образом история исходного положения окна сохраняется на сервере и переживает 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 прибудет и я его опробую.