Install step to FreeBSD(98)

1.FreeBSDへの要求

 これより私がFreeBSDのインストールにチャレンジした経緯を備忘録として公開して行きます。記録開始は西暦2000年9月上旬。
 もともと「古くなったPC-98NoteをモバイルPCとして軽快に利用できないか」と考えておりました。Linux98プロジェクトの進行は一旦停止したものの、Plamoへ引き継がれたようで、その進展も注目していた訳ではありますが、すでにLinuxにはある程度触れていることから、FreeBSDへと進みます。
 FreeBSDはLinuxの各ディストリビューションでも基本部分で利用されているモジュールが多いと聞いていました。従って「FreeBSDをこなせば、Linuxは目じゃない」なんて大それた考えもありましたが、実際触ってみると「何と優しいインストールインターフェースなんだ」と感じてしまいます。

 今回最初にインストールしたマシンのスペックを記述しておきます。
PC:NEC/PC-9821Ld350A2
CPU:i486SX/33MHz
Memory:20MB
HDD:350MB
NIC:BUFFALO LPC-T(10Base-T)

 マシンについては特に改造を行っておりません。Windows95の動作が鈍く、しばらくはLAN内のプリンタサーバーとして利用していましたが、今回実験用のPCとして利用することにしました。ちなみにCD-ROMドライブが無い為、LAN内のFTPサーバーを利用したネットワークインストールを試みます(これは失敗した為、最終的には変わります。後述。)。

2.RELEASE-2.2.6での失敗

 手元にUNIX User誌の付録CD-ROMがあったため、これを利用しようとします。しかしCD-ROMにはノートPC用のブートイメージがありません。そこでインターネットから入手することになります。
http://www.jp.freebsd.org/
 こちらからリンクを辿るといくつか発見できます。
http://www.tim.hi-ho.ne.jp/~kura/freebsd/index.html
 ここで見つけた[PAO98]をダウンロードし、イメージをFDへ落とします。
 RAWRITE.EXEを使用して起動用FDを作成。

 次に雑誌付録CD-ROMをLAN内のFTPサーバーにセット。ここからインストールし、パッケージを追加させようと目論みます。インストーラーでは「初心者」を選択し、パーティションも自動設定します。マルチブートの予定は無いため(そんな容量はありません・・・)、すべてをFreeBSDで利用するように設定。順序よく進んでいるように思えました。
 オプションパッケージを選択せずに、とりあえずFreeBSD環境だけを用意させてHDDからリブートさせた時の事です。「ネットワークカードが動作しない」と言う現象に遭遇します。どうやらPCMCIA自体が認識されていないようです。「手順を間違えたか?」ともう一度最初からやり直します。しかし、やはり再起動後にネットワークへ入ることが出来ず、DHCPからアドレスをもらう事が出来ません。「こりゃまずい」とインターネットを検索します。
 しかし、あまり98ノートへの事例は多くなく、情報は非常に乏しいようです。しばらく悩んだあげく、今度はインターネットからインストールする方法を選択します。が、しかし「シグナル11問題」に遭遇する事になります。
 これはCPUやメモリに依存する問題のようですが、はっきり言ってインストールは成功しません。ここで一旦頓挫します。

 カーネルを再構築すれば、うまく行ったのかも知れません。しかしHDDにも余裕のないこのPCではすべてのソースをコピーする事も勇気が必要なため、とにかく回避策が見つからない2.2.6をあきらめる事にします。

3.友人の助け

 自分が運営する掲示板に「誰かFreeBSD(98)が入っているCD-ROM持っていませんか?」と書き込んだところ、友人の一人が「2.2.8なら持っている」と返事をくれます。いささか期待しますが、インターネットの情報を統合すると、2.2.xRではシグナル11問題が解消されてはいない様子でした(もちろん私の調査不足かも知れません)。

 そこでインターネットからのネットワークインストールを覚悟し、3.4Rまで上げてみる事にします。と言うのもPAO98(インストール用ブートイメージ)で最上位が3.4Rだったからです。

4.RELEASE3.4Rでのインストール

 PAO98を入手し、ブートイメージを作成します。今度はKernelとMFSの二枚が必要。コンソールの指示通りに進むとインストーラーが起動します。起動直後に「ネットワークカードを認識」と表示され、媒体を選択できます。「これは大丈夫かな?」と期待しながら、必要なパッケージなどを選択してインストールへ進みます。
 FreeBSDのインストーラーは、通常 /stand/sysinstall のようです。実際にはセットアップが完了してからもUserの登録などで再度利用できるため、非常に重宝します。

 インターネットからインストールすると、選択するパッケージ類にも左右されますが、6時間から8時間くらいはかかってしまいます。ftpサーバーにはかなり負荷をかけてしまったと今更後悔していますが、おかげで素晴らしい体験が出来たことで感謝しております。

 すべてのコピーとインストールが完了すると、最後の設定に入ります。rootパスワードやユーザーの追加などを終え、期待の再起動です。前回はこの後に大混乱でした。

 再起動すると、難なくPCMCIAを認識。LANカードも認識され、IPアドレスを取得してきます。しかしここで完了ではありません。パッケージはあまり多く選択しておりませんでしたので、追加のインストールが必要なのです。一応この段階ではFreeBSDを起動できて、sedmailも内部で稼働しています。Perlも5.003?が入っていますがWebサーバーは入れてなかったのでhttpdは動きません。

 最初はcのコンパイルから試してみました。これは特に問題なし。出来上がったモジュールは掲示板システムを動かすものだったので、その後apacheを入れます。これもインストーラーから選択すると簡単に入ってきます。httpd.confをちょいと触って動き出します。
 LAN内から、アドレスをたたいてアクセスすると恒例のページが表示されます。後はイタズラを尽くすだけ(笑)

5.X Window Systemへの夢

 XF98SetupでXサーバーの設定へ進みますが、設定が無事に終了したにも関わらずXが起動しない。そもそもウインドウアクセラレータを搭載していない機種なので、ダメなのかと半ばあきらめかけていたのですが、とにかく何とか動かしてみたくて、何度も何度もチャレンジします。
 XF86Configを直接触る事はあえてせずに、XF98Setupで挑戦し続けます。
 しかし1週間経過しても起動できず、とりあえず中断する事にします。

 その後会社にもう一台低スペックの98ノートPCがある事に気がつきます。今度はこいつでチャレンジします。
PC:NEC/PC-9821La7/D5
CPU:Pentium75MHz
Memory:40MB
HDD:540MB
NIC:BUFFALO LPC-T(10Base-T)

 このPCもCD-ROMドライブを持っていません。ネットワークインストールを決定。Ld350と同様にftpサイトからダウンロードしながらインストールしますが、やはり時間はかかります。
 HDDの容量が少し大きいため、欲を出して一度にパッケージを選択しすぎて、最初は失敗。次からは再起動まで順調に進みます。
 ところが問題発生。このノートPCはウインドウアクセラレータを搭載しているはずなのに、その通りに設定してもXが立ち上がってきません。仕方なくPEGCで設定を完了し、X起動時のエラーを確認します。どうやら水平周波数が合わない様子。そこでXF86Configを修正します。水平周波数の幅を広げてstartxを呼び出すと・・・起動しました。98ノートでX Window System初体験です。ウインドウマネージャーはKDEを選択しています。WebエージェントはNetscape、日本語も使いたい為、Cannaサーバーを入れています。欲を出してICQも入れてしまいました(爆)
 smtpクライアントはどれを選んでよいのか分からず、結局まだ利用できていませんが、とにかく今のところXは多少のリソース不足を感じながらも動いています。

 ・27/Oct 補足
 La7のX Window System設定について(XF98Setup)、何度か再インストールを試してみて分かった事は、そもそもこのPCのウインドウアクセラレータがTridentであるにも関わらず、TridentServerは標準設定ではノート用では無いように感じる。従ってX設定では、ビデオカードをTridentとして選択しながらも、PEGCサーバーとして稼働させるとXF86Configを触る事なく一発でXが起動してくる。

6.何気なくX Window System

 中断していたLd350のXですが、実は結果的に動き出しました。どういう設定を施したのかは覚えていません(爆)
 夜、Windows98マシンでインターネットしている際に、東京の友人とICQでメッセージを交わしながら、となりに置いたLd350をいじっていた時の事です。何度も設定を繰り返すうちに「余計なところまで触るからまずいんじゃないか」と考えるようになり、XF98Setupでは大した変更もせずにほぼ初期設定のままで保存します。おもむろにstartxをたたくと・・・上がってきたのです。twmです。
 その後ウインドウマネージャーはFVWM95に変更し、またまた懲りもせずにICQをインストール。ブラウザも入れて後はメーラー、と言うところで止まっています。やはりメールクライアントでスムースに日本語が利用できていません。もう少し勉強しなきゃ。


 偶然にも私が利用したLd350やLa7でFreeBSDあるいはXFree86を動かそうと言う方がいらっしゃいましたら、こちらのXF86Configなどの設定情報はいつでもお知らせします。稼働実績を公開するサイトへ登録しようと考えているのですが、登録フォームへたどり着くことが出来ません。情けない。。。


 こうやって「FreeBSDでモバイル作戦」はかなり進歩したと自負していますが、まだまだこれからです。486/33MHzではWindows95よりは速く感じるものの、やはり不安定になります。最低でもPentium75MHzは必要でしょう。またメモリも多いに越したことはありません。20MB程度でXを立ち上げるのは勇気が必要だと痛感しています。
 とにかく今は時折Xで戯れ、普段はWebサーバーとしてCGIの学習に利用するようになっています。今後も変化があればこのページで公開していきます。

7.Kernel再構築 これ以降の記録は、西暦2000年10月下旬です。再インストールの繰り返しにより環境は変化しています。

 NEC98ノート(PC9821)だと、kernelはPAO98となっている。このPAO98を再構築する。
 FreeBSDが正常に起動している段階で、dmesgをプリントアウトする。すると[not found]と表示されるデバイスがいくつか存在する事に気がつくだろう。再構築はこういった未装備のハードウエア情報などを削除し、デバイスへのリソース割当やメモリへの配置を節約できる。正確に計測していないが、おそらく起動時間にも差が出てくるはずである。
 まずは現在使用しているkernelの大元を見つける。こちらでは/usr/src/sys/pc98/conf に PAO98が存在した。このPAO98を適当な名前をつけてコピーする。こちらではachiPAOと命名(謎)
 早速エディタで展開する。

  明らかに不必要と思われるデバイスは、あっさりとコメントアウトしておく。このとき焦って削除しないように気をつけよう。万が一再度kernel構築が必要になった場合に、周辺機器の増設などに対応できなくなる。
 一般的に不要と思われるのは、フロッピーディスクの3番や4番(fd2,fd3)、IDE120MBFDDやSCSI周り。利用しないネットワークカードのデバイスドライバはすべてコメントアウトする。

 それではソースツリーの作成。
config achiPAO
で開始。これはすぐに終わる。最後に「どこそこにディレクトリ作った」と言う情報が出るので、その指示の通り移動する。こちらの環境では、../../compile/achiPAO と出た(笑)
 いよいよコンパイルだが、これは結構長時間を要する。今回使用したLa7だと小一時間はかかったのではないか。昼食時間などは手頃かも知れない。
make depend; make
 で開始。長い戦いになる。異常があれば途中で失敗するだろうが、通常は問題ないはず。warningが何カ所か出てくる事もあるが、コンパイルは出来るので、とりあえず気にしない。終了後はインストール。
make install
これで今までのkernelはkernel.oldとしてバックアップされる。緊急時には必要になるので絶対に削除しないことだ。
shutdown -r now
で再起動しよう。

 もし万が一問題があった場合、例えば必要なデバイスまでコメントアウトしてしまったなどがあった場合は、もう一度挑戦する事になる。起動時に問題が発生した場合は、元のkernelで起動する。
Boot:のプロンプトで、ちょいと手作業。
Boot: wd(1,a):kernel.old
起動後、
chflags noschg /kernel
mv /kernel /kernel.new
cp -p /kernel.old /kernel
chflags schg /kernel
kernelを元に戻したので、再度挑戦する。

8.KDE日本語化への挑戦

 ノートPCは、HDDに余裕が無い事もあって、各種サーバーとして機能させる事はかなり難しい。当初の計画通りモバイルPCとしての復活を願うことにするのだが、問題は日本語での表示&入力である。
 FreeBSDのインストール及び設定段階では、OSが起動できるところまで進み、カーネルの再構築まで進めばまず安心。次にX設定を行い、Xが安定して起動できる事を確認できれば、当然とは言えるが「やっぱりデスクトップは個性的に飾ろう」って事になる。今回La7を対象にKDEを選択した。例によってHDDの余裕が無い事から、Gameなど不必要と思われる物は導入しない。Konquerorと呼ばれる、ウェブブラウザ, ファイルマネージャ, ドキュメントビューワなどのツール群についてのみ充実させようと考えた。
 各種の情報は、http://www.kde.gr.jp/ から辿ると入手できる。

 今回のセットアップはKDE1.1.1。セットアップが完了した翌日(23/Oct/2000)に2.0がリリースされているが、日本語は未対応だと判断し当面は見送る事にする。

 主目的は「ブラウザ」「電子メール」「メッセンジャー」「チャット」の日本語化である。すでにKTermとGTKICQとircIIは日本語化が完了しているため、ブラウザとメールに限定される。Netscapeは過去にも何度も触ったが、やはり重いので今回はパス。念のため日本語化に必要なものを列記しておこう。

 日本語を利用する為に、FreeBSDのインストールが完了した段階で、/stand/sysinstall の「設定」−「パッケージ」から選択した物は以下の通り。
ja-Canna-3.x.x
ja-Kinput2-canna-2.x.x
ja-Kterm-6.x.x
ja-less-xxx
ja-man-1.1g
ja-man-doc-2.2
ja-mule-canna-x.x
ja-nkf-1.62
ja-tcsh-6.08.00

 まず、X Window System自体はX11R6が国際化されている事によって、各国語に対応しているそうだが、個々のプログラムがそれぞれの国の言葉に対応していないケースが多い。従って対応しているソフトに切り替えるなどの作業が必要となる。上のリストからも分かるように、標準で起動するXtermは利用せずにKtermに変更するなどの対処が必要となる訳だ。
 さしあたって環境変数から取りかかる。

○.cshrc
 ホームディレクトリの.cshrcの中へ、
setenv LANG ja_JP.EUC
を追加する。次に、
setenv PAGER /usr/local/bin/jless
に変更。

○.xinitrc
 Xを起動したときに、標準のtwmではxtermが起動する。これは、/usr/X11R6/lib/X11/xinit/xinitrcを使用して起動されるのだが、このファイルをホームディレクトリへコピーする。この時ファイル名を、.xinitrc とする。
twm &
kinput2 -canna &
xclock -geometry 50x50-1+1 &
kterm -geometry 80x50+494+51 &
kterm -geometry 80x20+494-0 &
exec kterm -geometry 80x10+0+0 -name login
と修正してしまおう。

○.Xdefaults
 ktermで日本語を利用できるようにするために、ホームディレクトリに .Xdefaults と言うファイルを作成する。ktermのリソース定義をし、デフォルトでEUC表示、仮名漢字変換を利用可能とする。
KTerm*VT100*kanjiMode: euc
KTerm*VT100*openIM: True

 これだけでも十分かと考える。さて、いよいよKDEへ進もう。

 KDEの起動

 /stand/sysinstall で「設定」−「XFree86サーバーの設定」から「KDE環境」を選択し、必要なパッケージを入手しインストールする。この時[i18n]とついたパッケージを目にする事になるだろう。そもそもこれは何だろう?
 [ixxn]と言う表現は、「[i]と[n]の間にxx文字ありますよ〜」 って言う表現らしいのだが、[i18n]はそもそも、[Internationalizasion]の略語だそうだ。つまり、「プログラム本体を書き換えることなく,リソース部分の変更のみでどこの国でも使えるようにすること」らしい。って事はこいつを落としておけば日本語が使える、って事。あ、もちろんこれだけでは無いから安心して下さい(笑)
 「国際化プログラミングでは,地域によって変化する情報を上手に切り替えて処理する必要があります。そのため,UNIXでは地域の言語環境をlocale(ロケール)で定義し,それに応じてさまざまなカテゴリの情報を切り替える」と言う事なので、local情報が必要な訳です。今回の場合は、日本語を表示したり入力したりする為に、「フォント」の定義情報や実際に表示する為の「フォントセット」が必要と言うことらしい。

 まあ、とにかくインストールしてみよう。インストールが無事に終了したところで、おもむろに[startx]と入力すると、これまで起動していたtwmに替わって、KDEが起動する。最初はKDE用の設定情報が存在しない為、起動には若干の時間を要すると思われる。デフォルトConfigを読み込んでホームディレクトリに作成するらしく、かなりの量の新規ファイルが出来上がる。

 起動直後はメニューなどが文字化けしている可能性もあるが、これはフォントセットの認識が正しくない為だと思われる。必要な情報を定義するときちんと直るので慌てないで欲しい(と何度も自分に言い聞かせた・・・)。

 必要なものその1:FreeBSD+XFree86環境のKDEで日本語表示をするに適したフォントは、netscapeが用意する定義情報らしい。そこで、/stand/sysinstall から、ja-netscapefontを落としておく。
 必要なものその2:ホームディレクトリに[.qti18nrc]でフォントを定義しておく。こちらの環境では、
fixed -netscape-fixed-*-*-*--14-*-*-*-c-jisx0201.1976-0,\
   -netscape-fixed-*-*-*--14-*-*-*-c-jisx0208.1983-0
*  -netscape-fixed-*-jisx0201.1976-0,\
   -netscape-fixed-*-jisx0208.1983-0
としている。
 必要なものその3:.xinitrcでのKDE環境追加。ホームディレクトリに無ければコピーする(上述)。
#! /bin/sh
export LANG=ja_JP.EUC
export XMODIFIRES='@im=kinput2'
exec startkde &
kinput2 -canna &
kterm -geometry 70x30+0+25
としてXを起動することでインタフェースだけでは無く、入力として日本語漢字変換が利用できるようになる。

 必要かも知れない:XF86Configで不必要なフォント定義もあるらしい。TrueTypeなどを入れたい場合は、また異なるとは思うが、こちらの環境ではFontPathの一部をコメントアウトした。10行程度あるFontPathの後半5行をコメントアウト。

 さて、この状態で「日本語KDE」が起動しないかな?
 こちらの環境では、これらの設定ですべて軽快に動作しています。

 参考にはならないスナップショット拡大 44kb


 この記録に誤りがあれば、随時修正します。

スタートページへ