x11vnc намного медленнее, чем Xvnc +, как получить сеанс Xubuntu вручную

Я запускаю Xubuntu 12.04 на автономном сервере внутри виртуальной машины VMware. Я бы предпочел использовать x11vnc вместо Xvnc, чтобы использовать LightDM и X-сервер, запущенный LightDM (и входить в систему с использованием Xubuntu-сеанса, а не xfce4).

Проблема в том, что x11vnc намного медленнее, чем Xvnc (как vnc4server, так и tightvncserver ароматов). У меня низкоскоростное широкополосное соединение и, например, перетаскивание окон заметно медленнее на x11vnc, примерно в 3-4 раза медленнее.

Я использую 16 бит и 1280x800 для x11vnc и Xvnc, но я не уверен, что x11vnc фактически использует 16bpp (см. Журналы ниже).

x11vnc

Я запускаю x11vnc со стартовым скриптом в / etc / init / x11vnc:

start on login-session-start
script
x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 \
  -auth /var/run/lightdm/root/:0 -forever -shared -bg \
  -o /var/log/x11vnc.log -rfbport 5901 -localhost -nopw -xrandr
end script

По умолчанию он начинается в 800x600 с 32bpp, который нельзя изменить с помощью параметры командной строки. Мне пришлось сделать:

apt-get install xserver-xorg-video-dummy

, а затем создать /etc/X11/xorg.conf (который не существовал по умолчанию) с содержимым:

Section "Device"
    Identifier  "Configured Video Device"
    Driver      "dummy"
EndSection

Section "Monitor"
    Identifier  "Configured Monitor"
    HorizSync 31.5-48.5
    VertRefresh 50-70
EndSection

Section "Screen"
    Identifier  "Default Screen"
    Monitor     "Configured Monitor"
    Device      "Configured Video Device"
    DefaultDepth 16
    SubSection "Display"
    Depth 16
    Modes "1280x800"
    EndSubSection
EndSection

При подключении к нему , /var/log/x11vnc.log говорит:

30/11/2013 07:12:32 Pixel format for client 127.0.0.1:
30/11/2013 07:12:32   16 bpp, depth 16, little endian
30/11/2013 07:12:32   true colour: max r 31 g 63 b 31, shift r 11 g 5 b 0
30/11/2013 07:12:32 no translation needed

обратите внимание на часть true color .

Кроме того, при использовании 16bpp в x11vnc по-прежнему сохраняется прозрачность в нижней панели, тогда как при использовании «-depth 16» с Xvnc все прозрачные панели имеют сплошной цвет, а параметр «альфа» в конфигурации панели пропал. Это заставляет меня думать, что XFCE по-прежнему обнаруживает 32-битный дисплей при использовании x11vnc, что может быть причиной замедления.

Я также попробовал xserver-command=X -depth 16 в /etc/lightdm/lightdm.conf, но не сделал никакой разницы.

Xvnc

Я сделал:

apt-get install vnc4server
vncserver :1 -depth 16 -geometry 1280x800

Это начинает новый сеанс X, в зависимости от того, что у меня есть в ~/.vnc/startup, а именно:

#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
# x-window-manager &
startxfce4 &

По умолчанию каркас отсутствует. Перетаскивание окон показывает полное окно, а не только границу, и оно все еще заметно быстрее, чем x11vnc, который показывает только проводную рамку при перетаскивании окон! То же самое произойдет, если я заменю vnc4server на sharpvncserver.

Есть какие-нибудь подсказки о том, как сделать x11vnc таким же быстрым? Должно быть, оно каким-то образом способно!

Я перепробовал все варианты x11vnc (из всех thos -nox * -nowireframe и т. Д.) Безрезультатно.

В качестве альтернативы я мог бы остановить LightDM и запустить Xvnc с помощью ~ / .vnc / xstartup, чтобы он запускал тот же сеанс Xubuntu, что и с экрана входа в систему LilghtDM, а не сеанс XFCE4 ... но Я не знаю как Я заменил startxfce4 на /etc/X11/Xsession, но он не выглядит так же. Шрифты меньше и есть артефакты.

Любая помощь приветствуется!

5
задан 30 November 2013 в 11:47

1 ответ

Мне удалось ответить на альтернативную часть моего вопроса, то есть использовать vnc4server илиightvncserver, чтобы начать сеанс Xubuntu вместо обычного сеанса XFCE. Это отдельно от LightDM, которое затем можно остановить или поставить вручную. Я исследую предложения Николаса позже.

Это эквивалентно входу в систему через LightDM с сеансом Xubuntu, он остается активным, если мое соединение vnc умирает или я отключаюсь, и я получаю удовольствие от настроек Xubuntu.

Для этого в ~/.vnc/xstartup должно содержаться только следующее:

#!/bin/sh
export XDG_CONFIG_DIRS=/etc/xdg/xdg-xubuntu:/etc/xdg:/etc/xdg
export XDG_DATA_DIRS=/usr/share/xubuntu:/usr/local/share/:/usr/share/:/usr/share
vncconfig -iconic &
. lightdm-session

Вы можете заменить . lightdm-session на exec startxfce4 или startxfce4 &. Первый действительно то, что вызывает LightDM, но в конце он вызывает xfce4-сессию.

Это затем запускает сеанс Xubuntu, а не обычный сеанс XFCE, и вы можете полностью остановить LightDM, если доступ к X / клавиатуре не нужен.

Вы можете настроить демон, поместив в /etc/init/vncserver.conf следующее:

start on runlevel [2345]
stop on runlevel [016]
post-start script
        su USER -c "vncserver :1 -geometry 1280x800 -depth 16 -localhost -SecurityTypes None"
end script
post-stop script
        su USER -c "vncserver -kill :1"
end script

Затем запустите / остановите его нажатием start vncserver. Вышеприведенное относится к vnc4server и запускает прослушивание Xvnc только на 127.0.0.1 и не требует пароля. Это удобно для меня, так как я все равно использую ssh-туннель:

ssh -L6901:127.0.0.1:5901 USER@HOST.DOMAIN.COM

Если вы используетеightvncserver, то удалите опцию -SecurityTypes None , поскольку она этого не понимает. Обратите внимание, что silentvncserver всегда запрашивает пароль (вы не можете сделать его без пароля).

ПРИМЕЧАНИЕ: если вышеприведенный USER не является пользователем root или если вы запускаете «vncserver: 1 [options]» от имени пользователя, не являющегося root, то внутри XFCE возникнут проблемы с переходом в приложения GUI, поскольку лежащее в основе приложение sudo-ed не найдет отображение X Я еще не нашел решение этой проблемы. С x11vnc это работает, потому что x11vnc подключается к существующему сеансу X, включая: 0.

0
ответ дан 30 November 2013 в 11:47

Другие вопросы по тегам:

Похожие вопросы: