Skip to main content

スポンサードリンク

Solaris10 (Sun Fire V100)へのTightVNCのインストール

Posted in

Sun Fire V100(画面なし)上のSolaris10 11/06にTightVNCサーバーをインストールしました。
クライアント側にvncビューアをインストールして使用すると、vncビューアを、あたかも、X端末であるかのように利用できます。
TightVNCは高圧縮モードが利用できるという特徴があり、狭帯域のアクセス回線で使用すると効果があります。
その効果については、RealVNCとTightVNCの64kbps回線での表示時間の比較の記事を参照してください。
以下、その手順について、説明します。
1.サーバー側
1.1.vncサーバーのインストール
1.1.1.概要

tightvncはsolaris10用のパッケージが無いようですので、ソースからコンパイルします。
コンパイラーはgccを利用することにします。gccは、OSインストール時に自動でインストールされたものを利用します。
# gcc -v
Reading specs from /usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/specs
Configured with: /gates/sfw10/builds/sfw10-gate/usr/src/cmd/gcc/gcc-3.4.3/configure --prefix=/usr/sfw --with-as=/usr/sfw/bin/gas --with-gnu-as --with-ld=/usr/ccs/bin/ld --without-gnu-ld --enable-languages=c,c++ --enable-shared
Thread model: posix
gcc version 3.4.3 (csl-sol210-3_4-branch+sol_rpath)

1.1.2.実行環境の準備

まず、実行環境の準備を行います。
makeコマンドでgmakeが呼ばれるように、シンボリックリンクを作成します。
# ln -s /usr/sfw/bin/gmake /usr/sfw/bin/make
/usr/sfw/libをダイナミックライブラリのPATHに追加します。
# crle -c /var/ld/ld.config -l /lib:/usr/lib:/usr/sfw/lib
PATHの設定を行います。
% PATH=/usr/openwin/bin:/usr/sfw/bin:$PATH
% export PATH

1.1.3.openwinのconfigファイルの修正

gccを使用するように、下記ファイルを修正します。
/usr/openwin/lib/X11/config/site.def
以下のコメントアウトをはずします。
37 #ifndef HasGcc2
38 #define HasGcc2 YES
39 #endif
43 #ifndef HasCplusplus
44 #define HasCplusplus YES
45 #endif

1.1.4.ソースファイルのコンパイルとインストール

ソースは、下記のtightvncのサイトからダウンロードします。
http://www.tightvnc.com/download.html
今回利用したバージョンは、tightvnc-1.2.9_unixsrc.tar.gzです。
 
% gtar zxf tightvnc-1.2.9_unixsrc.tar.gz
まず、Xvnc以外のコンパイルを行います。
% cd vnc_unixsrc
% xmkmf
imake -DUseInstalled -I/usr/openwin/lib/X11/config
% make World
次に、Xvncのコンパイルを行います。
まず、gccを使用するように、Xvnc/config/cf/sun.cfを編集します。
63 #define HasGcc2 YES
% cd Xvnc
% ./configure
% make
% cd ..
suになって、インストールスクリプトを実行します。インストール先を適宜指定してやります。
# ./vncinstall /usr/local/bin /usr/local/man

1.2.service設定

/etc/inet/servicesファイルに以下のサービス登録を追加します。行先頭のサービス名は、/etc/inetd.confファイルに追加する行先頭のサービス名に一致させます。
   tightvnc-1024x768x8       5960/tcp
   tightvnc-1024x768x24      5961/tcp

1.3.inetd設定

例えば、ファイル/etc/inet/inetd.tightvnc.confを、下記の内容で作成します。ここの例では、2つの解像度を登録しています。(下記は本来は2行です。)
tightvnc-1024x768x8 stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 8 -cc 3
tightvnc-1024x768x24 stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 24
SMFレポジトリに変換して格納します。
以下のコマンドを実行します。
# inetconv -i /etc/inet/inetd.tightvnc.conf

1.4.dt関係設定

以下の2つのファイルを/etc/dt/config/にコピーします。
/usr/dt/config/Xservers
/usr/dt/config/Xsetup
(1)/etc/dt/config/Xserversファイルを修正します。
Sun Fire V100のようなヘッドレス(画面なしということ)の場合、以下のように最終行を、先頭に#をつけてコメントアウトします。
(これをしないと、普通のX端末でログインするまで、vncビューアからのアクセスがすぐに切断されるという現象がでました。)
#   :0  Local local_uid@console root /usr/X11/bin/Xserver :0 -nobanner
(2)/etc/dt/config/Xsetupファイルを修正します。
以下を、ファイルの最後に追加します。
chmod o+w /tmp/.X11-unix

以上を行い、システムを再起動します。

2.クライアント側

TightVNCあるいはRealVNCのサイトから、VNCViewerをダウンロードしてインストールします。TightVNCの特徴である高圧縮率モードを使用する場合には、TightVNC提供のVNCViewer(Best Compressionモード)を使用します。
VNCViewerを起動すると、サーバーのアドレスとディスプレイ番号を入力する画面が表示されます。
「アドレス:ディスプレイ番号」の形式で指定します。その際、接続ポートは、5900+ディスプレイ番号となります。
例えば、「xx.xx.xx.xx:60」と指定すると、ポート5960にアクセスしますので、tightvnc-1024x768x8の解像度で起動することになります。
接続されると、デスクトップのログイン画面が表示されます。
実際のディスプレイ番号は、接続に指定した番号ではなく、1番から空いている番号がとられるようです。