Chandra2 に FreeBSD を install する


サブノートの世界に密かなブームを呼んでいた RIOS SYSTEMS の Chandra ですが、 98 年春に後継機 Chandra2 (Model NP40J) が発売されました。 フロンティア神代 Sofmap 広島店などのショップブランドの他、 日立製作所からも 「FLORA Prius note 210g (2109T16G)」として発売され、 夏には日本 IBM EPSON DIRECT その他からも CPU clock を 166MHz -> 233MHz に上げた上位機種が発売されました。 特に、念願叶って「ThinkPad235」として市場に出たことで、 今後のブレイクが期待されていました。 因みに、私が知ってる限りの全 Chandra2 リストです。
当初は通信販売くらいしか入手方法のないレアアイテムだったのですが、 日立版が一般に店頭売りされるようになった頃、 早速私も買ってしまいました。 個人的には、 英語キーボードへの完装サービスをやってくれてる ThinkPad235 がお奨めでしょうか。 私はこれだけの理由で、 Prius note の次に 2 台目 Chandra2 の ThinkPad235 (2607-20J) を買ってしまいました。

しかし、残念なことに 03/31/99 をもって RIOS SYSTEMS は解散してしまい、 開発中だった Chandra3 も含め、 Chandra の今後の道はすっかり閉ざされてしまいました。 これからが期待されるマシンだっただけに、 本当に残念なことです。
この辺りの状況は別のページでまとめてありますので、 そちらを参照して下さい。 また、以前このページに含まれていた雑多な BIOS 情報もそちらに移動しました。

話が逸れましたが、Chandra2 そのものの話に戻りましょう。 ともあれ、どの Chandra2 にも、 OS は Windows95 OSR2.1 または Windows98 が pre-install されていますが、 ここはハッカーへの道を目指す者として是非とも PC-UNIX を載せたいところ。 早速、FDISK し直して FreeBSD を入れることにしましょう。


1. まずは FDISK

日立版は recovery CD-ROM があるので、 HDD をざっくり消してしまっても平気です。 IBM 版も同様に recovery CD-ROM が同梱ですが、 元々 2 partition に分割されている上、 recovery CD-ROM は FAT32 では使えないということなので、 そのまま空の D drive に install した方が楽でしょう。
但し、recovery CD-ROM を用いるときは、 先にCD-ROM 用の setup floppy を作っておくのを忘れずに。 PC card 用の CD-ROM は、 enabler 等の設定を config.sys に組込んでおかないといけないので、 ちょっと気を遣います。
WIndows95 を残しておきたければ、 いっそのこと FAT32 で format するというのもいいでしょう。 また、Windows98 ならば FAT32 化ツールが付いてきますので、 再 format なしに FAT32 に置換えできます。 他のサブノートと違って、 Chandra2 は FAT32 上にでも平気でハイバネーションファイルを構築できます。
因みに、RAM は 128MB DIMM を積むことで 160MB まで実装可能ですが、 これだとハイバネーションに 1 分以上もかかってしまうくせに、 Windows のように浪費家でない FreeBSD では大容量メモリの恩恵が余りないので、 無理して 160MB まで増設しない方が賢明でしょう。
但し、 FAT32 が FreeBSD でサポートされたのは 2.2.7-RELEASE での話なので、 それより前のバージョンを使っていると、 Windows95 の partation が FreeBSD から見えなくなってしまいます。 私の場合は、FDclone を FAT32 対応にしてあるので大丈夫ですが。
この辺りの詳細は、他の PC と同じなので、マニュアル本でも参照して下さい。

2. PAO installer

Note PC には必携の PAO installer を用意します。 Chabdra2 は結構厄介なハード設定なので、 それ用の対処のできる 2.2.6-RELEASE 版以降の installer を PAO の Web page から拾ってきておくといいでしょう。
install floppy の作成手順は割愛します。 普通に RAWRITE.EXE 辺りを使って作ったら、早速 install です。 CD-ROM を認識させなくてはいけないので、 電源を入れる前に CD-ROM を繋げた PC card を挿しておきましょう。

電源投入時に F1 を押すと、「装置構成ユーティリティ」画面になります。 ここのデバイスの設定で、 シリアル、パラレル、赤外線通信の各ポートを殺しておくと、後々楽になります。 通常使わないものは「非動作」にしておきましょう。

また、2.2 系の PAO は CardBus 未対応で、 3.0 系の newconfig project で CardBus 対応していく予定だそうですが、 99/02 現在では release されていません。 仕方ないので、 PC card の動作モードを「カードバス」から「互換」に変更しておきます。 この設定変更だけは必須です。
Windows 等との dual boot 環境で、 どうしても BIOS 設定を「カードバス」にしておく必要がある場合は、 動作モード設定の次の項目にある「PCI 割り込み」設定で「しない」を選びます。 但し、この設定で使うためには pao227 以降を用いる必要があります。 pao227 以降では、 software 的に i82365 互換モードにして使うように実装されていますので、 「カードバス」設定のまま使用することが可能ですが、 CardBus 専用 PC card が使えるようになる訳ではないので注意しましょう。

install floppy を起動して暫く待つと、 デバイス情報の編集選択画面になります。 普通は Skip を選べば良いのですが、 ここでは 2 番目の選択肢を選んで Visual mode で編集しましょう。 そうしないと SCSI driver が認識されないことがあります。 ATAPI CD-ROM は Skip でも大丈夫でしたが、 編集して損はないのでやっておきましょう。
ここでは必要ないデバイスを全て非活性化しておきます。 必要なのは以下の 5 つだけで十分ですので、 それ以外は全部削除してしまって下さい。

Storage: fdc0(Floppy disk)
wdc0(Hard disk)
Input: psm0(Mouse)
sc0(Keyboard)
PCI: ed0(Ethernet)
Chandra2 は IRQ の使い方が独特なので、 ここで編集しておかないと、 PC card controler の I/O や IRQ が競合してしまいます。

デバイス編集が済むと言語の選択画面になりますので、 ここは日本語でも英語でも好きな方を選んで下さい。 すると続いて、Memory address と IRQ の選択画面になります。
Memory Address の方は Default で構いませんが、 IRQ は「IRQ 9,11」を選んで下さい。 この選択肢がない場合、 少なくとも IRQ 10 や IRQ 5 を含まないように気をつけて選びましょう。 すると、PC card の初期化が行われますので、暫く待って下さい。 この時点では slot2 は有効ではないようですので、 CD-ROM は slot0 か slot1 に挿しておいた方が良いでしょうね。

因みに、Pioneer や I・O DATA などの最近の SCSI CD-ROM card に使われている Ninja SCSI-3 は PAO-19981225 からの対応ですので、 2.2.7-RELEASE 以前の OS の install には使えません。 この CD-ROM を 2.2.7-RELEASE 以前で使いたいのであれば、 2.2.8-RELEASE 用 PAO installer を無理に使って isntall した後、 SCSI card maker であるワークビットの Ninja SCSI-3 紹介ページにある driver を組込んだ kernel を作ることで Ninja SCSI-3 が使えるようになります。

ここから先は普通の install と同じです。 他のマニュアル本のとおりに進めて下さい。 /usr/src/sys 以下に kernel source を install しておくことを忘れないように。


3. kernel 再構築

無事 install が完了したら、 PAO を使って kernel の再構築を行います。 /stand/sysinstall を使ってもできますが、 これでは Chandra2 にはいささか不都合がありますので、 面倒ですが手動で行います。

PAO のドキュメントにあるとおり、 /usr/src/sys に移動して kernel source に PAO の patch を当てます。 ここで用意した PAO package が PAO-980430 よりも古い場合、 以下での説明が通用しなくなってしまいますので、 OS 共々最新版にしておいて下さい。 仮に 2.2.5-RELEASE 以前の場合、 PAO patch を当てたあと、更に unofficial patch を当てないといけないので、 ちょっと大変です。

	cd /usr/src/sys/i386/conf
	cp PAO_ALL chandra2
	vi chandra2 ...(*1)
	config chandra2
	cd ../../compile/chandra2
	make depend
	make
	make install
(*1) のところで書換える項目は以下の二箇所です。 なお、このオプション項目は PAO-980430 で追加されたものであることに注意して下さい。
  1. 「device pcic0」の「irq 5」を「irq 10」に変更。
  2. 「options "PCIC_IRQ=10"」の行を追加。
2. の「PCIC_IRQ」がコメント部分にない場合はこの記述は必要ありません。 これは obsolete な記述法で、 正しくは 1. の手法に置き換わるべきなのですが、 PAO のバージョンによっては両者が混在してしまっているので、 面倒ですがどちらも同じ値で設定して下さい。

なお、機種によってはここで options "MAXMEM=(96*1024)" といった形で実装されている RAM 容量を指定しないと 64MB 以上のメモリが認識されないものもありますが、 Chandra2 の場合は普通に認識されますので、 96MB RAM を積んでいてもこの記述は特に必要ありません。 正しい値であれば書いても構いませんが、 下手に間違った値を書いて失敗しないように、 特に指定しない方が無難でしょう。 特に、後から増設の予定がある場合は記述してはいけません。


4. kernel 再構築 (サウンド編)

ついでにここでサウンドドライバの設定も行っておきましょう。 上の (*1) のところで、一緒にサウンドドライバに関する項目も書き加えておくと、 コンパイルの手間が省けます。

Chandra2 の音源チップは ESS ES1879 ということで、 16bit, 44.1kHz 対応の Luigi's Audio Driver に入れ替えたくなるところですが、 SoundBlasterPro との互換モードもあるのでここは標準ドライバにしておきましょう。 Luigi's Audio Driver は 99/02 時点では ESS に対応できていません。
サウンドドライバの設定は、先の (*1) のところで以下の行を追加します。

	controller snd0
	device sb0	at isa? port 0x220 irq 5 drq 1 vector sbintr
	device opl0	at isa? port 0x388
なお、ここでサウンドドライバの設定を行った場合は、 後で cd /dev; sh MAKEDEV snd0 を行っておくことを忘れずに。

これで /dev/audio, /dev/dsp, /dev/sequencer の各デバイスが使えるようになります。 尤も、/dev/dsp は 8bit, 22kHz までしか出ないのですが。
Luigi's Audio Driver が ESS 対応されれば 16bit, 44.1kHz もいけるのですが、 どうしてもこちらを使いたい場合は、 三平さんの Web page で ESS 対応されたものが暫定的に公開されていますので、 本家に contrib されるまではこちらを使うこともできます。 この場合は、 上記 (*1) のところで、先の 3 行の代わりに以下の 1 行を追加します。

	device pcm0	at isa? port? tty irq 5 drq 1 flags 0x15 vector pcmintr
一方、要らないとは思いますが、 beep 音によるサウンドドライバなんてものもあります。 これには、上と同様、(*1) のところで次の行を追加します。
	device pca0	at isa? port IO_TIMER1 tty
	pseudo-device	speaker
これも、後で cd /dev; sh MAKEDEV pcaudio; sh MAKEDEV speaker を行う必要があります。

これで /dev/pcaudio, /dev/speaker が使えるようになります。 /dev/pcaudio は /dev/audio の代わりに使える低音質音源です。 /dev/speaker の方は、MML という楽譜ファイルを鳴らせるデバイスです。 organ.tar.gz というアプリケーションを作ってみましたので、これで遊んでみて下さい。 Chandra2 が小さなキーボードになります。


5. /etc/pccard.conf の設定

PAO の ドキュメントに従っていれば、 /etc に pccard.conf.sample ができている筈です。 これを元に pccard.conf を作成しましょう。
	cd /etc
	cp pccard.conf.sample pccard.conf
	vi pccard.conf...(*2)
(*2) のところでは、以下の二行を先頭に追加して下さい。
	irq 9 11 15
	ignirq 5

6. XFree86 の設定

折角の SVGA 800x600 画面ですから、 XFree86 を入れて X 環境にしちゃいましょう。 Chandra2 の video chip C&T 65555 は標準でサポートされていますので、 ちゃんとフルサイズフルカラーで使えます。
/stand/sysinstall から XF86Setup 等の設定ツールが使えますが、 結局 /etc/XF86Config を作るだけのことなので、 私が作ったものを持っていけば十分です。 因みに英語キーボード用はこちら。 これを /etc/XF86Config の名前でコピーして下さい。
後は以下の手順のとおり。
	cd /usr/X11R6/bin
	ln -s /usr/X11R6/bin/XF86_SVGA ./X
これで、後は /usr/X11R6/bin に PATH を切っておくだけで、 xinit で X が立ち上がります。万歳。

また、 800x600 の画面でもまだ小さいと思っている方は、 画面を広げる代わりに font を小さくするという手があります。
packages にある 8x8 サイズの恵梨沙フォント (ja-elisa8x8-1.0) を使ってもいいのですが、 これに含まれる 4x8 ANK font は bold を自前で用意していないため、 man page 等で使われる bold が非常に読みづらくなってしまっています。
そこで、4x8 ANK font を normal と bold の 2 種類作ってみました。 このパッケージには、 ASCII 及び ROMAN の都合合わせて 4 種類の font に加え、 ついでに 10x8 サイズの恵梨沙フォントの source (elisau10.tgz) から 8x8 サイズへ改変する script も入れてあります。
8x8 サイズの恵梨沙フォントも、 bold font を作っておかないとやはり man page 等で読みづらくなります。 これはさすがに全部作るのは大変ですので、 source (elisat10.tar.gz) を元に永尾さんの mkbold を用いて bold 化したものを用意しておくと良いでしょう。


7. 現状わかっている問題点

実は、上記のとおり設定しても幾つかの問題が残っています。 原因は現在調査中ですが、何か判る方がいたら私まで連絡下さい。
  1. IBM CD-400 を使うと他の slot が使えない。
  2. /stand/sysinstall の package installer で一つも選ばずに終了すると、 CD-ROM device が mount されたままになり、 気づかずに PC card を抜いて reboot すると kernel debugger に落ちてしまう。
1.は原因がさっぱり判りませんが、 元々 ThinkPad 用の周辺機器として設計されているので、 使う I/O や IRQ が固定されており融通が効かないのでしょう。
2.は /stand/sysinstall のバグでした。 3.0-current では直っているようですので、 古い OS を使うときは自分で気をつけるようにしましょう。 また、mount したまま抜いてしまうと reboot 時に支障の出る点は、 PAO-19981225 で修正されたようです。
苦情・問い合わせはこちらまで。 shirai@unixusers.net

トップページ