部屋を掃除したら漫画が沢山出てきたので書く日記

漫画とか合唱とかUNIXとかLinuxとかについて書く日記です。

Solaris 10 8/07でVNCを使ってみよう その4

Solaris 10 8/07でVNCを使ってみよう その1
Solaris 10 8/07でVNCを使ってみよう その2
Solaris 10 8/07でVNCを使ってみよう その3


の続きです。

その3で課題となっていた

  • デスクトップがディスプレイ接続時と微妙に違う(IMEウィンドウが起動していなかったり、Sun Update Managerが見えなかったりします。iiimdの起動オプションが何か違うような気がするので要調査かと)

が解決しました。あの後ネットを調べていたらまさにこの件を解決できる方法が書いてある素晴らしいサイトがありました。

こちらです
http://sunsabc.its-abc.net/modules/xfsection/article.php?articleid=18

こちらに記述してある手順を実施したところ、VNC経由でログイン画面にアクセスでき、ログアウトするとVNCアクセスが切断される、というような挙動になり、かつ画面もディスプレイ接続時と同じ環境にすることが出来ました。

大体同じですが以下が実施した手順です。

1.Companion CDからVNCをインストール

Solaris 10 8/07でVNCを使ってみよう その2で書いている手順と同じですので割愛します。


2.inetd関連設定
この手順ではinetdからXvncを実行する事でvncサーバを起動しますので、inetdから操作するための設定が必要です。

まず、/etc/inet/servicesを以下の通り編集します。

bata64% su -
# cd /etc/inet
# vi services

最終行に以下を追記

#for VNC
vnc-1024x768x8  5950/tcp
vnc-1024x768x24 5951/tcp

次に/etc/inetd.confを以下の通り編集します。

# cd /etc/
# vi inetd.conf

最終行に以下を追記(一行が長いので\で改行をエスケープしています。)

#for VNC
vnc-1024x768x8 stream tcp nowait nobody /opt/sfw/bin/Xvnc \
Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 8 -cc 3
vnc-1024x768x24 stream tcp nowait nobody /opt/sfw/bin/Xvnc \
Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 24

編集後、これらの設定をSMF(solaris10から導入されたサービス管理機構)にて制御するために、変換を行います。

# inetconv
inetconv: 注意: 100235/1 のサービスマニフェストはすでに \
/var/svc/manifest/network/rpc/100235_1-rpc_ticotsord.xml として生成されています。スキップします
vnc-1024x768x8 -> /var/svc/manifest/network/vnc-1024x768x8-tcp.xml
vnc-1024x768x8-tcp.xml をインポートしています ...完了
vnc-1024x768x24 -> /var/svc/manifest/network/vnc-1024x768x24-tcp.xml
vnc-1024x768x24-tcp.xml をインポートしています ...完了

3.dt関連設定
次にdt関連の設定(/etc/dt以下の設定ファイル設定)を行います。
書いていて「dtって何?」と思ってしまったので調べてみたところ、
このsunのサイトによると、
http://docs.sun.com/app/docs/doc/805-0022/6j03fopdf?l=it&a=view

/etc/dt

このディレクトリには、カスタマイズされた、ワークステーション固有の構成ファイルが入っています。これらのファイルを使用して、次のようにユーザの環境をカスタマイズできます。

    *      X サーバ構成オプションの設定
    *      複数画面の使用
    *      ワークステーションのアクション・ファイル、データ・タイプ、アイコン、フォントのカスタマイズ

との事です。

まず、/etc/dt/config/を作成して関連ファイルをコピーします。

# mkdir -p /etc/dt/config/
# cd /etc/dt/config/
# cp /usr/dt/config/Xservers ./
# cp /usr/dt/config/Xsetup ./

次に/etc/dt/config/Xserversの修正を行います。EQUIUM5060では必要ありませんでしたが、参考元サイトによるとディスプレイの無いサーバ(Sun Fire V100など)の場合は、vncビューアからのアクセスがすぐに切断されるという現象が起きるため以下の設定が必要、との事です。ご参考まで。

# cd /etc/dt/config/
# vi Xservers

以下の変更を実施
編集前
  :0  Local local_uid@console root /usr/X11/bin/Xserver :0 -nobanner
編集後
#   :0  Local local_uid@console root /usr/X11/bin/Xserver :0 -nobanner

次に/etc/dt/config/Xsetupファイルの修正を行います。こちらはどの場合でも実施してください。

# cd /etc/dt/config/
# vi Xsetup

最終行に以下を追記
#for VNC
chmod o+w /tmp/.X11-unix


4.設定反映のためのOS再起動

設定を反映するためにOSを再起動します。

bata64% su -
# sync;sync;init 6

再起動した後正常にOSが起動したら再度ログインし、設定反映の確認を行います。

bata64% svcs -a|grep vnc
SMFに登録された事を確認

online         15:35:19 svc:/network/vnc-1024x768x8/tcp:default
online         15:35:19 svc:/network/vnc-1024x768x24/tcp:default


5.クライアントの設定

Solaris 10 8/07でVNCを使ってみよう その2で書いている手順と同じですので割愛します。



6. VNCクライアントからアクセス

これもほぼ同じ手順となります。アクセスする際のポートが二つ用意されています。
50を指定:1024x768、8ビットカラーで接続
51を指定:1024x768、24ビットカラーで接続
となります。特に支障なければ51を指定すればよいと思います。

ちなみに知りませんでしたが、接続ポートは、5900+ディスプレイ番号となるそうです。51と指定すると5901ポートにアクセスする事になります。これまでどおりそのまま指定しても良いみたいです。

今度はパスワードは聞かれずに、以下のようにデスクトップのログイン画面が表示されるはずです。


好きなユーザでログインすればOKです。

これまで説明していた方法より、こちらの方が使いやすいと思います。もっと早くにこのサイトを知っていたら・・・。
ただし、各種設定ファイルが勝手にいじれない環境の場合はxstartupを設定する方法も有効だと思います。VNCさえ入っていれば、rootパスワード知らなくてもビューアからアクセスできますから。
でもこっちの方法を普段は使います。より良い環境になりました。


で、課題についてです。

前回残った課題

  • VNCサーバ⇔クライアント間でクリップボードが共有できない(同様手順を試したRedhatEL3だと出来ました。)

については、VNCのバージョンによるようです。RedhatEL3にインストールされているVNCは4.xで、これ以降に用意されているvncconfigというプロセスを起動するとクリップボードが共有できるようです。
一方、companion CDに入っていたVNCのバージョンは

bata64% pkginfo -l SFWvnc
   PKGINST:  SFWvnc
      NAME:  vnc - Virtual Network Computing
  CATEGORY:  system
      ARCH:  i386
   VERSION:  3.3.7,REV=2008.08.23.02.00
   BASEDIR:  /opt
    VENDOR:  http://www.realvnc.com
      DESC:  vnc - Virtual Network Computing
    PSTAMP:  freeware20080823030342
  INSTDATE:  1月 06 2009 15:00
   HOTLINE:  Please contact the owners of this software
    STATUS:  完全にインストールされました。
     FILES:       29 のインストールされたパス名
                   5 の共有パス名
                   7 のディレクトリ
                   5 の実行可能ファイル
                3212 ブロック (概算値) が使われました

という事で3.3.7でした。という事はvncconfigは使えません。何てことだ。
一応realvncのサイトからソースが取得できる(Solaris版パッケージはSolaris7版、しかもSPARCのみだった)ので、これをコンパイルしてビルドすれば良さそうですが、何か設定が自動で書き換わるみたいなので既存VNCとの兼ね合いが気になってまだやっていません。とりあえずはこの環境を楽しみたいです。


そして以外な課題がありました。Firfox3.0.5をインストールしたらgnome-sessionが致命的なエラーを吐いて起動しないという事態に陥ったのです。しかもVNC経由でなくてディスプレイから、アクセスできなくなってしまいました。スーパユーザでも駄目です。OS再起動しても状況は変わりません。かなり焦りました。

調べたところ、Firfox3.0.5を直前にインストールしていた事に気づきました。
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.5/contrib/solaris_pkgadd/
以下にあるfirefox-3.0.5.en-US.solaris-10-fcs-i386-pkg.bz2

http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.5/contrib/solaris_pkgadd/firefox-3.0.5.en-US.solaris-10-fcs-i386-pkg.bz2
をダウンロードして解凍(bzip2 -d)してpkgaddしておりましたが、この中には

# pkgadd -d ./firefox-3.0.5.en-US.solaris-10-fcs-i386-pkg

The following packages are available:
  1  SFWatk           ATK - Accesibility Toolkit Libraries
                      (i386) 1.20.0,REV=2008.06.24.01.43.37
  2  SFWcairo         Vector graphics library
                      (i386) 1.4.12,REV=2008.06.24.01.47.32
  3  SFWdbus          Simple IPC library based on messages
                      (i386) 1.1.20,REV=2008.06.24.06.33.34
  4  SFWdbus-glib     Glib bindings for D-Bus
                      (i386) 0.74,REV=2008.06.24.06.36.25
  5  SFWfirefox       Mozilla Firefox Web browser
                      (i386) 3.0.5,REV=2008.12.23.17.19.04
  6  SFWglib2         Low level core compatibility library for GTK+ and GNOME
                      (i386) 2.14.4,REV=2008.07.12.01.19.27
  7  SFWgtk2          GTK+ - GIMP Toolkit Library for creation of graphical user interfaces
                      (i386) 2.12.3,REV=2008.07.12.01.23.33
  8  SFWpango         Library for layout and rendering of internationalized text
                      (i386) 1.18.3,REV=2008.06.25.01.02.57

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:

というように複数パッケージがインストールされるのですが、どうもこの中の/opt/sfw/lib以下にインストールされるもの(SFWglib2、SFWgtk2、SFWpango)が干渉しているようで、これらをアンインストールすると再度gnome-sessionが使用できました。ただしこれらが無いとFirefox3.0.5が動きません・・・。

で、解決策としては、/etc/profileに書いていたLD_LIBRARY_PATHから/opt/sfw/libを削除してみました。

変更前
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/sfw/lib:/opt/sfw/lib:/usr/local/lib:\
/usr/lib:/lib:/etc/lib:/usr/local/ssl/lib:/usr/X11/lib
変更後
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/sfw/lib:/usr/local/lib:/usr/lib:/lib:\
/etc/lib:/usr/local/ssl/lib:/usr/X11/lib

こうすれば問題なくVNCからのgnomeも、Firefox3.0.5も起動できました。いやー焦った焦った。

Firfox3.0.5もセットアップしたし、本格的にSolaris10デスクトップ環境が使えますわー。メモリ少ないから重いけど。

ではー。