1. はじめに
2. MacBSDの稼働するハードウェア
3. インストールの準備
4. インストール
5. MacBSDの起動と設定
6. ネットワークの設定
7. カーネルの再構築
8. ファイル・システム
9. X11R6のインストール
10. フリーソフトウェアと日本語環境のインストール
11. おわりに (参考URL)
NetBSD/mac68k(以下MacBSDと略記)はMPUに680X0を使用し たMacintosh(以下Macと略記)のためのNetBSDである。
NetBSDは、先進的な実験が行われているBSD系OSのひとつ である( NetBSD.orgの公式ホームページ、 NetBSD/mac68kの公式WWWページ 参照)。BSD系OSはインターネット・プロ トコル (TCP/IP)を広めるのに貢献したOSであり、現在もイ ンターネットの先進的実験は主にBSDを使用(改造)して行わ れている。 NetBSDは 4.4BSDLiteをベースとしている。
このNetBSDがMacでも動く。移植を行ったのは、Allen Briggsらを中心とするAliceというグループである( MacBSDのホームページ )。
筆者らは、ほぼ1年前に UNIX USER誌(1996/June)でMacBSDを紹介し ている( 竹岡尚三氏によるNetBSD1.0/mac68kのインストール記事 )。
新たな読者のために、再びMacBSDの概要を列挙する。
MacBSDはMacOSの代りとなって動作するソフトウェアで、 MacOSと同時には動作できない。この点は、MkLinuxと同様で ある。MacOSと共存できるUNIXライクなシステムはMacMiNTと MachTenが知られている。
MacOSが使えなくなってしまうことは、熱心なMacユーザに とっては、大変に残念なことである。だが、本物のBSDはそ れなりに楽しめるであろう。インターネットの先進的な機能 を試したり、インターネットのゲートウェイを構成したりで きるので、MacOSをなくした代りに得られる価値は非常に大 きい。一般に流布しているインターネット関連のフリー・ソ フトウェアの類は、BSD系OS用に作られていることが多い。 これらのMacBSDへの移植は容易であろう。また、インターネ ットのゲートウェイやファイア・ウォールを旧いMacで実現 できることは、Macを大量にかかえるサイトには、朗報では ないだろうか。
さて、 前回のMacBSDの紹介 から約1年が過ぎた。だが、 NetBSDの正式なリリースはいまだ更新されないままである。 (近々NetBSD1.2 がリリースされると公表されてはいる)しか し、 NetBSD-currentは常時更新されており、そのMac版も充 実してきている。
今回は、NetBSD-1.1 current(16 June 1996)をMac68kにポー ティングした
NetBSD/mac68k(18 June 1996)について述べる。
なお、起動メッセージをみればわかるが、NetBSD-1.1 currentは、すでに内部的にはNetBSD-1.2_ALPHAとなってい る。
本稿では、MacBSDのインストール方法を紹介した後、 MacBSD用のX windowシステム(X11R6)と、MacBSDでの日本語 環境について述べる.
今回紹介するMacBSDは、1年前と比べて、以下に挙げるよ うな進展があり、かなりワークステーションらしく使えるよ うになった。
また、 前回の記事 で、不具合として挙げられていた、
前回の記事 で筆者らは去年のMacBSDを総じて使えないと評 した。しかし、今年のMacBSDは十二分に使える。
今回紹介するNetBSD-currentの場合、ドキュメントが整備 されていないので、稼働するハードウェアについては断定し づらい。NetBSD1.2がリリースされれば動作機種は確定され るであろう。
MacBSD 1.1 のドキュメントによれば、最小限4MBのメモリ と65MBのディスク容量が必要である。実用的に使うには、少 なくとも8MBのメモリと200MBのディスク容量が必要だと記述 されている。そして、サポートされる機種、デバイス等は、 以下の通り。
サポート機種:Mac II (with PMMU), Mac IIx, Mac IIcx, Mac IIci, Mac SE/30, Mac IIsi, Mac IIvx, Mac IIvi, Performa 600サポート・デバイス:
(筆者注: currentでは、その他の機種でも動作するかも知れないが、 ドキュメントが不十分で不明)
(筆者注: 明記されていないが、前回同様、 フロッピ・ディスクはサポートされていない)
LC III、Performa 550、PowerBookの数機種、その他サポートされてないが、よく質問される機種:
この他に、 John P. Wittkoski氏のカーネル (ADBTEST#139)を使って、次の機種で動作したという報告が されている。
LC III, Performa 450
Performa 460/465/467
なお、本稿のために筆者が使用した構成は、
である。
- 本体:
- Macintosh SE/30 (68030, FPU内蔵)
- メモリ:
- 8MBytes/ 20MBytes
- ADBキーボード:
- Apple Keyboard II
- NeXT社製 ADB Keyboard
- ADBマウス:
- Apple社製 ADB Mouse
- 米Logitech社製 MouseMan Cordless for Macintosh Model#0106
- NeXT ADBマウス
- EtherNetカード:
- Asante MacCon+30iET64
- HDD:
- QUANTUM LPS340S (340MBytes)
- CDROMドライブ:
- PLEXTOR DM-5028 (2倍速)
- Zipドライブ:
- Zip Drive
- MOドライブ:
- (日本の)ロジテック社製 LMO-400 (FUJITSU M2512A)
メモリは8MBと20MBの2通りを試用した。8MBでも、X windowは普通に稼働した。またカーネルの再構築に要する時 間でも、20MBと8MBでは数十分程度の差しか出なかった。し かし、8MBのメモリは大規模なソフトウェアのコンパイルに は実用的ではないだろう。
今回試用したキーボードは、Apple社製のKeyboard IIと NeXTのキーボードである。どちらも良好に動作した。
NeXTキーボードというのは、秋葉原や大阪日本橋のジャン ク屋で売られている、NeXT社のロゴの入った、ADBプロトコ ルの黒いキーボードである。裏にはNeXT社の銘板までついて いるので、偽物ではないだろう。このキーボードはコントロ ール・キーが'A'キーの左隣に位置しているので、UNIXユー ザには使い易いだろう。
また、今回試用したマウスは、Apple社純正ADB Mouse、 Logitech社の3ボタン・マウス、NeXTの2ボタン・マウスの3 種類である。どれもまったく問題なく使えた。
MacBSDのX windowはADBの3ボタン・マウスをサポートして いる(1ボタンでも使用できる)。X windowのソフトウェアは3 ボタン・マウスの使用を前提としているものが多いので、 3 ボタン・マウスが使い易くてよいだろう。
現在、日本で入手が容易なMac ADB用の3ボタン・マウスは、 米Logitech社のものだけであろう。今回、筆者らは日本橋の T-Zoneで購入した。なお米Logitech社は日本では「(株)ロジ クール」というブランド名を使用している(日本のLogitec とは無関係)。
NeXTのマウスは、キーボードと同時に購入した物である。 NeXTマウスの右ボタンはX windowの中ボタンに対応する。
筆者がZipドライブ、MOドライブを試用したところでは、 異常は見当たらなかった。(しかし問題がないとは保証され ていない)
MacBSDのインストール方法は、 以前に紹介したNetBSD1.0の方法 からほとんど変化していない。UNIX USER誌 1995/Juneを読まれた方は、本章を読む必要はないだろう。
しかし、当該号のバックナンバーはもう入手不能らしいの で、若干の更新を行い、再び記述する。
まず、HDDにA/UXパーティションを作成する。MacBSDには、 2つのA/UXパーティション、「Root&User」と「swap」が必 要である。A/UXパーティションの作成方法は、 前回の記事のインストールの準備 と全く同じなので、そちらを参照していただきたい。
SwapパーティションはINSTALLドキュメントでは、実メモ リの倍程度が勧められている。しかし、本格的な使用を考え るなら、30MB程度はとっておくべきだろう。
さて、パーティションができたので、必要ならばMacOSを 入れ、次の作業に移る。
今回は、必要なファイルをすべてローカル・ディスクに持っ てきて作業した。本稿では、ローカル・ディスクに全ファイ ルが存在しているとして、説明を進める。ただし、 AppleShareを使用している場合には、実行速度が遅いだけで、 まったく同じ事が行われるはずである。
ローカル・ディスクにファイルを持ってくるには、いくつ かの方法がある。例えばMacにCD-ROMドライブがついていれ ば、MacOSでCD-ROMをマウントし、それをコピーすれば良い。 筆者の場合は、NCSA Telnetのftp サーバ機能を使用し、 SUNからftpプロトコルでMacSE/30に転送した。
ftpする場合、arch/mac68k/utils/*.hqx は TEXTモードで転送し、 arch/mac68k/{kernels,snapshot}/ の下のアーカイブされたファイルはBINARYモードで転送するの が便利で良い。
ファイルが揃ったら、次にMacBSD専用のインストール・ソ フトウェアを準備する。arch/mac68k/utils/ の下にある、以下 の 4つの *.hqxファイルを展開する。ただし、mode32は旧い ROMのMacのみ必要である(後述)。
mkfs.cpt.hqx
MacBSDInstaller1.1.sea.hqx
mode32-7.5.hqx
Booter1.9-PRERELEASE.cpt.hqx
展開するには、StuffIt Expanderを起動し、「File」メニュー の「Expand…」を選択する。すると、ファイル指定ダイアロ グが開くので、所望のファイルを指定する。これを4回繰り 返して、Mkfs, NetBSD/Mac Install Utility 1.1, MODE32 (7.5)の3つのMacOSのアプリケーションと、Booter 1.9とい うフォルダを得る。
StuffIt Expanderはhqxをデコードすると同時に*.cptアー カイブも展開してしまう。が、単純なBinHqxデコーダを使用 した場合は、*.cptというファイルができるだけだろう。 *.cptというのは、Compacterというアーカイブ兼圧縮ソフト ウェアで作成したアーカイブである。*.cptを解凍するには、 なんらかのCompacterの解凍ソフトウェアが必要である。
MODE32は、旧いROMのMacに必要な機能拡張である。今回、 MacBSDのBooterはMacOSの32ビット・アドレッシング・モー ドで動作するアプリケーションになった。しかし、旧いROM のMacはそのままでは、MacOSを32ビット・アドレッシング・ モードにできない。そこで、MODE32という機能拡張によって、 MacOSが32ビット・アドレッシング・モードを使えるように する。
旧いROMのMacとは、具体的には、SE/30,MacII, IIx, IIcx など、Macの世界でいう「32bitクリーンでないROM」を搭載 した機種である(MacBSDがサポートするほとんどの機種であ る)。
今回のMacBSDには、MacOS System7.5用のMODE32が含まれ ている。MODE32をMacOS7.5にインストールするには、上で得 られた「MODE32(7.5)」を起動する。すると自己解凍(図1)し、 「MODE32 Installer」というフォルダが得られる。さらに、 そのフォルダ内のMacOSのアプリケーション「MODE32 Installer」を起動(図2)し、「Install」をクリックする。 これで、MODE32がシステム・フォルダ内の「Extensions(機 能拡張)」にインストールされる。MacOSを再起動すれば、 MODE32が有効になる。
さて、A/UXパーティションはできた。必要なファイルも揃っ た。ユーティリティ・コマンドもできた。ということで、い よいよ、MacBSDのインストールである。
まず、Mkfsでファイル・システムを作る。しかし、パーティ ションはもうあるので、ディスク・ラベルを指定するような 事もない。本当にあっけなく終る。
次に、ファイルをインストールしていく。これがもっとも 時間のかかる作業である。しかし、 arch/mac68k/{kernels,snapshot}/* のファイルが正しく持って来れていれば、この作業もトラブルは出ないだろう。
次々、全部インストールを行えば良い。
ただし、netbsd.GENERIC_62.tar.gz, base.tar.gz, etc.tar.gzがあれば最低限の起動はできる。残りのインストー ルは、後からでも可能なので、最低限のインストールを済ま せたら、先に進んで、MacBSDが起動することを確認した方が よいだろう。
今回、MacBSDのBooterはMacOSの32ビット・アドレッシン グ・モードで動作するアプリケーションになった。
MacOSを32ビット・アドレッシング・モードにするには、 「Control Panels(コントロール・パネル)」の「Memory(メ モリ)」を開き、「32-bit addressing(32ビットアドレス)」 をOnにする(図8)。この設定を有効にするために、 MacOSを 再起動する必要がある。 (注意:前述の通り、旧いROMのMac ではMODE32を入れておかなければ「32-bit addressing(32ビ ットアドレス)」が選択できない)
図8 32ビット・アドレッシング・モードに設定
さて、いよいよ、MacBSDを起動しよう。
「Booter 1.9」フォルダ内のMacOSのアプリケーション「 Booter 1.9」をダブルクリックして起動する。画面はほとん ど変化せず、メニューバーのメニュー項目だけが、変わって いる。
プロンプトが出れば、一通りなんでもできると思う。 MacBSDのインストールはほぼ成功していると考えて大丈夫で ある。
最低限のインストールが確認できたら、halt -qなどとし て、MacBSDを終了する。必要があれば、NetBSD/Mac Install Utility 1.1によるファイルのインストールを続ける。
次にMacBSDを起動した時にはマルチユーザ・モードで起動 し、gettyがプロンプトを出してくるだろう。これでインス トールは完了である。gamesまですべてのバイナリをインス トールした場合、HDDの容量は47.5MB程度である。
後は、マシン名、タイムゾーン等の設定をしておく。手順 は他のNetBSDと同様である。マシン名は、/etc/mynameに設 定する。今回は、se30というマシン名にした。タイムゾーン は、以下のように日本時間(東京)に設定する。(以下、プロ ンプトが "#" の場合は、rootの権限で実行していることを 示す)
# cd /etc # mv localtime localtime.ORG # ln -s /usr/share/misc/zoneinfo/Asia/Tokyo localtime
時計設定についての不具合は修正されているので、MacBSD から時刻を設定することができる。
これで、本物の実用的なBSDが手に入った。さらに、グル ープやユーザを追加したりすると良いだろう。
MacBSD 1.1からイーサネット・カードがサポートされてい る。ネットワーク設定のコマンド等は、通常のBSD系OS とまっ たく同じである。なお、設定はrootとなって行う。
まず、/etc/hosts をリスト1のように編集する。IPアドレ スや、他のマシン名などは、各サイトで適切なものを使って もらいたい。この例では、MacBSDをインストールしたマシン 名をse30、IPアドレスを10.0.0.1、他のマシン名をfoobar、 そのIPアドレスを10.0.0.2としている。
------------------------------------
リスト1 /etc/hosts# 127.0.0.1 localhost # 10.0.0.1 se30 loghost mailhost 10.0.0.2 foobar .....------------------------------------
続いて、イーサネット・インターフェースにIPアドレスを 設定する。
# ifconfig -a ae0: flags=8822<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST> ppp0: flags=8010<POINTOPOINT,MULTICAST> ppp1: flags=8010<POINTOPOINT,MULTICAST> lo0: flags=8009<UP,LOOPBACK,MULTICAST> inet 127.0.0.1 netmask 0xff000000 sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST>
次に
# ifconfig ae0 inet se30
次のようにpingコマンド等でテストする。同様に他のマシ ンからMacBSDに向けてもpingをテストしてみたほうがよい。
# ping se30 PING se30 (10.0.0.1): 56 data bytes 64 bytes from 10.0.0.1: icmp_seq=0 ttl=255 time=2.322 ms 64 bytes from 10.0.0.1: icmp_seq=1 ttl=255 time=2.569 ms 64 bytes from 10.0.0.1: icmp_seq=2 ttl=255 time=2.568 ms ^C --- se30 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 2.322/2.486/2.569 ms # ping foobar PING foobar (10.0.0.2): 56 data bytes 64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.671 ms 64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.924 ms 64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.942 ms ^C --- foobar ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 2.671/2.845/2.942 ms
以上が、手動での設定方法である。
MacBSD起動時に自動的に設定するには、以下のように、 /etc/hostname.ae0というファイルを作成するだけでよい(こ の例はae0インターフェース用である。インターフェースの 名前に応じて"ae0"を変更し、同様のファイル作成すればよ い)。
# echo "inet se30" > /etc/hostname.ae0
今回使用したMacBSDのイーサネットは非常に快調である。 通常のTCP/IPユーティリティ群は当然のこと、NFSも快調に 動作する。
NetBSDやFreeBSDの醍醐味の一つは、カーネルの再構築が 気軽にできることであろう。MacBSDのカーネルの再構築は、 他のNetBSDと同様の手順でよい。ここでは、NFSサーバとな れるように、カーネルを再構築してみる。(実は、リリース されているnetbsd.NFS_27.tar.gz等を使えば、NFSサーバ機 能も使用できるのだが、今回はカーネルの再構築を行ってみ る)
カーネルのコンパイル時にはソースコードと合わせて約 43MB程度のディスク容量を必要とする。
カーネルの再構築には、NetBSD-current/tar_files/src/sys.tar.gz を使用する。このファイルを/usrで展開すると、/usr/src/sys 以下のディレクトリにカーネルのソースが置かれることにな る。
カーネルの再構築には、まず/usr/src/sys/arch/mac68k/conf/ にあるコンフィギュレーション・ファイルを、必要に応じて 編集する。なお、作業はrootとなって行う。
今回はNFSサーバ機能を追加するために、GAZONKというコ ンフィギュレーション・ファイルを作成することにする。 GAZONKは既存のGENERICというコンフィギュレーション・フ ァイルをほんの少し変更する。
具体的には
#options NFSSERVER
この後、このコンフィギュレーション・ファイルGAZONKを 用いて、以下の手順でカーネルを再構築し、カーネルを置き 換える。
# config GAZONK # cd ../compile/GAZONK # make depend && make # mv /netbsd /netbsd.old # cp netbsd /
さて、これでカーネルの再構築が済んだ。新しいカーネル でMacBSDを起動してみよう。もしも新しいカーネルで不都合 が起きた場合は、Booterの「Kernel Name」に、古いカーネ ル名(netbsd.old)を指定して再起動し、新しいカーネルの不 具合を修正すればよい。
MacBSDのドキュメントでは、カーネルの再構築には、 8MB メモリ搭載のMac SE/30で、約1.5時間かかると書かれている。 しかし、筆者の環境ではメモリが20MBと非常に多いにも関わ らず、約4時間が必要であった(8MBでも数十分の差しかない)。
NFSサーバの設定については後述する。
ここでは、NFS、ISO9660/RockRidge形式のCD-ROM、UFSの MOとZIPドライブのマウント法ついて述べる。さらに、HFSの ハードディスクやMOやZIPを読むツールについても述べる。
1) NFSクライアントとNFSサーバ
GENERIC_62のカーネルでは、NFSクライアントとしては動 作するが、 NFSサーバにはなれない。NFSサーバ機能を使用 するには、NFS_27等のカーネルを使うか、前章に書いたよう にカーネルを再構築する。
NFSクライアント機能を使うには、/etc/netstart内の
nfsclient=NOを
nfsclient=YESに書き換える。
また、NFSサーバとするには、
nfsserver=NOを
nfsserver=YESに書き換える。どちらも書き換え後、再起動する(もしくは、 /etc/rcを参照して、同様のコマンドを手動で実行してもよ い)。
NFSサーバの場合、エクスポート(export)するディレクト リ等の設定を、以下のように/etc/exportsに記述し、mountd に対してHUPシグナルを送る(もしくは、MacBSDを再起動し てもよい)。以下の例では、"/"を全てエクスポートしている。
# cd /etc # echo "/ -maproot=0:0 -alldirs" > /etc/exports # kill -HUP `cat /var/run/mountd.pid`
エクスポートされているかどうかは、mountコマンドで、 以下のように確認できる。
# mount /dev/sd0a on / type ffs (NFS exported, local) kernfs on /kern type kernfs (local) procfs on /proc type procfs (local)
2) CD-ROM
MacBSDでは、ISO9660/RockRidge形式のCD-ROMを読むこと ができる。(残念ながら、HFSのCD-ROMを読む手段はないよう である)
CD-ROMドライブをMacOSで使用する場合と同様に接続して、 MacBSDを起動する。ISO9660/RockRidge形式のCD-ROMメディ アを挿入する。インストール直後はCD-ROM用のデバイスがな いので、以下のようにcd0デバイスを作成する。
# cd /dev # sh MAKEDEV cd0
マウント・ポイントとなるディレクトリを作成し、読み取 り専用でマウントできる。
# mkdir /cdrom # mount -t cd9660 -o ro /dev/cd0a /cdrom
3) MOとZip
MacBSDでは、MOとZipは、ハードディスク(sdデバイス)と して見える。デバイス番号は、SCSI IDの小さい順番に0か ら割り振られる。起動ハードディスクがsd0となるように SCSI IDを割り当てる必要がある。決して、 MOやZipのSCSI IDを、MacBSDの起動ハードディスクより小さい番号にしては ならない。
MOドライブ(またはZipドライブ)をMacOSで使用する場合と 同様に接続して、MacBSDを起動する。MO(またはZip)のメデ ィアを挿入する。MO(またはZip)をUFSとして使用するには、 リスト2を/etc/disktabに追加し、以下のようにUFSを作成す る。この例では、cパーティションのみを使用している。
(MOの場合)
# disklabel -w -r sd1 mo230 # newfs sd1c Warning: 140 sector(s) in last cylinder unallocated /dev/rsd1c: 446324 sectors in 218 cylinders of 64 tracks, 32 sectors 217.9MB in 14 cyl groups (16 c/g, 16.00MB/g, 3840 i/g) super-block backups (for fsck -b #) at: 32, 32832, 65632, 98432, 131232, 164032, 196832, 229632, 262432, 295232, 328032, 360832, 393632, 426432, # mkdir /mo # mount /dev/sd1c /mo
(Zipの場合)
# disklabel -w -r sd2 zip100 # newfs sd2c /dev/rsd2c: 196608 sectors in 96 cylinders of 64 tracks, 32 sectors 96.0MB in 6 cyl groups (16 c/g, 16.00MB/g, 3840 i/g) super-block backups (for fsck -b #) at: 32, 32832, 65632, 98432, 131232, 164032, # mkdir /zip # mount /dev/sd2c /zip
------------------------------------
リスト2 /etc/disktab 追加分# MO 230MB mo230:\ :ty=removeable:ns#32:nt#64:nc#217:\ :pc#444416:oc#0:bc#8192:fc#1024: # Zip 100MB zip100:\ :ty=removeable:ns#32:nt#64:nc#96:\ :pc#196608:oc#0:bc#8192:fc#1024:------------------------------------
NetBSDのUFSは、他のアーキテクチャのNetBSDと互換性が あるようだ。試しに、MacBSDで作成したUFSのMOとZipを、 NetBSD/sparcで使ってみた。両方とも問題なくマウントでき、 読み書きもできた。ちなみに、SunOS-4.1.*(sparc)や、 FreeBSD-2.1.0(i386)とは互換性がなく、マウントすらできな い。
4) HFS
Macなのだから、MacBSDと言えども、今まで使っていたMac のハードディスクが読めた方が便利であろう。
このためのツールhfsを紹介する。hfsは、HFSで書かれた sdデバイスの内容を読むツールである。hfsは、読むだけで、 書き込むことはできない。ハードディスク以外に、MOやZip もsdデバイスなので、これらを読むこともでき、かなり便利 である。
このhfsは、標準ではインストールされない。ソースが用 意されているので、ユーザがmake、インストールして使用で きるようになる。arch/mac68k/progs/hfs-0.00.tar.gz を展開し、makeする。何の問題もなく簡単にmakeできる。
hfsは、sdデバイスに直接アクセスするので、rootの権限 で実行しなければならない。hfsの使用例をリスト3に示す。
------------------------------------
リスト3 hfsの使用例# hfs Please wait, probing drives... Please choose the HFS volume to browse: 1. HD300 (SCSI 1) 2. Zip 100 (SCSI 2) Volume number, or <ENTER> to exit: 2 Type "help" for help. 1. ANNOUNCE (7041 bytes) 2. bsd/ 3. Desktop DB (6144 bytes) 4. Desktop DF (0 bytes) Zip 100:/ > help Commands are: cd [number] cd . cd .. cd (top level) ls cat [number] cp [number] [file] exit Zip 100:/ > cp 1 announce Wrote 7041 bytes to "announce". Zip 100:/ > cd 2 1. base.tar.gz (7517789 bytes) 2. etc.tar.gz (68151 bytes) 3. misc.tar.gz (1898465 bytes) 4. netbsd.GENERIC_62.tar.gz (446142 bytes) Zip 100:/ > exit #------------------------------------
MacBSD用のX windowシステム(X11R6)は、Aliceグループに よって移植された。X windowシステムは、 Aliceグループの Allen Briggsが管理している サイト(puma.macbsd.com) から手に入れることができる。このサイトでは、Aliceグ ループが精力的にMacBSDのサポートを行っている。 ここのWWWページ は、 NetBSD/mac68kの公式WWWページ からもリンクが張られている。
MacBSD用のX windowシステムには、白黒とカラーの2種類 のXサーバがある。
以下、白黒X windowについては puma.macbsd.com:/pub/NetBSD/X/README*をもとに述べる。 しかし、筆者の手元にはMac SE/30のみしかないので、内容 の完全な確認はできていない。
白黒(1bit/pixel)のXサーバは、MacBSDでコンソールの使 える機種なら、そのビデオ・システム上で動作する。
さらに、外部ビデオ・カードを用いて、X windowの画面を 2つのモニタ・ディスプレイに出すことも可能である。この 場合は、外部ビデオ・カード側のデバイス・ファイル /dev/grf2を以下のように作る必要がある。
# mknod /dev/grf2 c 10 2
カラーのX windowに関連するソフトウェアは puma.macbsd.com:/pub/NetBSD/X/colorkit/にある。
README.Xcolorkitによると、カラーのXサーバは、 256色 (8bit/pixel) 以上のQuickDraw互換のビデオ・カード上で使 用可能である。また、動作は確認されていないが、一応、 NuBUS/PDS ビデオや内蔵ビデオ(IIci, IIsiなど)のためのモ ジュールはコーディングされている。
カラーXサーバは、256色(8bit/pixel)の画面モードで動作 する。65536色(16bit/pixel)や1600万色(24bit/pixel)など の画面モードはサポートしていない。たとえ、65536色や 1600万色の出るビデオ・カードであっても、256色の画面モー ドが使われる。
カラーXサーバの場合は、専用のドライバを含むカーネル を使わなければならない。このためのコンパイル済みのカー ネルが、Xサーバと一緒にcolorkitに用意されている。 Xmacbsd.960506.tar.gzがカラーXサーバであり、 netbsd.050896.GENERIC.grf.tar.gzが専用のドライバを含む カーネルである。
今回は、SE/30に白黒のXサーバをインストールした。
まず、X.11Mar95.tgzを/usrに展開する。
ただし、/usr/X11R6/lib/X11/fonts/misc/の下にあるフォ ント・ファイルの一部が最初から壊れている。そのため、他 のX11R6のディストリビューションから正常なものを取って くる必要があった。壊れていたフォント・ファイルを、以下 に示す。
cursor.pcf deccurs.pcf decsess.pcf gb16fs.pcf gb16st.pcf gb24st.pcf hanglg16.pcf hanglm16.pcf hanglm24.pcf jiskan16.pcf jiskan24.pcf k14.pcf olgl10.pcf olgl14.pcf olgl19.pcf
次に、最新のXサーバのXmacbsd.960127.tar.gzを以下 のように/usr/X11R6/binに展開する。
# mv /usr/X11R6/bin/Xmacbsd /usr/X11R6/bin/Xmacbsd.old # tar xvfz Xmacbsd.960127.tar.gz -C /usr/X11R6/bin
さて、これでX windowのインストールが終了した。すぐに X windowを使用する場合は、以下のように、ダイナミック・ リンク・ライブラリのパスを設定しなおす。(MacBSDを再起 動するならば、設定しなおす必要はない)
# ldconfig /usr/X11R6/lib
X windowを使用するには、startxコマンドを使って起動す る。図11のようにX window システムを使うことができる。
図11 Xウィンドウ・システムを立ち上げてみた
後は、各ユーザの~/.xinitrcを好みに合わせて編集してお けばよいであろう。
MacBSDのX windowでは、Macで一般的な1ボタン・マウスの ために、中ボタン、右ボタンがキーボードでエミュレーショ ンできるようになっている。各ボタンは次のようなキーにバ インドされている。
<OPTION> + <left-arrow> 中ボタン
<OPTION> + <right-arrow> 右ボタン
前述のように、今回はLogitech社の3ボタン・マウスを試 用したが、3つのボタンは全て問題なく使えている。NeXT社 の2ボタン・マウスもなんの問題もなかった。
筆者は、まずtcsh 6.06とGNU make 3.74をインストールし た。フリーソフトウェアの作成には、MacBSD附属のmakeコマ ンドではなく、GNU makeを要求するものがあるので、GNU makeをインストールしておくとよい。これらは、 FreeBSD2.1.0Rに含まれているソースを使い、何の変更もな くインストールできた。
MacBSDのコンソールでは日本語入出力ができない。筆者は 前述のX windowと、フリーなソフトウェアを用いて、最低限 の日本語の環境を作成してみた。筆者がインストールしたソ フトウェアとmakeに要した時間を表1に示す。
多機能シェル | tcsh-6.06 | 約 1時間 |
GNU make | gmake-3.74 | 約 23分 (うちconfigureに10分) |
日本語の表示 | kterm-6.2.0 | 約 23分 |
日本語コードの変換 | nkf-1.5pl1 | 約 1分 |
日本語ページャ | less-290(+iso2 pl1) | 約 11分 |
日本語入力 | wnn-4.2(Wnnのみ) | 約 2時間 |
日本語エディタ | Ng-1.3 | 約 11分 |
kterm, nkf, lessについては、それぞれのドキュメントに 書いてある手順通りでインストールできた。
Wnnでは、Xsi/config/Project.tmplを少し変更した。
その変更内容は、
------------------------------------
リスト4 Xsi/config/Project.tmplの差分*** Xsi/config/Project.tmpl.orig Mon Aug 29 17:40:17 1994 --- Xsi/config/Project.tmpl Sun Jul 28 18:14:24 1996 *************** *** 1137,1142 **** --- 1137,1143 ---- #ifndef BuildWnn #define BuildWnn YES #endif + /* #ifndef BuildCWnn #define BuildCWnn YES #endif *************** *** 1146,1151 **** --- 1147,1153 ---- #ifndef BuildXwnmo #define BuildXwnmo YES #endif + */ #ifndef BuildJserver #define BuildJserver YES *************** *** 1177,1182 **** --- 1179,1185 ---- #define BuildWnnDicUtilForCompile NO #endif + /* #ifndef BuildCserver #define BuildCserver YES #endif *************** *** 1224,1229 **** --- 1227,1233 ---- #else #define BuildCWnnDicUtilForCompile NO #endif + */ /* * If you want to install dictionaries forcibly, set WnnInstallDicForcibly *************** *** 1363,1365 **** --- 1367,1371 ---- #else IMAKE_CMD = $(IMAKE) -I$(IMIRULESRC) -I$(IRULESRC) $(IMAKE_DEFINES) #endif + EXTRA_LIBRARIES = -lcrypt + INSTALL = /usr/bin/install -c------------------------------------
Ngでは、ドキュメントにも書いてある通り、BSD系OS用の sys/bsd/Makefileを用いた。だが、今回は、このMakefileを 少し変更した。 gccを、いわゆるUNIX-C仕様(K&Rスタイルか つ文字列定数に書き込み可能)で動作させるオプションを 付加した。変更の差分をリスト5 に示す。その他は、ドキュ メントに書いてある手順通りでインストールできた。
------------------------------------
リスト5 Ng Makefileの差分*** Makefile- Wed Jun 2 11:34:38 1993 --- Makefile Thu Aug 1 20:35:48 1996 *************** *** 15,21 **** #ALLOCA = alloca.o ALLOCA = ! CC = cc # Objects which only depend on the "standard" includes OBJS = basic.o cmode.o dir.o dired.o file.o line.o paragraph.o \ --- 15,21 ---- #ALLOCA = alloca.o ALLOCA = ! CC = gcc -traditional -fwritable-strings # Objects which only depend on the "standard" includes OBJS = basic.o cmode.o dir.o dired.o file.o line.o paragraph.o \------------------------------------
今回、Mule-2.3ではなくNg-1.3をインストールしたのは、 筆者の環境では、CPUパワーのためか永遠にmakeが終了しな かったからである。機会があればもう一度挑戦したい。
なお、ここに挙げたものは、いずれも有名なソフトウェア である。今回作成したバイナリ、ソースを <ftp://ftp.axe-inc.co.jp/pub/mac/netbsd11/> に置く。御利用いただきたい。
NetBSD 1.1 current/mac68kは、現段階で充分、実用的に 使える。もうすぐNetBSD 1.2が正式リリースされるようなの で楽しみである。
このように十分に使えるUNIXが動作することで、旧いMac の新しい使い方ができるであろう。例えば、本稿で述べた機 能を使って、HDDファイル・サーバや、 CDROM, MO, ZIP等の メディアのサーバなどとして使うことができるだろう。
また本稿では触れていないが、MacBSDはインターネットの ゲートウェイやファイア・ウォールなどとしても使うことが できるはずである。
CAPサーバを動かして、UNIX世界とMac世界との間の橋渡し を行わせてみるのも面白いだろう。
このように、MacBSDはCPU性能が必要無いサーバとして、 旧いMacが活用できるたくさんの可能性を持っている。
最後に、 前回の記事 を書かれ、 今回ご指導くださった竹岡尚三氏に感謝します。
前回の記事が載っているUNIX USER誌のバックナンバー (1996/June)はもう入手不能らしいので、 前回の記事をもとにして作成したWWWページ を公開する。
また、本稿を書くにあたって、参考にしたWWWページのURL を以下に挙げる。これらに注目しておけば、近いうちに MacBSD 1.2の情報も得られるであろう。
- <http://www.netbsd.org/>
- NetBSD.orgの公式ホームページ
- <http://www.netbsd.org/Ports/mac68k/>
- NetBSD/mac68kの公式WWWページ
- <http://www.macbsd.com/>
- AliceグループのAllen Briggsが管理しているMacBSDのためのホーム ページ
- <http://www.axe-inc.co.jp/~bsd/macbsd10/netbsd.html>
- 竹岡 尚三氏のUNIX USER誌(1996/June)のNetBSD1.0/mac68kの記事を もとに作成したWWWページ
- <http://www.microserve.com/~jpw/adb.html>
- John P. WittkoskiによるADBハードウェア・サポートのWWWページ
- <ftp://puma.macbsd.com/pub/NetBSD/X/>
- ここで、MacBSD用X windowシステムが得られる。
- <ftp://ftp.axe-inc.co.jp/pub/mac/netbsd11/>
- ここで、今回インストールしたフリーソフトウェアが得られる。