FreeBSD QandA 1501

FreeBSD QandA

Q. FreeBSD 3.x でカーネルを再構築した後、新カーネルで起動すると起動中に無
   効にしたはずのデバイスに関する以下のようなメッセージが表示されます。な
   にが原因なのでしょうか。

   config> di psm0
   No such device: psm0
   Invalid command or syntax.  Type `?' for help.
   config> di ppc0
   config> di zp0
   No such device: zp0
   Invalid command or syntax.  Type `?' for help.
   config> di ze0
   No such device: ze0
   Invalid command or syntax.  Type `?' for help.

   (上記の例では /sys/i386/conf 以下のカーネル設定ファイルで無効にしたデ
    バイスは psm0、zp0、ze0 です)

A. 最初のインストールのとき、以下の Kernel Configuration Menu が出てきた
   と思いますが、

      Skip kernel configuration and continue wiht installation
      Menu Start kernel configuration in Visual mode
      Startkernel configuration in CLI mode

   のうち、

      Menu Start kernel configuration in Visual mode 
      あるいは Start kernel configuration in CLI mode
   を選んでインストールしませんでしたか?

   3.x ブランチでは、インストール時にこれらのモードを使ってデバイスを非活
   性にするとその情報を /boot/kernel.conf に書き込みます。そして、インス
   トール直後の GENERIC カーネルはそのファイルの情報を元にデバイスを非活
   性にします。([管理番号 1255] 参照)。

   新しいカーネルを作成した場合、たとえば psm0 を削除したカーネルでそのま
   ま起動をかけると /boot/kernel.conf を読み込んで psm0 を非活性にしよう
   としますが、カーネル自体に psm0 のドライバが含まれていないため

      config> di psm0
      No such device: psm0
      Invalid command or syntax.  Type `?' for help.

   となるわけです。

   FreeBSD 3.x において、自分で作った新しいカーネルを使う場合は、カーネル
   構築後、/boot/kernel.conf の内容を消去する
   (方法は色々ありますが、例えば
      cp /boot/kernel.conf /boot/kernel.conf.old
      cp /dev/null /boot/kernel.conf
   ) か、/boot/loader.confの userconfig_script_load="YES" を "NO" あるい
   はコメントアウトするなりして /boot/kernel.conf を起動時に読み込まない
   ようにして下さい。

   また、逆にカーネルに組み込んであるデバイスを臨時に非活性にしたいような
   場合は /boot/kernel.conf を編集すればOKです。たとえば、セカンダリの 
   IDEコントローラを (wd1) を非活性にしたい場合は次のようにします。

      di wdc1
      q

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。