Entry

FreeBSD インストール後 - 第1回

2004年03月17日

ごたごたしながらも,FreeBSD 5.2.1 Release が我が家にやってきました。

以前入れていたリリースは 5.0R から make world したものだったので,しばらくぶりのクリーンインストールです。インストールした実感としては……庶民的にはあまりないですね。身の回りがきれいになったから気持ちいいですけど。

ところで,PC-UNIX が流行ってるってことでインストールしてはみたものの,その後何をしていいのか分からなくて,結局 Windows に戻っちゃったりする方,結構いるんじゃないでしょうか。私はそのクチでした。そこで,今回せっかくインストールし直したこともあるので,これから何回かに分けて,基本的な環境を作るまでの作業を,解説風にメモしておきます。

今回は,「環境作りの概要」と「カーネルの再構築」です。

インストール後にやること

FreeBSD は,大半の Linux ディストリビューションと違って,極々基本的なものしかインストールされません。Linux でいうと,インストール直後の環境は,Plamo や Slackware に近いです。こういうところが FreeBSD の取っつきにくいところなんでしょうけど,使い慣れてしまうと必要なものだけをインストールできる分だけ,自分の環境にしっくり合わせることができます。

我が家の場合,以下の順番で作業して,基本環境を作りました。

  • カーネルの再構築
  • ネットワーク周りの設定
  • 基本的なデーモンの起動
  • ユーザのホームディレクトリを構築する
  • X の設定
  • Ports/Packages からアプリケーションをインストール
  • その他,こまごまと調整

UN*X では,「システム管理としてやること」と「一般ユーザとしてやること」とが,比較的きれいに区別できます。ですから,インストールするときは,自分がシステムをいぢっているのか,単に一般ユーザとしていぢってるのかを,脳内で切り替えながら作業すると比較的整理されます。今回は基本環境を整えることもあって,「ユーザのホームディレクトリを構築する」ところ以外は,もっぱら「システム管理」に当たります。

また,作業する順番は,基本部分から順番に周辺部分に広げていく感じでやるのが効率的です。「カーネルそのもの」をいぢって,標準的なデーモンを立ち上げて,標準添付されている環境(X)を設定して……というように中心から作っていくと,途中で作業をやめても,その段階のシステムとしては最低限成立するように作れるわけです。いきなり,Package から入れたりすると,ネットワークが設定できてなくて skkserv がコアダンプしちゃったり,カーネルオプションがないせいで mplayer が使えなかったりと,結局迂遠な道を歩くことになってしまいます。

もっとも,これは結果論のようなところがあって,インストールする前からインストール後のシステムを,全て把握しておくことは難しいと思います。きれいにまとめると上のリストのようになるんですけど,実際は,あれやこれやと横断的にやってるような気がします。

カーネルの再構築

まずは何よりカーネルを再構築します。カーネルの再構築というのは,平たくいえば FreeBSD をコンパイルし直すということです。OS をコンパイルするなんて Windows では想像もつかないことですけど,ハードウェアが OS をぴったり着こなすには,必要な作業です。

サーバを運用するときは,ある程度細かくカーネルを作る必要があるようですけど,ここではデスクトップで運用するだけなので,必要なものを付けて不要なものを除く位のことしかしてません。

設定ファイルを編集する

作業は root になってからやります。

カーネルを再構築するには,設定ファイルにコンパイルの設定を書く必要があります。このファイルは,全部書く必要はなくて,GENERIC カーネルの設定ファイルを加工するのが普通です。次のようにして,自前の設定ファイルを作りましょう(ここでは,MYKERN という名前にします)。

# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERN
# ee MYKERN

vi みたいな洒落たエディタじゃなくて,操作が簡単な ee を使ってますけど,恥ずかしいことでもなんでもありません(……と信じたい)。以下は編集例です。

初めに,カーネルの名前を書いておきます。この設定がどういう風に反映されるのかは,よく分ってないんですけど,書き換えるお約束なので,

ident        GENERIC

となってるのを,

ident        MYKERN

に書き変えておきます。

次に,具体的な設定に移ります。まず,mplayer を使いたいので,SSE 命令を有効にするオプションを付けます。以前,mplayer を使うためには,`USER_LDT' なるオプションも付ける必要があったんですけど,5.2.1R には標準で組み込まれてるらしくて,付ける必要はありません(←何をやるオプションなのか分かってない)。付けたら,「そんなオプションないっ!」と怒られちゃいました。

options        CPU_ENABLE_SSE    # enable SSE

さらに,`shutdown -p now' みたいにして,ソフトウェアから電源を落としたいので,apm デバイスを有効にします。もっとも,GENERIC カーネルでも,APM デーモンを有効にしたら電源を落すことができちゃったので,やる必要はないかもしれません。カーネルモジュールか何かで有効になってるんでしょうか。apm は,カーネルを作り直すだけじゃ駄目で,後で APM デーモンを有効にする必要があります。

device         apm

最後に,音が出るようにサウンドカードのデバイスドライバを組み込んでおきます。うちのサウンドカードは i815 のマザーボードにくっついてきたもんですけど,ほとんどのサウンドカードは pcm で動くと思います。

device         pcm               # Sound Card device

カーネルに付けるものはこれだけです。あとは,残すものと削るものを選んでゴニョゴニョしてますけど,一般的な設定じゃないので,適当に列挙だけしておきます。

  • SCSI 関係は使わないので,次のものを除いて SCSI カードのドライバを全て削る。
  • たまに USB 経由で Compact Flash を読むことがあるので,umass (USB mass storage driver)が依存している SCSI の da(SCSI Direct Access)ドライバと scbus(SCSI bus)ドライバを残しておく。
  • 有線 LAN に sis を使っているので,これを残して後は全部削る。今のところ,どこにもつながってないんですけどね。
  • 無線 LAN には wi を使っているので,これを残して awi なんかを全部削る。
  • あとは,しらみつぶしに ATAPI のフロッピーディスクドライバなんかを削ったりしてみる。

一応参考までに,我が家で作った設定ファイルを紹介しておきます。ただ,個々のハードウェア環境によって書き方が変わるので,あくまでも参考ということにとどめてください。この設定ファイルで絶対に動くという保証はありません(動かない可能性の方が高いかも……)。

設定ファイルの編集内容については,設定ファイルのあるディレクトリに NOTES(昔は LINT だった)というファイルがあります。英語だけど,詳しい設定方法が書いてあるのでご一読を。

ビルドする

設定ファイルを書いたら,実際にカーネルを作ります。エディタを閉じて,次のようにします。

# config MYKERN

config コマンドは,編集した内容に誤りがないことを確かめると,Makefile というファイルを作ります。このファイルは,ビルドに必要な命令がまとまっているファイルです。無事に Makefile ができたら,以下のように叩きます。

# cd ../compile/MYKERN
# make depend
# make
# make install

上から順に,「コンパイル用のディレクトリに移動」,「ビルドの準備」,「ビルド」,「ビルドしたカーネルをインストール」といったことをやってます。なお,5.2.1 では,コンパイル用のディレクトリが変わりました。config した後に移動するディレクトリが示されるから問題ないでしょうけど,いつもの癖で,

# cd ../../compile/MYKERN

とかすると,怒られてちょっと切なくなります。

時間がかかるので,叩いたら放っておきましょう。我が家のハードウェア環境(Pentium III 866MHz,RAM 512MB)では,全部終わるまでに20分弱かかりました。make コマンドをいちいち打ち直すのが面倒な場合は,まとめて

# make depend && make && make install

とすれば,インストールまで突っ走ってくれます。

通常,confg コマンドでエラーが出なければ,make でエラーは出ないんですけど,運悪く途中でエラーが出たら,ビルドは止まってしまいます。設定ファイルに誤りがないか,もう一度確かめて再挑戦してください。

カーネルビルドが終わったら……

無事にビルド・インストールが終わったら,新生 FreeBSD を走らせてみましょう。インストールは済んでるので,再起動すれば走ります。再起動するには,

# shutdown -r now

と,叩きます。あ,知ってますか。

新しいカーネルは走ったでしょうか。途中でハングアップしたりパニックを起こしたりする場合は,ビルドには成功したけど,変な OS ができちゃった印です(「腐ったカーネル」ができるというらしい)。経験上滅多にないけど,こうなったら諦めて,もう一度カーネルを作り直します。ハードウェアから再起動して,初めに使ってた(GENERIC)カーネルを復活させます。

5.2.1 Release では,ブートするときに ASCII キャラクタでデーモン君が出ます。このときに,すかさず "6" 番を選択すると(あわてる必要はないんですけど),ブートプロンプトが出るので,

boot kernel.old

と叩きます。こうすれば,以前の GENERIC カーネルで起動することができます。初めに戻ってビルドをやり直しましょう。

参考資料

今回は,カーネルビルドのお話でした。足りないところは以下のサイトを参考にしてください。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN