Я запускаю 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 со стартовым скриптом в / 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
, но не сделал никакой разницы.
Я сделал:
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
, но он не выглядит так же. Шрифты меньше и есть артефакты.
Любая помощь приветствуется!
Мне удалось ответить на альтернативную часть моего вопроса, то есть использовать 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.