NetBSD/mac68k 1.3.1のインストール
Last Updated 1999/03/14
Macintosh LC475にNetBSDを入れる際に、神山文雄さん著のNetBSD/mac68k徹底入門(以下、徹底入門とします)を書店で購入し、これを基に作業を行いました。このページは、神山さんの徹底入門の内容を補足する形で、NetBSD/mac68kの環境設定をまとめたものです。
神山さんの本に沿って作業をすれば一通り動すことができるようになるのですが、自分としてはこうしたら良いのではと思った点がありましたので、その点についてだけ記しています。

徹底入門を選択したのは、CD-ROMにパッケージが入っていたことが大きな理由でした。 後から分かったのですが、バイナリのパッケージは入ってなかったんですね。
(1.3.1とバージョンが旧いのと、クセのある書き方が、ちょっとだけ気になりましたが...)

※説明文中の $(CD_AKMac)は、徹底入門付属のCD-ROMをマウントしているディレクトリを示します。また、$(CD-FreeBSD)は、FreeBSDのdistfileが含まれているCD-ROMをマウントしているディレクトリを示します。mountの操作は、特に明記していませんが、すでにCD-ROMがmountしてあるものとして説明を行っています。

- 目次 -
[ 基本的な設定 ]
[ 日本語関連の設定 ]
[ AfterStep の困った現象 ]


基本的な設定

インストール直後のシングルユーザーモードから脱出する方法

NetBSDのインストール直後にシングルユーザーモードになってしまう状態から、簡単に抜け出す方法

#cat rc_configured=YES >> /etc/rc.conf
の後、再起動でOK。
(徹底入門のp70あたりに関連)


4連装CD-ROMの場合のデバイス

%su
#cd /dev
#./MAKEDEV cd2
#./MAKEDEV cd3
#exit
で3枚目、4枚目のデバイスを作成する。最初は、cd0とcd1しかない。
これで、3枚目、4枚目もマウント可能。
(徹底入門のp105あたりに関連。もちろん、チェンジャータイプでなければ関係なし:-)

ちなみに、AKMACのCD-ROMをマウントする方法は、
mount -t cd9660 -o ro /mnt/cd0a /mnt
そして、アンマウントの方法は
umount /mnt
さっさと、/etc/fstab を書換えるのが一番。


xlockmoreについて一言

xlock -mode cartoon
が一番好き。 徹底入門にはのってないけど。
 (徹底入門のp148あたりに関連)


neXtawのインストール

FreeBSD2.2.5 の neXtaw-0.5 のportsをそのまま使う。

cp $(CD-FreeBSD)/ports/distfiles/neXtaw-0.5.tar.gz /usr/pkgsrc/distfiles
cp -R $(CD-FreeBSD)/ports/x11/neXtaw /usr/pkgsrc/x11
cd /usr/pkgsrc
make
make install

cd /usr/X11R6/lib
mv libXaw.a old.libXaw.a
mv libXaw.so.6.1 old.libXaw.so.6.1
ln -s libneXraw.a libXaw.a
ln -s libneXtaw.so.6.1 libXaw.so.6.1

再起動する。
これで、徹底入門のp165に載っているデスクトップのスクロールバーやボタンなどが、3DでNeXTっぽいかっこいいものになる。
 (徹底入門のp165あたりに関連)


bashのインストール

cd /usr
tar tvfz $(CD-AKMac)/tarfiles/pkgsrc.tar.gz | grep bash
cat $(CD-AKMac)/tarfiles/pkgsrc.tar.gz | tar xvfz - pkgsrc/shells/bash2

cp $(CD-FreeBSD)/ports/distfiles/bash-2.01.tar.gz /usr/pkgsrc/distfiles
cp $(CD-FreeBSD)/ports/distfiles/bash-doc-2.01.tar.gz /usr/pkgsrc/distfiles

cd /usr/pkgsrc/shells/bash2
make
make install
cp -P /usr/pkg/bin/bash /bin

shellはbashが好きなので。
 (徹底入門のp175あたりに関連)


AfterStep の設定いろいろ

cp /usr/local/afterstep-1.0pre2/lib/afterstep/system.steprc ~/.steprc
cd ~
chmod 644 .steprc
vi .steprc
後は、お好みの通りに変更。

ちなみに、~/.steprcの例はここです。
画面のスナップショットは、こんな感じです。

アイコンは、この辺にころがっています。

(... この辺り、まだ工事中です。)


日本語関連の設定

日本語処理の考え方

ツールのインストール方法は、通常 次のいずれかの方法をとる。

・バイナリのパッケージが用意されていれば、それをインストール
・ソースのパッケージが用意されていれば、それをインストール
・パッケージとして用意されていなければ、自分でソースをコンパイルしインストール

で、NetBSDでは、日本語系各ツールは、ほとんどが「自分でコンパイル」コースになってしまうでしょう。この作業をいかに簡単にすませるかが、日本語環境構築の「ポイント」のように思う。

個人的には、別にAfterStepのメニューで日本語が表示できなくてもいいし、Originalとの差分が少なければ少ないほど、いろいろな面でいいと思っている。
(この辺は各人考え方はいろいろで、凝ろうと思えば際限なく凝ることもできる。 凝りたい人は、「日本語環境の構築と活用/佐渡秀治・よしだともこ著」等を参照のこと。 )
ここでは、簡単な設定で、実用的な環境が手に入られることを、日本語関連の設定の方針とする。

非常に消極的だが、もっとも 手堅い方法は次の通り。(一番、簡単だし...)
・LANG環境変数によるlocaleは不完全なものとして割り切る。 LANGは"C"にする。
・libcの再構築は行わない。面倒くさいから。
・-lxpg4をつけて、再コンパイルはしない。(もともと、入ってないし...)
どういうことになるかというと、
・日本語を扱えるツールは、特定のものだけと割り切る。そのツールが扱うファイルだけ、マルチバイトコードが含まれる。
・時間表記や通貨の表示とかは、日本語環境のものを期待しない。
・Xでのラベル/メニューやファイル名等には日本語を使わない(使えない)。
これであれば、基本的にエディタがマルチバイト処理できて、shellが8ビットを通してくれればOK。
後は、各自使うツール(例えば、フィルター系のツールやお絵描きツール、TeX、印刷系)が、マルチバイトコードを扱えるかどうかにかかってくる。

徹底入門付録のCD-ROMには、幸い日本語が扱えるツールのバイナリが提供されてはいるが、これがまた、AfterStepと使う時に問題となる。特に、ktermがね。


bashの設定

vi ~/.initrc
set convert-meta off
set meta-flag on
set putput-meta on

これで8ビットコードが通る。
(日本語環境の構築と活用 p41 )

vi ~/.profile
export LANG=C;
(日本語環境の構築と活用 p44)


Canna のインストール

FreeBSD2.2.5 の Canna32p2 のportsをそのまま使う。

cp $(CD-FreeBSD)/ports/distfiles/Canna32p2.tar.gz /usr/pkgsrc/distfiles
cp -R $(CD-FreeBSD)/ports/japanese/Canna /usr/pkgsrc/japanese/Canna
cd /usr/pkgsrc/japanese/Canna
make
make pre-install
make install
make post-install

vi /etc/services
canna 5680/tcp
を追加

/usr/pkg/etc/rc.d が起動するように、/etc/rc.localを変更する。
それから、/usr/pkg/etc/rc.d/canna.sh も環境にあわせて変更する。


kinput2

FreeBSD2.2.5 の kinput2-canna のportsをそのまま使う。

cp $(CD-FreeBSD)/ports/distfiles/kinput2-v2-fix1.tar.gz /usr/pkgsrc/distfiles
cp -R $(CD-FreeBSD)/ports/japanese/kinput2-canna /usr/pkgsrc/japanese/kinput2-canna
cd /usr/pkgsrc/japanese/kinput2-canna/work

66行目付近を変更
vi /usr/pkgsrc/japanese/kinput2-canna/work/Kinput2.conf
CANNAINSTDIR = /usr/pkg
CANNASRC = $(CANNAINSTDIR)/include
CANNALIB = -L/usr/local/lib -lcanna16

xmkmf -a
cd /usr/pkgsrc/japanese/kinput2-canna
make
make install


kterm

FreeBSD2.2.5 の kterm-6.2.0 のportsをそのまま使う。

cp $(CD-FreeBSD)/ports/distfiles/kterm-6.2.0.tar.gz /usr/pkgsrc/distfiles
cp $(CD-FreeBSD)/ports/distfiles/kterm-6.2.0.NFS-xauth.patch /usr/pkgsrc/distfiles
mkdir /usr/pkgsrc/japanese
cp -R $(CD-FreeBSD)/ports/japanese/kterm /usr/pkgsrc/japanese/kterm

cd work/kterm-6.2.0
vi Imakefile
83行目のSetUIDProgramTarget()の中の-lxpg4 を削除

ptyx.h 761行目
#defune EUCJPLOCAL "ja_JP.eucJP, ..."

#defune EUCJPLOCAL "C,ja_JP.eucJP, ..."
に変更。"C,"を追加。

xmkmf -a
cd /usr/pkgsrc/japanese/kterm/work/kterm-6.2.0
make
make install
 


NEmacsのインストール

FreeBSDの時に使ったNEmacsのソースコードおよびパッチをここでも用いる。FreeBSDと同様の変更に加え、以下のソースコードの修正が必要。
[ 課題 ] dumpができないのとTERMの環境変数が処理できないのが?

vi etc/movemail.c
#include "../src/config.h"
を #include <sys/types.h>の前に移す。

vi src/filelock.c  & vi src/fileio.c
#include "lisp.h" の前の行に
#undef NULL
を入れる。

vi unexec.c
#include <a.out.h>

#include <sys/types.h>
#include <sys/exec_aout.h>
にかえる

vi src/callproc.c と vi src/fileio.c
mktemp (...);

mkstemp(...);
に変える。
 

vi src/dispnew.c
if (!terminal_type) terminal_type = "vt100";

terminal_type = (char *) getenv ("TERM");
の後に追加する。なぜか、getenv( )がうまく動かないため。かなり強引なやり方。

vi src/nconfig.h
#define LIBCANNA /usr/pkg/lib/libcanna.a
にする。

vi src/lisp.h
#ifdef BIG_ENDIAN

#include <machine/endian.h>
#if BYTE_ORDER == BIG_ENDIAN
に変える。

vi src/crt0.c
#if 0
char *__progname = empty;
#endif /* netbsd */
に変更。

%vi src/ymakefile
CFLAGS= C_DEBUG_SWITCH -Demacs $(MYCPPFLAGS) C_SWITCH_MACHINE C_SWITCH_SYSTEM -I/usr/pkg/include/canna

make
make install
 
muleよりも格段に軽いので、非力なマシンでは使いやすい。
 (徹底入門のp120あたりに関連)


NEmacsの個人環境の設定

vi ~/.emacs
(load-file canna)
(canna)
を追加しておく。 これで、cannaが使える。
 

AfterStep の困った現象

AfterStepを使っていると、エラーメッセージが画面上に表示されて、AfterStepの画面が上に上がっていってしまう現象が生じる。
これを回避するには、

・xconsole を立ち上げる。
・日本語環境構築のところでやったように、環境変数 LANGがCであることを前提に構築する。特に、kterm。

を行えば、画面がくずれることは回避できる。
本当は、

・カーネルの再構築 (これは、確認していません。あしからず)。 日本NetBSDユーザーグループのWebページの「ドキュメントとFAQ」を参照してください。 一部を次に引用します。 ---------- ここから、引用 ------- コンソール表示 ('su'などの) が X の表示をこわす システムは何かが起こったこと ('su'など) を示すためコンソールに出力を 行います。 このコンソール出力を 表示させるための、xconsole あるいは 'xterm -C' プ ログラムを起動するようにしてください。 以下を有効にしてカーネルをコンパイルする必要があるかもしれません: options UCONSOLE # allow anyone to steal the virtual console 詳しくは カーネルの作り方 を参照してください。 ---------- ここまで、 -------

を行いたい。ただし、徹底入門には カーネルのソースが含まれていないため、ftpサイトから取得してくる必要があるため、あえて やらなくても良いのでは。( <- 個人的な感想 )
 
(徹底入門のp163あたりに関連)

※ FreeBSDでのXの日本語環境設定方法が、Sofrwaredesign 1998.6 p58 に載っています。参考までに。
 


さいごに

このページを作成しようと思ったのは、NetBSDの日本ユーザー会のリンク集の中に 「Life with BSD」のページが載っていたのを見つけのがきっかけです。 「Life with BSD」では、特に NetBSDに関連する内容を載せていた訳ではなかったので、これはまずいと思い、NetBSDがらみの記事を書こうと思い立ちました。
とはいっても、昔と違い、最近では NetBSD関連のWebページはいっぱいありますし、雑誌等でも紹介されているので、何を書いたら お役に立てるのかなと思案していたところ、目に止まったのが 神山さんのNetBSD/mac68k徹底入門でした。
ちょっと前から、本屋さんで目に付けていた本なのですが、NetBSDを初めてインストールする時につまずきそうなところが詳細に説明されています。このような本が、駅前の書店で売られているとは、隔世の感があります。
(昔は... NetBSD 0.9のCD-ROMを買いに秋葉原に行ったけど なかなか見つけられなかったとか、NetBSD 1.0のころは、Ctrl+b とかを入力すると ターミナルがよくロックしてしまって emacsを使っているとひどいめにあったなあとか... ちょっと回顧録モード)
この本を楽しく読まさせて頂きましたが、ちょっと力技かなと思われるところがあったので、その辺りについて書いてみたのが、このページになります。

P.S.
このページを書きながら、ちょっと UNIX USER 1998.9. の vol 54 を見てみると NetBSD1.3.2 が入っていて カーネルのソースも含まれています。それから、ソース版パッケージ pkgsrc.tgzも(FreeBSDのportsの相当)入っています。というわけで、このCD-ROMを使っても良いでしょう。(世はすでに、1.3.3ですが :-)
 
おわり ;-)



<< 参考資料 >>
・NetBSD/mac68k徹底入門:著者 神山文雄著/ISBN4-88135-618-6/2800円
・CD-ROM: UNIX USER  1996.9 vol.30 (NEmacsのソースコード)

作成:1999.3.14.

[Topページへ戻る]

(c) 1999 Shigeki Yahaba, All rights reserved.