dohzono@hf.rim.or.jp () writes:

> ドキュメントも「make world してからカーネル作れ」というのもあれば「カー
> ネル作ってから make world しろ」というのもありさっぱりです. 

古いバージョンに対して書かれたドキュメントを参照してしまったとか
ではないでしょうか。

4.x のソースにある UPDATING には

  make buildworld
  make buildkernel
  make installkernel
  reboot
  make installworld
  mergemaster
  reboot

とか書いてあると思います。buildkernel では作成に使用する環境が
buildworld で作られるものを使用したりするので順番は絶対です。
installworld の過程では古い kernel で動作しないバイナリに置き換えられる
ケースがあるので、それ以前に新しい kernel での起動が必要です。

他にも注意する点があったりしますから、4.0R -> 4.8R という大きな
upgrade をする時には一通り読んだ方が良いと思います。

# 4.0R -> 4.8R が大きいかどうかは FreeBSD を追いかけていない
# 人にとっては自明じゃないといわれればそのとおりですが、
# それならなおさらのこと UPDATING は読むべきです
# (4.7R->4.8R という小さな upgrade であっても)。

> 一体こういうバイナリはどうやって出来るのでしょうか?

関係あるかどうかはわかりませんが、UPDATING にはこんな記述もあります。

20000706:
        Binutils were updated.  In order to build a kernel after this
        date, you must follow the updating procedure for building
        kernels exactly as presented here.  You may be able to get away
        with doing it the old way, but if it breaks, make sure that you've
        tried the "To build a kernel" section with a fresh /usr/obj
        first.

> # 4.0R からは cvsup 自身もまともに取ってこれなかったので適当なバイナリ
> # を持ってきて使ってます.

古い cvsup を使っていたりしないでしょうか。古い cvsup は例の10億秒問題
とかでファイルの新旧の判定を間違えるので、多くの CVSUP server では
接続を拒否するようになっていると思います。

-- 
森 浩二    (MORI Kouji)
(株)淺沼組 技術研究所
E-mail: mori@tri.asanuma.co.jp