coLinux(0.7.x)のインストール その9: VNCを使ったGUI環境

試したことをとりあえずメモに!
スポンサーリンク

このページでは、VNCというリモート接続プロトコルを使って、 coLinuxでGUIを実現します。

スポンサーリンク

VNCサーバ/VNCクライアントのインストール・設定

VNCサーバのインストール

DebianではいくつかのVNCサーバ(xserver, tightvncserver, vnc4server)を サポートしているのですが、 ここでは高機能っぽいtightvncserverをインストールします。 以下のコマンドです。 とりあえずこれでおしまいです。

# aptitude install tightvncserver
スポンサーリンク

VNCクライアントのインストール

次にHost PCにVNCクライアントをインストールします。 もちろんネットワーク上の他のPCにVNCクライアントを インストールしてもかまいません。

調べてみるとVNCクライアント(Windows用)は 以下のような種類があるようです。 こちらのサイト(http://www.amy.hi-ho.ne.jp/masuda/pc/vnc/vnc_extend.html)に詳しく解説されています。

RealVNC
オリジナル(開発終了)を受け継いだVNCだそうです。 VNCの基本となるものです。
TightVNC
これは画面の転送プロトコルに改良(Tightエンコーディング)を加えて、 通信効率を上げたものだそうです。 もちろんVNCサーバがわがTightエンコーディングに対応していないと、 意味がないのですが、 DebianのVNCサーバはTightエンコーディングに対応しているようです。
UltraVNC
これはTightVNCに更に改良を加えて、高機能化したもの様です。

とりあえず私は高機能そうなUltraVNCを使ってみることにしました。

UltraVNCは有志の方により日本語化されたパッケージがあるので、 http://www.nihongoka.com/jpatch_dairi/ultravnc/から、 最新版のインストーラ版をダウンロードします。

ダウンロードしたファイルを実行するとインストーラが起動しますが、 Windowsの画面を他のマシンに転送する必要がない人は、 「コンポーネントの選択」で「ビューアのみ」を 選択することをお勧めします。

ultra-vnc-setup-1

テスト

ここまできたらテストしてみます。 まず、coLinux一般ユーザでログインして以下のコマンドを実行します。 -depthの後の「24」は色数、-geometryの後の「1024×768」は VNCクライアントで表示する画面のサイズです。 自分の環境に合わせて適当に替えましょう。 ちなみに最後の「-compatiblekbd」はVNCクライアント内で ALTキーで使えるようにするおまじないです。

$ vncserver :1 -depth 24 -geometry 1024x768 -compatiblekbd

コマンドを初回実行時にパスワードを聞かれます。 これはVNCクライアントで接続するためのものです。 確認のため2回入力する必要があります。

次に、UltraVNCをインストールしたWindowsマシンで、 Ultr@VNC Viewerを起動します。 表示されたダイアログの一番上のVNC Serverのところに 「colinux:1」を入力して、「接続ボタン」を押します。

ultra-vnc-setting

するとパスワードを入力するダイアログが出るので 先ほど設定したパスワードを入力しましょう。

ultra-vnc-password

Window Managerのないさびしい画面ですが、 下記のような画面が表示されればOKです。

ultra-vnc-screen

VNCサーバを停止するには、colinuxで以下のコマンドを実行します。

$ vncserver -kill :1

なお、VNCサーバを停止した直後は何故か、 VNCサーバを起動できない場合があるようです。 この場合は、しばらく待ってから起動するか、 「:」の後の数字を「2」とかに変更して起動してください。

X端末風化

上記の設定でとりあえず、 coLinuxをGUIで使用することができるようになりました。 しかしこのままでは、GUIを使用するのには一旦coLinuxにログインしてから vncserverを起動させなければなりません。これではさすがに面倒です。

で、実はこれを解決するための機構が、 既にvncserverの方に組み込まれています。 それはVNCクライアントで接続すると 自動的にvncserverが起動するというものです。 ただし、それなりの設定が必要です。

なお、この設定は下記のWebページを参考にしました。 とても参考になりますので見てみてください。

/etc/servicesの変更

まず、/etc/servicesを変更して以下の行を追加します。 追加する場所は、このファイルのどこでもよいのですが、 とりあえず最後尾にしておきましょう。

ポイントは「5950」などの数字の部分です。 この数字は5950からはじめて1刻みに増やしていってください。 「vnc-1024x768x8」などは、VNCサーバの画面設定を表すものです。 これは横800、縦600、8bitカラー(256色)を意味しています。 本当は適当な文字列でよいのですが、 画面設定を意味する文字列にするとわかりやすいのでお勧めです。

vnc-1024x768x8 5950/tcp
vnc-1024x768x32 5951/tcp
vnc-1280x1024x8 5952/tcp
vnc-1280x1024x32 5953/tcp

/etc/inetd.confの変更

次に、/etc/inetd.confを変更して以下の行を追加します。 これも、どこに追加してもいいのですが、最後尾にしておきます。

ここでのポイントは、各行の先頭の「vnc-1024x768x8」などは、 /etc/servicesに追加した文字列と完全に同じ者にするところと、 「-query」に続く「colinux」を 自分のcolinuxのホスト名にする点です(IPアドレスでも可)。

vnc-1024x768x8 stream tcp nowait nobody /usr/bin/Xvnc Xvnc -inetd -query colinux -once -geometry 1024x768 -depth 8 -cc 3
vnc-1024x768x32 stream tcp nowait nobody /usr/bin/Xvnc Xvnc -inetd -query colinux -once -geometry 1024x768 -depth 32
vnc-1280x1024x8 stream tcp nowait nobody /usr/bin/Xvnc Xvnc -inetd -query colinux -once -geometry 1280x1024 -depth 8 -cc 3
vnc-1280x1024x32 stream tcp nowait nobody /usr/bin/Xvnc Xvnc -inetd -query colinux -once -geometry 1280x1024 -depth 32

inetdの再起動

変更が終わったらinetd.confを反映をさせましょう。 以下のコマンドでinetdを再起動させます。

# /etc/init.d/openbsd-inetd restart

Xvfbのインストール

その次は、Xvfbをインストールします。 これはビデオボードがないマシンでも動くXserverです。 後述するgdmはXサーバを起動するので、 何らかのXサーバがインストールされていなければいけません。 colinuxにはビデオカードがないのでこのXvfbを使います。

インストールは以下のコマンドです。 もしかしたら既にインストールされているかもしれません。

# aptitude install xvfb

ディスプレイマネージャのインストール

次にディスプレイマネージャをインストールします。 xdm, gdm, kdmの3つのディスプレイマネージャが使用できますので、 お好みに応じて選択しましょう。

kdmが表示が綺麗で好みなのですが、 私の環境ではイマイチうまく動かない場合もあるので、 私はgdmを使っています。

xdmの場合

xdmのインストール

以下のコマンドを実行します。

# aptitude install xdm

インストールを開始するとデフォルトのディスプレイマネージャを どうするかときかれるので、迷わず「xdm」を選びます。

xdmの選択

この操作は必要ないかもしれませんが、念のため記載しておきます。

xdmをデフォルトのディスプレイマネージャにするには 以下のコマンドを実行して「xdm」を選びます。

# dpkg-reconfigure xdm
xdmの設定変更

設定はVNCクライアントから接続したVNCサーバにxdmが対応できるように することと、xdmが起動するXサーバをXvfbに変更するところです。 変更は/etc/X11/xdm/以下のファイルを変更することにより行います。 変更点は以下の個所です。

  1. /etc/X11/xdm/Xaccess
    • 「#* #any host can get a login window」という行の 先頭の「#」を削除する(48行目付近です)。
  2. /etc/X11/xdm/Xservers
    • 「:0 local /usr/bin/X vt7 -dpi 100 -nolisten tcp」の 先頭に先頭に「#」を挿入してコメントアウトする。
    • 「:0 local /usr/bin/Xvfb」という行を挿入する。
  3. /etc/x11/xdm-config
    • 「DisplayManager.requestPort: 0」という行の先頭に 「!」を挿入してコメントアウトする。
xdmの起動

以下のコマンドでxdmを起動します。 なお、次回起動時からは自動的にxdmが起動するようになります。

# /etc/init.d/xdm start

gdmの場合

gdmのインストール

インストールは以下のコマンドで一発です。 同時に他のパッケージもたくさんインストールされますが 気にしないことにしましょう。

# aptitude install gdm

インストールを開始するとデフォルトのディスプレイマネージャを どうするかときかれるので、迷わず「gdm」を選びます。

gdmの選択

この操作は必要ないかもしれませんが、念のため記載しておきます。

gdmをデフォルトのディスプレイマネージャにするには 以下のコマンドを実行して「gdm」を選びます。

# dpkg-reconfigure gdm
gdmの設定変更

gdmの場合は/etc/gdm/gdm.confを変更することにより行います。 変更点は以下の個所です。

  • [daemon]セクションに「KillInitClients=true」, 「StandardXServer=/usr/bin/Xvfb」, 「VTAllocation=false」を追加。
  • [security]セクションに「AllowRoot=true」, 「AllowRemoteRoot=true」を追加。
  • [xdmcp]セクションに[Enable=true」を追加
  • [server]セクションに「[server-Standard]」というセクションを作成して、 「name=Standard server」, 「command=/usr/bin/Xvfb」を追加。

わかりにくいので私の/etc/gdm/gdm.confを 「gdmの設定」に 記載しておきます。

gdmの起動

以下のコマンドでgdmを起動します。 なお、次回起動時からは自動的にgdmが起動するようになります。

# /etc/init.d/gdm start

kdmの場合

kdmのインストール

インストールは以下のコマンドで一発です。 同時に他のパッケージもたくさんインストールされますが 気にしないことにしましょう。

# aptitude install kdm

インストールを開始するとデフォルトのディスプレイマネージャを どうするかときかれるので、迷わず「kdm」を選びます。

kdmの選択

この操作は必要ないかもしれませんが、念のため記載しておきます。

kdmをデフォルトのディスプレイマネージャにするには 以下のコマンドを実行して「kdm」を選びます。

# dpkg-reconfigure kdm
kdmの設定変更

kdmの場合は/etc/kde3/kdm/xdm/以下のファイルを変更することにより 行います。 変更点は以下の個所です。

  1. /etc/kde3/kdm/Xaccess
    • 「#* #any host can get a login window」という行の 先頭の「#」を削除する(38行目付近です)。
  2. /etc/kde3/kdm/kmrc
    • 「ServerCmd=/usr/bin/X -br」を 「ServerCmd=/usr/bin/Xvfb」に変更する(471行目付近)。
    • 「ServerArgsLocal=-nolisten tcp」を 「ServerArgsLocal=」に変更する(475行目付近)。
    • 「Enable=false」を「Enable=true」に変更する(119行目付近)。
    • 「AllowRootLogin=false」を 「AllowRootLogin=true」に変更する(253行目付近)。
kdmの起動

以下のコマンドでkdmを起動します。 なお、次回起動時からは自動的にkdmが起動するようになります。

# /etc/init.d/kdm start

接続!

お疲れまでした。ようやくUltraVNCで接続できます。 Ultr@VNC Viewerを起動して、 表示されたダイアログの一番上のVNC Serverのところに 「colinux:50」と入力して「接続ボタン」を押します。

「colinux:50」の「50」というのは、 /etc/servicesに追記した「vnc-1024x768x8 5950/tcp」の 「5950」から「5900」を引いた数字です。 なので「colinux:50」で接続すると解像度は1024×768、 色は8bit(256色)となります。 例えば、解像度1280×1024、色32bitのVNCサーバに接続するには、 「colinux:53」(53=5953-5900)とします。

下記のような画面(gdmの場合)が表示されれば設定完了です! (フルカラーの接続を選んだのに色数がおかしい場合には、 UltraVNCのダイアログの簡単設定で「LAN」を選んでみてください)

ultra-vnc-gdm

おまけ: Xvfbを使わない場合

上記の説明ではディスプレイマネージャから起動されるXserverとして Xvfbと使用しました。

最近ではXorgにdummyサーバが付いており、 Xvfbの替わりに使用することができるようです。

この場合は、まずdummyサーバをインストールします。

# aptitude install xserver-xorg-video-dummy

次に、/etc/X11/xorg.confを次のように編集します。

  • 「Module」セクションのLoadの行を全てコメントアウト。 (これはメモリを節約するためです)
  • 「Device」セクションのDriverの行を 「Driver “dummy”」に変更。

ディスプレイマネージャの設定は以下の様になります (下記の説明はXvfb用に修正していない場合です)。

  1. xdmの場合
    • /etc/X11/xdm/Xaccessの「#* #any host can get a login window」 という行の先頭の「#」を削除(48行目付近)。
    • /etc/x11/xdm-configの「DisplayManager.requestPort: 0」 という行の先頭に「!」を挿入してコメントアウト。
  2. gdmの場合
    • /etc/gdm/gdm.confの[security]セクションに 「AllowRoot=true」,「AllowRemoteRoot=true」を追加。
    • /etc/gdm/gdm.confの[xdmcp]セクションに 「Enable=true」を追加。
  3. kdmの場合
    • /etc/kde3/kdm/Xaccessの「#* #any host can get a login window」 という行の先頭の「#」を削除(38行目付近です)。
    • /etc/kde3/kdm/kmrcの「Enable=false」を 「Enable=true」に変更(119行目付近)。
    • /etc/kde3/kdm/kmrcの「AllowRootLogin=false」を 「AllowRootLogin=true」に変更(253行目付近)。

ただXorgのdummyサーバの方がメモリを消費するようです。

コメント

タイトルとURLをコピーしました