VNC Serverのインストール手順 †
OpenBlockS に VNC Server を入れる手順をメモ書きしたもの
目次 †
リンク †
VNC server (4.0) †
TrueType や GTK 等を使わないのであれば、VNC 3.3で十分なのだが、 何となく思い立って 4.0 にしてみた。 先に XFree86を入れておく必要がある。 buildに2.5時間程度かかるので注意。
cd ~/src/01distfiles mkdir vnc4 ; cd vnc4 wget ftp://ftp.jp.debian.org/debian/pool/main/v/vnc4/vnc4_4.0.orig.tar.gz wget ftp://ftp.jp.debian.org/debian/pool/main/v/vnc4/vnc4_4.0-5.diff.gz wget ftp://ftp.jp.debian.org/debian/pool/main/v/vnc4/vnc4_4.0-5.dsc cd ~/src tar xzvf 01distfiles/vnc4/vnc4_4.0.orig.tar.gz mv vnc4-4.0.orig vnc4-4.0-5 cd vnc4-4.0-5 zcat ~/src/01distfiles/vnc4/vnc4_4.0-5.diff.gz | patch -p1 ./configure --with-installed-zlib make chmod 755 debian/buildX.sh debian/buildX.sh mkdir -p ~/src/02localpkg/vnc4/usr/local/bin mkdir -p ~/src/02localpkg/vnc4/usr/local/man/man1 mkdir -p ~/src/02localpkg/vnc4/usr/local/vnc/classes ./vncinstall ~/src/02localpkg/vnc4/usr/local/bin cp -p java/* ~/src/02localpkg/vnc4/usr/local/vnc/classes cd ~/src/02localpkg/vnc4 tar czvf vnc4_4.0-5-ssdlinux-1.tgz --owner=root --group=wheel usr rm -rf usr sudo tar xzvpf vnc4_4.0-5-ssdlinux-1.tgz -C /
とりあえずうまく動いているようだ。 clipboardの転送は、vncconfig を立ち上げておかないと有効に ならないので注意。
http://minig:5801/ のようにアクセスすると、Xvncごと落ちて しまうようだ。この機能は使っていないので、原因を追究していない。
しばらく動かしていると、勝手に落ちてしまうようだ。 新しいファーム(HDDイメージ)の乗ったOpenBlockS266では、 問題ないようなので、gcc++かlibc++のバージョンの違いなのかもしれない。 古い環境では、VNC 3.3に戻した。
FontPathにモナーフォントを加えるため、以下を /etc/X11/XF86Config-4 として置いておくと FontPath を見てくれる。
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "/usr/X11R6/lib/X11/fonts/local/" EndSection
FontPathが、ちゃんと設定されているかどうかは xset q で分かる。
タイムアウト †
気が付くと、勝手にviewerと切断されていることがある。
/.vnc/minig\:1/log を見ると、以下のようなログが残っているので、 timeoutによる自動切断と思われるが、VNC 3.3や他のサーバーなどでは 勝手に切れることは無いようなので、誤ってタイムアウトが設定されている ようだが詳細は不明。
Connections: closed: 192.168.0.80::3391 (Idle timeout) SMsgWriter: framebuffer updates 27 SMsgWriter: copyRect rects 5, bytes 80 SMsgWriter: hextile rects 2, bytes 136284 SMsgWriter: ZRLE rects 166, bytes 4363 SMsgWriter: raw bytes equivalent 1616666, compression ratio 11.494493
接続時の時刻と切断時の時刻の差を見ると、1時間で切っているように思われる。 man Xvnc に書いてあるが、-IdleTimeout seconds オプションで指定するように なっていて、デフォルトが 3600秒(1時間)となっている。
結局以下の alias を使って Xvnc を立ち上げることにした。
alias vncsv='vncserver :1 -depth 16 -IdleTimeout 0'
xinetdによる起動 †
man Xvnc に書いてあるが、gdmを通してloginから接続できるようにする。
VNC server (3.3) †
vnc server が動けば、X Server (cygwin) が動かせないような非力な PC でも、複数のコンソールを使って操作できたり、コンパイルなどの時間のかかる処理中にPCを切ったりできる。当然ながら powerpc-ssdlinux のバイナリ・パッケージは用意されていないので、ソースからコンパイルを試みる。オリジナルのソースをそのままコンパイルすると、Xvnc の make World で、以下のようなエラーで止まった。
cd ./config/imake && make -f Makefile.proto all make[2]: Entering directory `/home/otsuka/src/vnc-3.3.7-unixsrc/Xvnc/config/imake' gcc -O -ansi -pedantic -I../../include -I../../exports/include/X11 (以後省略) gcc: cannot specify -o with -c or -S and multiple compilations make[2]: *** [imake.o] Error 1 make[2]: Leaving directory `/home/otsuka/src/vnc-3.3.7-unixsrc/Xvnc/config/imake' make[1]: *** [imake.bootstrap] Error 2 make[1]: Leaving directory `/home/otsuka/src/vnc-3.3.7-unixsrc/Xvnc' make: *** [World] Error 2
vnc-list(メーリングリスト)の検索で、同様の問題があるようだが、簡単な解決方法は無いようだ。
簡単な修正ではコンパイルが通りそうもないので、Red Hat の SRPM を取り寄せて調べてみたら、vnc 3.3.3r2 をベースに18ものパッチを当てて組み立てられていた。パッチを眺めてみたら、オリジナルのコードは、Intel 以外の環境ではコンパイルしたことが無いような様子。
PowerPC版がある、Debian のパッケージから vncserver 3.3.7-1 の patch を取り寄せてコンパイルしてみることにする。
$ mkdir ~/src/01distfiles/vnc $ cd ~/src/01distfiles/vnc $ wget http://www.realvnc.com/dist/vnc-3.3.7-unixsrc.tar.gz $ mkdir debian-package; cd debian-package $ wget http://ftp.debian.org/debian/pool/main/v/vnc/vnc_3.3.7-1.diff.gz $ cd ../../.. $ tar xzvf 01distfiles/vnc/vnc-3.3.7-unixsrc.tar.gz $ cd vnc-3.3.7-unixsrc $ zcat ../01distfiles/vnc/debian-package/vnc_3.3.7-1.diff.gz | patch -p1 $ ./configure --with-installed-zlib $ make $ cd Xvnc $ make World
コンパイルは成功するようだ。
# cd ~/src/vnc-3.3.7-unixsrc # ./vncinstall /usr/local/bin /usr/local/man # mkdir -p /usr/local/vnc/classes # cp classes/* /usr/local/vnc/classes # cd /usr/lib # ln -s ../X11R6/lib/X11 .
実行に先立って、パスワードを設定
$ vncpasswd $ cat <<EOF >.vnc/xstartup #!/bin/sh exec /usr/X11R6/bin/xterm -ls EOF $ vncserver -depth 16 -geometry 1280x1024 :1
あとは、Windows 等の vncviewer から 'ホスト名:1' に接続すればよい。
免責事項
ここに記載されている内容を実際に運用した場合のトラブルに関しては一切責任を負えませんのでご了承ください。
Copyright 2000-2011 Koichi Otsuka