As Good A Place As Any

Tim Thomas's Blog

Tuesday Sep 16, 2008

VNC サーバーと GDM の OpenSolaris 2008.05 向け構成例

私が目標としていたのは、OpenSolaris 2008.05 が動作しているシステムに VNC クライアントを接続し、root としてログインできるようにすることでした。オリジナルの OpenSolaris 2008.05 バイナリディストリビューションが動作しているシステム上でもうまくできましたし、snv_91 にフルイメージアップデートを実行したあとの OpenSolaris 2008.05 システム上でもうまくできました。

1. VNC サーバーがインストールされていることを確認

これは 2008.05 バイナリディストリビューションの一部なので存在するはずですが、確認しました。

# pkg info SUNWxvnc
          Name:SUNWxvnc
       Summary:X11/VNC server
         State:Installed
     Authority:opensolaris.org (preferred)
       Version:4.1.2
 Build Release:5.11
        Branch:0.91
Packaging Date:Fri Jun 13 17:49:25 2008
          Size:6.3 MB
          FMRI:pkg:/SUNWxvnc@4.1.2,5.11-0.91:20080613T174925Z

2. 次の行を /etc/services に追加

vnc-server      5900/tcp                        # Xvnc

3. /etc/X11/gdm/custom.conf を次のように編集

[xdmcp]
Enable=true
[security]
DisallowTCP=false
AllowRoot=true
AllowRemoteRoot=true

4. サービスを有効化

# svcadm enable xvnc-inetd
# svcs xvnc-inetd
STATE          STIME    FMRI
online         16:22:30 svc:/application/x11/xvnc-inetd:default
# svcadm enable gdm
# svcs gdm
STATE          STIME    FMRI
online         14:43:13 svc:/application/graphical-login/gdm:default

5. VNC クライアントでディスプレイに接続

これで、<ホスト名>:5900 で接続できるようになったため、GDM のログイン画面が表示されるはずです。

もし接続できない場合、次のようにサービスを停止してから開始してみてください。

# svcadm disable xvnc-inetd gdm
# svcadm enable xvnc-inetd gdm

1 つ不満な点があります。VNC クライアントを閉じると、ディスプレイに関連したログインセッションが終了してしまいます。この問題は、GDM ではなく dtlogin を使用している Solaris 10 と Solaris Express では発生していませんでした。もし解決策が見つかれば、この記事に修正方法を投稿します。

参照: 12

Solaris 10 5/08 と Solaris Express (Nevada) で VNC サーバーを構成するスクリプト

今まで私は Solaris Express (Nevada) で VNC サーバーのディスプレイを構成するのに、あるスクリプトを使っていました。Solaris 10 5/08 (Solaris 10 Update 5) には同じく Xvnc が含まれているため、このスクリプトが動作することがわかりました。

私はいつも Solaris をフルインストールします。もし読者がフルインストールしていない場合、Xvnc は使用中のシステムにインストールされていないことがあります。これは次の方法で簡単に確認できます。

# pkginfo | grep  xvnc
system      SUNWxvnc                         X11/VNC server

OS のインストールが完了したら、次のスクリプトを実行します。このスクリプトでは VNC ディスプレイを 2 つ設定するので、VNC クライアントを使うと <ホスト名>:1<ホスト名>:2 という形式でディスプレイに接続できます。2 つ目のディスプレイは共有です。

#!/bin/sh
#
# config_Xvnc_s10+snv.sh
#
# このスクリプトは OS のインストールが完了してから実行します。
#
# Solaris 10 5/08 および Solaris Express (Nevada) b87 以降でテスト済みです。
#

#VNC ディスプレイ 1 を追加
svccfg -s application/x11/x11-server add display1
svccfg -s application/x11/x11-server:display1 addpg options application
svccfg -s application/x11/x11-server:display1 addpropvalue options/server astring:"/usr/X11/bin/Xvnc"
svccfg -s application/x11/x11-server:display1 addpropvalue options/server_args astring:'"SecurityTypes=None"'

#VNC ディスプレイ 2 を追加 (共有)
svccfg -s application/x11/x11-server add display2
svccfg -s application/x11/x11-server:display2 addpg options application
svccfg -s application/x11/x11-server:display2 addpropvalue options/server astring:"/usr/X11/bin/Xvnc"
svccfg -s application/x11/x11-server:display2 addpropvalue options/server_args astring:'"SecurityTypes=None"'
svccfg -s application/x11/x11-server:display2 addpropvalue options/server_args astring:'"-alwaysshared"'

# 開始するために dtlogin を設定
if [ !-d /etc/dt/config ] ; then
        mkdir -p /etc/dt/config
fi
if [ !-f /etc/dt/config/Xservers ] ; then
        cp /usr/dt/config/Xservers /etc/dt/config/Xservers
fi

echo "   :1   Local local_uid@none root /usr/X11/bin/Xserver :1" >> /etc/dt/config/Xservers
echo "   :2   Local local_uid@none root /usr/X11/bin/Xserver :2" >> /etc/dt/config/Xservers

pkill -HUP dtlogin

#終了

VNC クライアントの接続を切ってもディスプレイはそのまま維持されます。そのため、あとでセッションに復帰することができ、ウィンドウとアプリケーションはすべて切断時のままとなります。開始したジョブはずっと実行されます。

VNC クライアントのソフトウェアは http://www.realvnc.com から入手できます。Free Edition と、機能が強化された Personal Edition があり、後者にはライセンスが必要です。

5/08 より古い Solaris 10 のリリースを使用している場合、VNC の構成方法は私の以前のブログ記事を参照してください。

参照: 12

A Day At The Seaside

Calendar

About Me

View Tim Thomas's profile on LinkedIn

Available in

English

简体中文

日本語

Feeds

Search

Links

Navigation