■■■X Window Systemを使う
NetBSDを導入した当初の目的はほとんど実現できた。WinとMacでのファイル共有にプリントサーバ。いくら何でも古いMacにこれ以上の仕事を押し付けるのは無理だろう。しかし、「できる」と書いてあることは試したくなるのが人情だ。UNIXをはじめ、Linuxでは標準となっているX Windowシステムも、すでにNetBSDに移植されてかなり使えるようになってきているようだ。と、いってもUNIX初心者のわたしにはX Windowがどういうものかは皆目見当もつかない。とりあえず、Macやウインドウズのようなグラフィカルなインターフェイスと理解した。
すでにNetBSDには標準でモノクロX windowシステムが準備されていて、インストールするだけで使えるようになっている。のだそうだ。(FAQ参照)つまり、標準インストールが成功していれば、同じインストール動作を行えばいいのだから導入は簡単だ。わたしも指示通りに
とインストールした。
などはお好みでいいらしいが、面倒なのでまとめて入れてもいいだろう。
小一時間かかってすべてインストールが終わった。さっそくシステムを起動して見よう。普通にマルチユーザモードで立ち上がった状態から、
# startx
とやるだけで画面がグレー一色になり、真ん中に「X」のアイコンなのかカーソルなのかわからないが表示された。ひと呼吸置いて、小さなウインドウにアナログの時計、別のウインドウが一つ、二つ、三つと開いていく。紛れもなくウインドウズだ。3つ開いたウインドウがそれぞれXtermとなっているところをみると、telnetのようなターミナルらしい。この形ならもともとのMacユーザとしてはお手のもの。さっそくトラックパッドをぐりぐりまさぐって、ウインドウをつかんで動かして、おっ、おわわわ!! 何たる事だ。カーソルはトラックパッドの動きについてくるものの、ターミナルウインドウの上を横切るとバラバラとわけのわからないテキストがスクロールされて止まらなくなった。マウスボタンには触れていないのにまるでウインドウの中をドラッグしている感じだ。しかもマウスボタンがまったく効果が無い上に、デスクトップでを横切ると、本来はマウスクリックで開くはずのコンテキストメニューがまたたくようにカーソルのまわりにチラつく。このため項目を選択するどころか、項目の内容が読み取れない… 「バグだ…」本来、マウスボタンは3ボタンでそれぞれ別の動作をさせる仕様らしいのだが、やはり1ボタンでは上手く行かないのかもしれない。
とりあえず、FAQにあるようにカーネルを再構築して、3ボタンマウスの動作をキーボードでエミュレートできるようにしてみた。カーネルゴンフィグファイルの
#>options ALTXBUTTONS # Map Opt-{1,2,3} to mouse buttons
のコメントをはずして、コンパイルするだけ。例によって3時間ばかりかかって新しいカーネルができた。これを使ってみる。このオプションをつけることで、otpionキー+1、2、3のキーの組み合わせによって3ボタンマウスのクリック、ドラッグなどが再現できるはず。なるほど、ウインドウのドラッグ、リサイズはMacと同じ様にできる。コンテキストメニューも開くことができる。しかし、動きがおかしい。やはり、マウスボタンが押されたままのようにターミナルウインドウ上のテキストが選択された上にスクロールしてしまう。
いろいろ情報を探って見たが、それらしきバグの報告は無いようだ。普通はトラックパッドでは無く、マウスを使うのだから根本的に違うのかもしれない。そういえば、このmac68kの対応ハードウエアで唯一のトラックパッド搭載機種がこの500シリーズだ。やはり見過ごされていた問題が潜んでいたのだろう。
■カラーXを試す
まあ、トラックパッドの問題は先送りするとして、まず、FAQに書いてあるカラーX、つまりX Windowのカラー化に挑戦することとした。トラックパッドやマウスに比べればこのカラー化の情報は格段に多い。やはりカラーディスプレイを搭載しているのだからだれもがカラー化して見たくなるのは当然だ。しかし、公式ページのカラー化に関するファイルへのリンクはことごとくリンク切れ。広大なウエブの海の中から探し出さなくてはならなくなった。
カラー化といっても、ハードウエア、カーネル、ビデオカードなどの違いによっていくつかの手法があるらしい。歴史的(といってもそんなに古い話ではないが…)に追って行くと、まず、デスクトップ機の特定のNuBusビデオカード、それも個人の改変したカーネルと、対応するカラー化されたバイナリーを使うことに始まり、lkm(ローダブルカーネルモジュール)という起動時に読み込み可能なカーネルモジュール(Macの「機能拡張」のようなものだろう)を用意して、カーネルをカラー化に対応させるもの、と、どれもどの機種のどのビデオカードに対応しているとは明記していない。つまり、ハッキングの領域を抜け出せないというシロモノだ。しかも、ほとんどのバイナリーはオンボードビデオには対応していないらしい。
しかし、すでにNetBSD1.6になると、それらをも必要とせずに、かなりの機種で単にカラー化されたバイナリを載せるだけで使えるようになっているそうだ。こうなれば、標準セットに組み込んでもよさそうなものだが、見送られている状況のようだ。現状では16ビット、つまり32000の表示しかできないのがネックらしい。そこで、オウンリスクを覚悟で試してみるしかない。
ウエブを検索して、Xmac68k_elf_OSFA.src.tarというファイルを入手する。公式のリンクは全て切れ切れになっているが、世界は広い。どこかにあるはずだ。運良く見つかれば、NetBSD機で展開、展開されたサブディレクトリの1.6ディレクトリのなかにあるXmac68k_color.gz2を再度展開するとXmac68k_colorというバイナリができる。これを、/usr/X11R6/bin/以下に移動する。同じディレクトリにあるXmac68kバイナリに張られたリンクXを、
# cd /usr/X11R6/bin/
# ln -s Xmac68k_color X
と、リンクを張りなおす。これで準備完了。おっと、その前に、Mac側(booter)でモニタ設定を256カラーに変更しておこう。これでstartxでカラー化されたXが動くはずだ。
これまでの流れからまず何かしらトラブルがあるだろうと思いきや、すんなりカラーで起動するではないか。大成功。なんだかイマ風。ところがよく見ると色がでたらめ。ウインドウマネージャで初期設定されたWhiteSmokeと指定した色が黄色になっていたり、MidnightBlueが黄緑色だったりする。8ビットカラーの520cのオンボードビデオでは対応できないのだ。グレースケールが推賞されているので、設定を変えてみる。モノクロよりも16グレーなら格段に見やすいがちょっと残念。まあこれはこれとして、トラックパッドをなんとかせねば…
■トラックパッドを直す。
どれもこれも中途半端で完全に動くものはないのか~? しかし、世界は広い。いろいろさがしているうちに英文ではあるが面白いページを発見した。sixgirl.orgという怪し気なページだが、真面目にNetBSDのFPE(浮動小数点エミュレータ)のハッキング(というと悪い印象だが…)に取り組んでるらしい。とくにパワーブック系については力が入っている。DUOや150系にそのまま使えるカーネルを配布している。しかも、LC040のパワーブック、つまりPB500シリーズのFPEもかなり使えるレベルまで来ているそうだ。それに付随して、トックパッドの不具合と対策についても書かれていた。
英文なんで正確ではないかもしれないが、なんでもMac史上初となるトラックパッド搭載機である500系PBは、MacOS上では使われないものの、タップ機能も有効なのだそうだ。本来使わない仕様にしなくてはいけないタップ機能がNetBSDでは過敏に動いてしまうので、例の不具合が起こるらしい。(と、解釈した…)そこにはTakeshi Shibagaki氏の情報として同時にその対策も書かれていたのでさっそく試してみた。
カーネルのソース。(コンフィグファイルでは無い。)のなかに/sys/arch/mac68k/dev/ams.cというのがある。その一行、
sc -> handler-id = aa_args -> handler_id;
の、=から右の部分を = ADBMS_100DPI;と書き換えて保存。(バックアップを取ることを忘れずに!)
これでカーネルを再構築すれば見事にトラックパッドが正常に動作する。(断言!)