next up previous contents
Next: 6.2.3.2 カーネルコンフィグファイル Up: 6.2.3 FreeBSDのカーネル構築 Previous: 6.2.3 FreeBSDのカーネル構築

6.2.3.1 XCAST用カーネル再構築の手順

  1. コンフィグファイルの編集

    /usr/src/sys/i386/conf に移動して、root になる。 GENERIC がオリジナルのファイルなので、これを別のファイルに コピー( ex. cp GENERIC mykernel)し、絶対にGENERIC はいじらない ようにします。この例では、 MYKERNEL ファイルを編集します。 基本的には、必要のないドライバ が記述された行の先頭に # を入れれば良い( # は 以下行末までがコメントであるという記号)。

    また、あらたなものを加えたい場合にはそれを書き加えるだけである。どの ようなものがあるかは、NOTES などを見る必要がある。(実際には 該当行をコピーするのがタイピングミスがなくて良いだろう。今の場合には、 GENERIC_XCAST からコピーする。)

  2. カーネル再構築の準備

        /usr/sbin/config MYKERNEL
    
    を実行すると、自動的にカーネル再構築のためのディレクトリやファイルの 準備をしてくれる。自動生成されるディレクトリは、このコマンドの実行後に 表示され、例えば、
        kernel build directory is ../compile/MYKERNEL
    
    と表示される。

  3. カーネル再構築

    先に表示されたディレクトリに移動して、次の2つのコマンドを実行する。

        cd ../compile/MYKERNEL
        make depend
        make all
    

    最初のコマンドは、ファイルの依存関係を自動的に検出し、ソースを調整して くれる。次のコマンドの実行で、実際にコンパイルが始まり、カーネルまで 作成してくれる。

  4. カーネルのインストール

    インストール作業も次のコマンドで自動的に実行される。

        make install
    

    この時に、新しいカーネルが /boot/kernel/ としてインストされ、 古いカーネルは /boot/kernel.old/ ディレクトリに自動的にリネームされるが、 カーネルのインストを何度も行うと、/boot/kernel.old/ は上書きされ てしまうので、以前のカーネルを残した場合には、

        mv /boot/kernel.old /boot/kernel.org
    

    に変更しておく。こうしておくと、現在、動いているカーネルは /kernel.org として保存されるので、万一新しいカーネルで ブートできなかった時にも、このカーネルを使って再起動する事が 出来る。

  5. 再起動と立ち上がらない場合

    カーネルインストールが成功すれば、後は再起動して動くかどうか見てやれば よい。もし、起動しなければ、リセットして再起動し、9 秒間システムが待って いるときに、リターンキーの代わりにスペースキーなどを押すと、ok が表示される。 ここで、以下のように入力すると、先に保存した /boot/kernel.old/ から立ち上げることが出来る(あるいは、/boot/kernel.org/から)。

            ok unload
            ok load /boot/kernel.old/kernel
            ok boot
    

    勿論、このようにして /boot/kernel.old/からリブートした場合には、 カーネル再構築が失敗している事になるので、もう一度最初の 手順からやり直さなければならない(この時に必ず先に注意したように、 kernel.org ディレクトリにまともなカーネルを退避しておかないと、二度と ブートしなくなるので注意が必要である。)

    再起動する際の注意点としては、 loader prompt に行くには、6 を選択すれば良いのだが、 待機時間を超すと起動してしまうので、先にスペースを押すとタイムカウントが 停止するので、しかる後にゆっくり入力すれば良い。

    \epsfile{file=bsdboot,scale=0.5}

  6. 再起動後の作業

    以下のように uname -a を実行し、表示される文字列が自分が新しく作成 したものか(今の場合には MYKERNEL)どうかを確認する(GENERICだと、カーネル が再構築されていない)。

        # uname -a
        FreeBSD localhost 5.4-RELEASE FreeBSD 5.4-RELEASE #1: Thu Aug 2 13:00:00 JST
        root@localhost:/usr/src/sys/i386/compile/MYKERNEL i386
    



Noriyo Kanayama