X端末化計画

なぜX端末なのか

一番の理由は、言葉の響きがかっこいいから。
中学~高校の頃にSuperASCIIやTheComputerなんか購読してたんですが、NeXTやらEWS4800やらIRIS IndigoやらIRIS CrimsonなんつぅWorkStationに憧れてたんですわ。
でも、もっと憧れてたのがAlphaやらSPARCやらを幾つも積んだ大型機。
そしてSXシリーズをはじめとするスパコン
もう超~憧れ、惚れてました。
立花隆の電脳進化論なんて、穴があくほど読み返しました。
表紙はボロボロになりましたが、今でも時々読み返しますよ。
当時の愛機はHB-F1 XDJやらMacPlusやらPC-9801DX2やらですからね。
「ハイエンド」「エンタープライズ」っつぅ言葉にゃ弱かった。
まぁ、今でも弱いんですが。
当時の記事やら広告を見ると、大型機と同時にX端末も紹介されてる。
もうね、金さえあれば一式揃えたいなんて思ってました。
中坊なのに。
使い途も思いつかないのに。

んで今日に至るまで、十数年間色々とPCを買い漁り続けてきたわけですが、最近ふと思い出したX端末っつぅ言葉。
ちょうどhp ML115をはじめとして、サーバ機が何台も転がってるし、いっちょやってみようと思い立ったわけです。
最初はASTEC-Xかなんか買おうと思ったんですが、メインで使ってるのがMacBookのMacOSX 10.5 Leopardだったわけで、しかもX11まで入ってる。
こりゃぁ、やらんわけにはいかんでしょう。
正直、ProじゃないMacBookなんで、最大メモリ2Gの壁にブチ当たってる現状を打開するには、買い替えるか別環境に移行するかしかないわけで。
無駄に転がってるサーバ機(Opteron / Athlon64 / XEON Dual / Pen3XEON Quad / Pen3XEON Dual / Alphaなどなど)にLinuxでも突っ込んで、重いソフトはそっちに任せて、X端末化したMacBookからコントロールすればいいじゃないかと。
ちょうどhp ML115にゃメモリ8GBおごったトコだし。
コイツ用のOpteronも確保済みだし。

せっかくだから(by コンバット越前)やってみた。

 MacBookでやってみる

サーバ側の下準備はhp ML115を参照のこと。

MacBook側の下準備

OSX 10.5 Leopardに標準で入ってるXquartzでもいいんですが、どうやらバグがあるもよう。

から最新版をダウンロードしてセットアップします。
特に難しいコトはないので、普通にインストールします。

XDMCPで接続してみる

まずは接続してみます。
ターミナルより /Applications/Utilities/X11.app/Contents/MacOS/Xquartz -query ***.***.***.*** (***.***.***.***には、サーバに設定したIPアドレスを入力)

これでログオン画面が表示されれば成功です。
さすがはNeXTの子孫。
超~簡単ですね。

文字入力がおかしい時は

ウチのUbuntu環境では、ログオン画面じゃ問題ないものの、gnomeやKDEが起動するとキーアサインがデタラメになってしまいました。
MacOS側の問題かと思ったんですが、サブ機のThinkPad X31に切り分け用としてインストールしたX-Deep/32 Ver.4(Trial版)でも同じ現象になったので、Ubuntu側の問題と判断。
ちなみに、VMWare FusionにインストールしたUbuntu7に接続した時でも一緒の現象でした。
直すには、xevとxmodmapを使います。

今回は、KDE環境を追加したうえでの作業。
まずはKDEのターミナルで
xev

を使い、keycodeを探ります。
そして、KDEのターミナルで
xmodmap -e “keycode 37 = 0” xmodmap -e “keycode 101 = backslash bar”

などでキーコードを割り当てていく。

適当なソフトで、各キーの割り当てが適当に為されたことを確認する。
さらにKDEのターミナル上で
xmodmap -pke

で確認。

一度ログアウトし、さらにログオン。
またキーマップがおかしい状態になっているはず。
KDEのターミナル上で
xmodmap $HOME/.xmodmap

と入力し、先ほどの設定変更を反映。

Konquererを起動。
アドレスバーに
~/.kde/Autostart/

と入力してReturnを押す。
右クリック > 新規作成 > アプリケーションへのリンク と辿る。
「一般」タブには適当な名称を。
今回は xmodmap とした。
「アプリケーション」タブの
名前欄 : xmodmap コマンド欄 : xmodmap $HOME/.xmodmap

詳細オプション ボタンを押し、
ターミナル内で実行 にチェック

OK > OKで抜け、全てのウィンドゥを閉じる。

一度ログアウトし、ログオンしなおす。

適当なアプリケーションを起動し、入力が正常にされれば成功です。
少し面倒ですが、キーボードがマトモに打てなきゃハナシになりません。
納得いくまでやりましょう。

Dockに登録する

Applescriptによる方法と、Automatorによる方法があります。

  • Applescript

スクリプトエディタを起動し、
do shell script “/Applications/Utilities/X11.app/Contents/MacOS/Xquartz -query ***.***.***.***” (***.***.***.***には、サーバに設定したIPアドレスを入力)

と入力します。
ファイル > 別名で保存 でファイル名を入力し、
“フォーマット” で “アプリケーション” を選択

して保存します。
作成されたファイルをDockにドラッグし、接続試験します。

  • Automator

Automatorを起動し、カスタムを選択します。
シェルスクリプトを実行をダブルクリック or 右側にドラッグします。
右側の入力エリアに
/Applications/Utilities/X11.app/Contents/MacOS/Xquartz -query ***.***.***.*** (***.***.***.***には、サーバに設定したIPアドレスを入力)

を入力します。
ファイル > 別名で保存 でファイル名を入力し、
“フォーマット” で “アプリケーション” を選択

して保存します。
作成されたファイルをDockにドラッグし、接続試験します。

スクリーンショット

X11でUbuntuサーバに接続しKDEを使用、Qemuを起動して、さらにその上で

にて公開されているADVENTUREがセットアップされた1CD Linux(Vine)を起動したところ。

 Prius310Mでもやってみる

部屋に転がっていた日立のTFT一体型マシン。
こいつも、ついでにX端末化してみることにする。

Prius310Mの下準備

まずはUbuntuのインストール。
Ubuntu Japanese Teamへ行って、日本語ローカライズドDesktop CDのi386版をダウンロード。
isoファイルをCD-Rに焼きます。
今回はMacBookのディスクユーティリティを使用。
CD-Rを光学ドライブに入れて起動。
ローカルにインストールを選択して、あとはおまかせで。
インストールが完了したら、本来は再起動 > ネットワークなどの最低限の設定を行う。
ところが、今回はまったく何も設定せずに、いきなりX端末として使います。
ローカルでのログオンすら一度もせず、ほんとうにいきなりサーバに接続してみる試験です。
まぁ、実際はDHCPなど最低源の設定は、インストール時に自動で設定されているんで、Ubuntuデフォルト設定で使えるか否かっつぅのが正しい表現なんでしょうが。
ディストリビュータによっては、またはOSによっては、設定変更によってNICをアクティブにしなければならない場合があるんで、その場合は適宜設定変更してください。
さて、今回のUbuntu標準設定で接続できるんでしょうか。

X端末として使ってみる。

Ubuntuのログオン画面左下、”オプション”ボタンを押します。
するとメニューが開きますので、
XDMCP経由でのリモートログイン

を選択します。
画面が切り替わって、接続するホストの選択という項目が表示されます。
既にログオン先サーバの設定が済んでいれば、ここの一覧にログオン先サーバが表示表示されます。
ログオン先サーバをダブルクリックすると、再び画面が切り替わります。
ここで表示されるのは、XDMCP経由で見ているサーバのログオン画面です。
MacBook用に既に作成してあるユーザでログオンしてみると、そのまんまのデスクトップが表示されます。
これは当然ですね。
ただし、このユーザはxmodmapが変更されているため、キーマップがおかしなことになっています。
一度ログアウトし、MacBookでログオン > Prius310M用のユーザを作成します。
Prius310Mは一度ログアウトしているので、ローカルのログオン画面になっています。
XDMCP経由でのリモートログイン

を選択し、サーバに接続 > 新しいユーザでログオンしてみます。
同じUbuntu同士ですから、キーマップも問題ありません。
また、メモリを512MB積んでいるとはいえ、Celeron 466MHzというクソ遅いマシンにも関わらず快適。
当然ですよね。
処理は全てサーバでやっていて、X端末側は表示と入出力しかしていないんですから。
現在、この文章をPrius310Mで打ち込んでいますが、全くストレスなど感じません。
快適です。
表示のラグなどもありませんし。
MacBookと同時に接続し、負荷のテストも行ってみました。
2台同時に接続した状態で、ネットワーク負荷は
2台ともルートウィンドゥのみ : 600KBytes/s 2台ともブラウザ起動・操作 : 800KBytes/s 2台とも写真やストリーミングムービーなどをWebで読み込み : 一瞬だけ8~10MBytes/s

という程度です。
通常使用5Mbps~10Mbpsくらいで、最大80Mbpsという程度。
ギガイーサが主流の現在であれば、特に問題のある負荷ではないですね。
まぁ今回は装飾過剰なKDE使用で、FireFox3にアドオンを何種類も入れたうえでタブをいくつも開いた状態ですし、負荷は必然的に高くなるのかもしれません。
押入れなどに転がっている古いマシン。
普通のデスクトップ用途であれば、Linuxも最近は頑張ってますし、激安高性能サーバでも手に入った日にゃぁ…こりゃ使わんテはありませんよ。
多分このPrius310Mは、このままX端末としてしか使わない気がします。
ローカルでログオンすることは殆どないんじゃないかと。