web-dev-qa-db-ja.com

xvvncよりもはるかに遅いx11vnc + Xubuntuセッションを手動で取得する方法

VMware仮想マシン内のヘッドレスサーバーでXubuntu 12.04を実行しています。 LightDMとLightDMによって起動されたXサーバーを使用するために(およびxfce4ではなくXubuntu-sessionを使用してログインするため)、Xvncよりもx11vncを使用することをお勧めします。

問題は、x11vncXvncvnc4servertightvncserverの両方のフレーバー)よりもはるかに遅いことです。低速のブロードバンド接続を使用しています。 x11vncでは、ウィンドウのドラッグが目に見えて遅くなります。

X11vncとXvncの両方で16ビットと1280x800を強制していますが、x11vncが実際に16bppを使用していることはわかりません(以下のログを参照)。

x11vnc

/ etc/init/x11vncの起動スクリプトを使用して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

デフォルトでは、これは32bppの800x600で開始されますが、コマンドラインパラメーターでは変更できません。私がしなければなりませんでした:

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の部分に注意してください。

また、x11vncで16bppを使用すると、下部パネルに透明度が維持されますが、Xvncで「-depth 16」を使用すると、すべての透明パネルが無地になり、パネル構成の「アルファ」オプションがなくなります。これにより、x11vncを使用しているときにXFCEが32ビットディスプレイをまだ検出していると思うようになります。

xserver-command=X -depth 16/etc/lightdm/lightdm.confも試しましたが、違いはありませんでした。

Xvnc

やった:

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

~/.vnc/startupの内容に応じて、新しいXセッションが開始されます。

#!/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をtightvncserverに置き換えた場合も同様です。

何か手がかり x11vncを同じくらい速くする方法について?なんとかできるはずです!

X11vncに対するあらゆる種類のオプション(すべてのthos -nox * -nowireframeなどから)を試してみましたが、役に立ちませんでした。

別の方法、LightDMを停止してXvncを〜/ .vnc/xstartupで起動して、XFCE4セッションではなくLilghtDMログイン画面から実行するのと同じXubuntuセッションを開始することができます...方法がわからない。 startxfce4/etc/X11/Xsessionに置き換えましたが、見た目は同じではありません。フォントは小さく、アーティファクトがあります。

助けていただければ幸いです!

5
Normadize

私は私の質問のAlternative部分に答えることができました。つまり、vnc4serverまたはtightvncserverを使用して、プレーンXFCEセッションの代わりにXubuntuセッションを開始しました。これはLightDMとは別であり、LightDMは停止したり、手動で設定したりできます。後でニコラスの提案を調査します。

これは、XubuntuセッションでLightDM経由でログインするのと同じです。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-sessionexec startxfce4またはstartxfce4 &に置き換えることができます。前者はLightDMが実際に呼び出すものですが、最終的にはxfce4-sessionを呼び出します。

これにより、プレーンなXFCEセッションではなく、Xubuntuセッションが開始されます。X/キーボードアクセスが必要ない場合は、LightDMを完全に停止できます。

/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用で、12v7.0.0.1でのみXvncリスニングを開始し、パスワードは不要です。とにかくsshトンネルを使用するので、これは私にとって便利です。

ssh -L6901:127.0.0.1:5901 [email protected]

Tightvncserverを使用する場合は、オプション-SecurityTypes Noneを削除してください。理解できないためです。 tightvncserverは常にパスワードを要求します(パスワードなしにすることはできません)。

注:上記のUSERがrootでない場合、または「vncserver:1 [options]」を非rootとして実行する場合、XFCE内では、基になるSudoが原因でGUIアプリへのSudo-ingの問題が発生します-edアプリはXディスプレイを見つけられません。私はまだこれに対する修正を見つけていません。 x11vncでは、x11vncは:0を含む既存のXセッションに接続するため、機能します。

1
Normadize