NetBSD/mac68k 1.1 currentを使う


小前 晋 (AXE, Inc.)

目次

1. はじめに

2. MacBSDの稼働するハードウェア

3. インストールの準備

4. インストール

5. MacBSDの起動と設定

6. ネットワークの設定

7. カーネルの再構築

8. ファイル・システム

9. X11R6のインストール

10. フリーソフトウェアと日本語環境のインストール

11. おわりに (参考URL)



1. はじめに


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年前と比べて、以下に挙げるよ うな進展があり、かなりワークステーションらしく使えるよ うになった。

また、 前回の記事 で、不具合として挙げられていた、

なども、修正されており、かなり安定して動作している。し かし、まだ、SE/30では、MacBSD起動時にハードウェアの時 計から時刻の取得を失敗することがあるようだ。

前回の記事 で筆者らは去年のMacBSDを総じて使えないと評 した。しかし、今年のMacBSDは十二分に使える。


目次へ次の章へ


2. 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では、その他の機種でも動作するかも知れないが、 ドキュメントが不十分で不明)
サポート・デバイス:
(筆者注: 明記されていないが、前回同様、 フロッピ・ディスクはサポートされていない)
外部端末(シリアルttyまたはSLIP)から起動、使用できる機種:
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ドライブを試用したところでは、 異常は見当たらなかった。(しかし問題がないとは保証され ていない)


目次へ次の章へ前の章へ


3. インストールの準備


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が有効になる。


目次へ次の章へ前の章へ


4. インストール


さて、A/UXパーティションはできた。必要なファイルも揃っ た。ユーティリティ・コマンドもできた。ということで、い よいよ、MacBSDのインストールである。

まず、Mkfsでファイル・システムを作る。しかし、パーティ ションはもうあるので、ディスク・ラベルを指定するような 事もない。本当にあっけなく終る。

  1. Mkfsをダブルクリックして起動する。図3のようなダ イアログ画面が出るので、OKをクリックする(returnキーを 押下してもよい)。



    図3 Mkfsの起動画面



  2. SCSIデバイスの一覧が出るので、所望のHDDを選択する(図4)。



    図4 MkfsのSCSIデバイス選択



  3. パーティション一覧が出るので所望のパーティション を「FORMAT」する(図5)。



    図5 Mkfsのパーティション選択とフォーマット



  4. エラー確認ダイアログが出るので、「I Read it」を クリックする。
以上で終りである。

次に、ファイルをインストールしていく。これがもっとも 時間のかかる作業である。しかし、 arch/mac68k/{kernels,snapshot}/* のファイルが正しく持って来れていれば、この作業もトラブルは出ないだろう。

  1. NetBSD/Mac Install Utility 1.1を起動する。

  2. SCSIデバイスの一覧が出るので、所望のHDDを選択する(図6)。



    図6 InstallerのSCSIデバイス選択



  3. 「File」メニューの「Build Devices」を選んで/dev/ 下のデバイス・ファイルを作る(Installは時間がかか るため、筆者はBuild deviceを忘れがちである。よっ て、先にデバイスを作る事にしている)。

  4. 「File」メニューの「Install」を選ぶ。

  5. すると、ファイル選択ダイアログが現れる(図7)ので、 netbsd.GENERIC_62.tar.gzを展開、インストールさせる。



    図7 Installerのファイル選択



  6. 以下同様に、base.tar.gz, etc.tar.gz等をインストールさせる。

次々、全部インストールを行えば良い。

ただし、netbsd.GENERIC_62.tar.gz, base.tar.gz, etc.tar.gzがあれば最低限の起動はできる。残りのインストー ルは、後からでも可能なので、最低限のインストールを済ま せたら、先に進んで、MacBSDが起動することを確認した方が よいだろう。


目次へ次の章へ前の章へ


5. 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」をダブルクリックして起動する。画面はほとん ど変化せず、メニューバーのメニュー項目だけが、変わって いる。

  1. 「Options」メニューの「Booting…」を選ぶ。

  2. 図9のような画面が出る。



    図9 Booter1.9のPreferences



  3. Root SCSI IDを適切なHDD SCSI番号に設定する。

  4. GMT Bias(min)を540に設定する。(日本(JST)はGMTに 対して、9時間*60分=540分の時差がある)

  5. 変更内容をセーブするために、「File」メニューの 「Save Preferences」を選択する。

  6. 「Options」メニューの「Boot Now」を選ぶと、 MacBSDの起動が始まる(図10)。



    図10 MacBSDの立ち上げ画面の様子



  7. デバイスがプローブされた後、最終的にプロンプトが 出る。

プロンプトが出れば、一通りなんでもできると思う。 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が手に入った。さらに、グル ープやユーザを追加したりすると良いだろう。


目次へ次の章へ前の章へ


6. ネットワークの設定


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>

とし、イーサネットのインターフェース名を確認する。今回 使用したasante社のイーサネット・カードのインターフェー ス名はae0である。

次に

# ifconfig ae0 inet se30

としてIPアドレスを設定する。これでイーサネット・インター フェースが使用可能になった。

次のように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も快調に 動作する。


目次へ次の章へ前の章へ


7. カーネルの再構築


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

から始まる行の行頭の'#'文字を消して有効とするだけで、 NFSサーバ機能を使用するコンフィグレーションとなる。 GENERICをGAZONKにコピーし、エディタで編集すればよい。

この後、このコンフィギュレーション・ファイル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サーバの設定については後述する。


目次へ次の章へ前の章へ


8. ファイル・システム


ここでは、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
#
------------------------------------


目次へ次の章へ前の章へ


9. X11R6のインストール


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ボタン・マウスもなんの問題もなかった。


目次へ次の章へ前の章へ


10. フリーソフトウェアと日本語環境のインストール


筆者は、まずtcsh 6.06とGNU make 3.74をインストールし た。フリーソフトウェアの作成には、MacBSD附属のmakeコマ ンドではなく、GNU makeを要求するものがあるので、GNU makeをインストールしておくとよい。これらは、 FreeBSD2.1.0Rに含まれているソースを使い、何の変更もな くインストールできた。

MacBSDのコンソールでは日本語入出力ができない。筆者は 前述のX windowと、フリーなソフトウェアを用いて、最低限 の日本語の環境を作成してみた。筆者がインストールしたソ フトウェアとmakeに要した時間を表1に示す。


表1 フリーソフトウェアとmakeに要する時間
多機能シェル 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に示す。その他は、ドキュメ ントに書いてある手順通りでインストールできた。

------------------------------------
リスト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/> に置く。御利用いただきたい。


目次へ次の章へ前の章へ


11. おわりに


NetBSD 1.1 current/mac68kは、現段階で充分、実用的に 使える。もうすぐNetBSD 1.2が正式リリースされるようなの で楽しみである。

このように十分に使えるUNIXが動作することで、旧いMac の新しい使い方ができるであろう。例えば、本稿で述べた機 能を使って、HDDファイル・サーバや、 CDROM, MO, ZIP等の メディアのサーバなどとして使うことができるだろう。

また本稿では触れていないが、MacBSDはインターネットの ゲートウェイやファイア・ウォールなどとしても使うことが できるはずである。

CAPサーバを動かして、UNIX世界とMac世界との間の橋渡し を行わせてみるのも面白いだろう。

このように、MacBSDはCPU性能が必要無いサーバとして、 旧いMacが活用できるたくさんの可能性を持っている。

最後に、 前回の記事 を書かれ、 今回ご指導くださった竹岡尚三氏に感謝します。



参考URL:

前回の記事が載っている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/>
ここで、今回インストールしたフリーソフトウェアが得られる。

(こまえ すすむ AXE, Inc.)

目次へ前の章へ