&color(red){*};[[xrdp>xrdp]]の方がもっと簡単・便利

仮想フレームバッファ Xvfb と x11vnc で織りなすディスクトップ環境

X環境は素晴らしい。だが、普段はinit3のテキストモードで、必要なときのみX11環境を使いたい。
操作する側(下図右側)にXサーバ(Xmingら)があれば、サーバ側(下図左側)はinit3でも構わない。
&ref(2013y03m01d_001440508.png,nolink);
だが、Xサーバを持たないPCでもサーバ側のXアプリケーションを使う場合、どうすれば。
ここは操作側がwindowsな場合を想定して、Xvfb と x11vnc で織りなすX11環境を考える。
&ref(2013y03m01d_002557373.png,nolink);

***つくる [#b8ac25ed]
CentOSはX/gnome環境もないminimalで構築してinit3/テキストモードにする。
x11nvcがepelかRPMforgeにある。fluxboxはCentOS5ならepel/RPMforgeどちらにもあるのだが、CentOS6だとepelにしかない。
なので、epelのリポジトリを追加します。
#code{{
yum -y install wget

***CentOS5 64bit
rpm -Uvh ftp://ftp.riken.jp/Linux/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm
rm epel-release-5-4.noarch.rpm
yum -y update epel-release

***CentOS6 64bit
rpm -Uvh ftp://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rm epel-release-6-8.noarch.rpm
yum -y update epel-release
}}
これでepelが使えるが、闇雲に使われても困るので、抑制を加えて、他の物もインストール
#code{{
vi /etc/yum.repos.d/epel.repo            *[epel]のenabled=0とする

yum --enablerepo=epel install x11vnc     *x11vncをインストール
yum --enablerepo=epel install fluxbox    *ウインドーマネージャ
yum install firefox xterm xmessage       *必要なアプリをインストール
yum install liberation-mono-fonts xorg-x11-font-utils xorg-x11-fonts-misc
}}
と環境を整える。

***つかう [#wfaac176]
一般ユーザでも構わなく
#code{{
x11vnc -storepasswd                 *vncのパスワード設定
export DISPLAY=:1.0                 *意味「:ディスプレイ番号.スクリーン番号」

Xvfb :1 -screen 0 1024x768x24 &     *ディスプレイ番号1のスクリーン番号1な仮想フレームバッファを用意

fluxbox --display :1 &              *ディスプレイ番号1のfluxboxを起動
                                    *重要:--displayです。ハイフン(-)が2個入ります

x11vnc -display :1 -rfbauth /home/foo/.vnc/passwd -rfbport 5901
                                    *ディスプレイ番号1を5901でvncで開示。ただしfooのパスワードを要求
***パスワードなしなら
x11vnc -display :1 -nopw -rfbport 5901
}}
として次に、vncクライアントのあるwindowsマシンからでも このマシンに向けてポート番号5901にて接続
&ref(2013y03m01d_003546605.png,nolink);
OKボタンを押すとパスワードが求められますが、これはvncで作ったパスワードです。
&ref(2013y03m01d_003710367.png,nolink);
認証に成功すると、画面が立ち上がる。ここでは fluxbox ウインドーマネージャによるディスクトップ環境が使える
&ref(2013y03m01d_004041615.png,nolink);


これでinit3(テキストモード)ながら、リモート環境でX11が使えるようになった。

***GNOMEで使いたい [#fa73c56c]
いままでと同じディスクトップ環境、GENOMEを使いたいのなら、
#code{{
[foo@c8 ~]$ Xvfb :1 -screen 0 1024x768x24 &
[foo@c8 ~]$ DISPLAY=:1 dbus-launch gnome-session &
[foo@c8 ~]$ x11vnc -display :1 -nopw -rfbport 5901
}}
とするとXの画面がvncで表示される
&ref(2013y06m25d_225338163.png,nolink);
終了の際は、このvncを閉じるとx11vncも落ちてしまうので注意が必要。
あと、vncのX画面でログアウトして画面を閉じると一応gnome-session関連も同時に落ちてくれるが、全ては落ちない。。。
永続的に残っているプログラムもある。それをほっといて、再度

DISPLAY=:1 dbus-launch gnome-session &

を行い

x11vnc -display :1 -nopw -rfbport 5901

をしても正常には動作するので構わないかも。
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS