>>
Make World
|
FreeBSD On ThinkPad X60
Kernel Configration |
Make world をする前に
カーネルコンフィグレーションファイルの準備をする。
インストールの際にインストールされるカーネルは GENERIC カーネルと呼ばれ、 もっとも一般的で汎用性の高い構成となっている。 システムを運用していく上で問題が発生しなければ、 このまま GENERIC カーネルを使用しても差し支えないのだが、 汎用性を高くするために不要な設定やドライバがカーネルに含まれているので、 メモリを圧迫してしまうし必要な機能が有効になっていな場合もあるので 不要な機能を削除したオリジナルのカーネルを構築する。
LINT ファイルを参照するとカーネルの構築時に設定ファイルで定義できる項目を 容易に調べられるので作成しておく。 LINT はカーネルのコンフィグレーションディレクトリで make LINT を実行すると、 カーネルのリリースノート (/usr/src/sys/conf/NOTES) から 自動的に作成される。
カーネルの設定は相反する指定があるので LINT に記述されている項目を 全て指定してカーネルを構築しようとしても失敗する(と思う)。
FreeBSD をインストールするとカーネルのソースは /usr/src/sys 以下に展開され、 コンフィグレーションファイルは /usr/src/sys/i386/conf 以下に置かれる。 GENERIC というファイルが GENERIC カーネルのコンフィグレーションファイル、 GENERIC.hints というファイルが GENERIC カーネルの hints file なので、 任意の名称のファイルにコピーする。
ホスト名を全て大文字にしたファイル名とするのが一般的。
カーネルのコンフィグレーションファイルを任意のエディタで編集して カーネルの構成を定義する。 基本的には不要なオプションやドライバを削除し、 必要なオプションやドライバを追加する。 場合によっては、各ドライバの使用する割り込みや I/O バッファのアドレスを指定する等のオプションを変更したりする必要もあるが、 ThinkPad X60 の場合は不要だった。
以下に現在使用中のカーネルコンフィグレーション概要を示す。
インストールの際にインストールされるカーネルは GENERIC カーネルと呼ばれ、 もっとも一般的で汎用性の高い構成となっている。 システムを運用していく上で問題が発生しなければ、 このまま GENERIC カーネルを使用しても差し支えないのだが、 汎用性を高くするために不要な設定やドライバがカーネルに含まれているので、 メモリを圧迫してしまうし必要な機能が有効になっていな場合もあるので 不要な機能を削除したオリジナルのカーネルを構築する。
LINT
現在のカーネルで指定できるデバイス名やオプション等を全て網羅した カーネルの設定ファイルを LINT と呼ぶ。LINT ファイルを参照するとカーネルの構築時に設定ファイルで定義できる項目を 容易に調べられるので作成しておく。 LINT はカーネルのコンフィグレーションディレクトリで make LINT を実行すると、 カーネルのリリースノート (/usr/src/sys/conf/NOTES) から 自動的に作成される。
カーネルの設定は相反する指定があるので LINT に記述されている項目を 全て指定してカーネルを構築しようとしても失敗する(と思う)。
# cd /usr/src/sys/i386/conf # make LINT
Copy
最近の FreeBSD ではデバイスの設定は hints file と呼ぶファイルに設定するので、 オリジナルのカーネルコンフィグレーションファイルと hints file をコピーして、 自分の環境用のカーネルコンフィグレーションファイルと hints file を用意する。FreeBSD をインストールするとカーネルのソースは /usr/src/sys 以下に展開され、 コンフィグレーションファイルは /usr/src/sys/i386/conf 以下に置かれる。 GENERIC というファイルが GENERIC カーネルのコンフィグレーションファイル、 GENERIC.hints というファイルが GENERIC カーネルの hints file なので、 任意の名称のファイルにコピーする。
ホスト名を全て大文字にしたファイル名とするのが一般的。
# cd /usr/src/sys/i386/conf # cp GENERIC コンフィグレーションファイル # cp GENERIC.hints ヒントファイル
Edit
コピーしたコンフィグレーションファイルと hints file を編集する。カーネルのコンフィグレーションファイルを任意のエディタで編集して カーネルの構成を定義する。 基本的には不要なオプションやドライバを削除し、 必要なオプションやドライバを追加する。 場合によっては、各ドライバの使用する割り込みや I/O バッファのアドレスを指定する等のオプションを変更したりする必要もあるが、 ThinkPad X60 の場合は不要だった。
以下に現在使用中のカーネルコンフィグレーション概要を示す。
# cpu I486_CPU # cpu I586_CPU |
古いタイプの CPU 指定は不要なので削除 |
ident コンフィグレーション | コンフィグレーション名を指定 |
hints ヒントファイル | ヒントファイル名を指定 |
# makeoptions DEBUG=-g | デバッグオプションを指定すると動作が遅くなるので削除 |
# options INET6 | IPv6 は現状では使用しないので削除 |
# options MD_ROOT | メモリディスクを root ファイルシステムに使用しないので削除 |
# options NFSSERVER | NFSサーバの機能は使用しないので削除 |
# options NFS_ROOT | ルートディレクトリを NFS でシェアしないので削除 |
# device eisa | eisa デバイスは装備していないので削除 |
# device fdc |
USB 接続のフロッピードライブは SCSI として認識され、 通常接続のフロッピードライブは装備していないので削除 |
# device ataraid # device atapicd # device atapifd # device atapist |
IDE 接続の RAID/CD/FD/TAPEは使用しないので削除 |
# device ahb # device ahc : # device stg |
SCSIデバイスは使用しないので削除 |
# device amr # device arcmsr : # device twe |
SCSI 接続の RAID コントローラは使用しないので削除 |
# device ppc # device ppbus # device lpt # device plip # device ppi |
パラレルポートは装備していないので削除 |
# device de # device ixgb : # device xe |
X60 の場合は内蔵 NICに Intel PRO/1000 を使用しているので miibus、em を残してネットワークカードのデバイスは全て削除 |
# device wlan_ccmp # device wlan_tkip : # device wl |
無線 LAN ドライバは修正が入る可能性があるので 入換えを容易に行うためにモジュール可する |
# device slip |
Serial Line IP は(今時)使わないので削除 |
# device gif # device faith |
IPv6 は使用しないので削除 |
# device ural # device urio : # device rue |
常用する USB 周辺機器以外も削除 |
# device fwe |
FireWire 接続のネットワークインタフェースも削除 |
device acpi device cpufreq |
電源管理や CPU 周波数設定機能を利用するため追加 |
device acpi_ibm | キーボード上部のボリュームボタン等が利用可能になるので追加 |
device sound device snd_hda |
音を鳴らしたいので追加 |
device drm device i915drm |
オンボードのグラフィックチップの drm 機能を使用するため追加 |
option PSM_HOOKRESUME option PSM_RESETAFTERSUSPEND |
suspend/resume 後の USB リセット指定 |
option SMBFS option NETSMB option NETSMBCRYPTO option LIBMCHAIN |
Windows の共有をmount (8) したいので追加 |
option LIBICONV |
Shift Jis のファイルシステムを mount (8) した際に 日本語のファイル名を表示させるために追加 |
option SMP |
ThinkPad X60 は Intel Core 2 Duo プロセッサを搭載しているので SMP を利用するために追加 |
hints file を任意のエディタで編集してカーネルの構成を定義する。
シリアルポート、パラレルポートは装備していないので削除する。
以下に現在使用中のヒントファイル概要を示す。
hint.fdc.0.disabled="1" | FDD は使用しない |
hint.sio.0.disabled="1" hint.sio.1.disabled="1" |
シリアルポートは使用しない |
hint.ppc.0.disabled="1" | パラレルポートは使用しない |
Loader
起動時にカーネルモジュールの読み込みやカーネルパラメタの設定を行うために /boot/loader.conf に以下を追加する。
ucom_load="YES" uplcom_load="YES" |
USB シリアル変換ケーブルを利用するために追加 |
vesa_load="YES" | jfbterm を使用するために追加 |
ath_rate_load="YES" ath_hal_load="YES" wlan_load="YES" wlan_wep_load="YES" if_ath_load="YES" |
内蔵の無線LANを使用するために追加 |
netgraph_load="YES" ng_ubt_load="YES" |
内蔵の Bluetooth を利用する |
autoboot_delay="5" | 起動時のローダの待ち時間を 5 秒にする |
beastie_disable="YES" | 起動時のローダのメニュー画面を無効にする |
Copyright © 2007-2010 Mitzyuki IMAIZUMI,
All Rights Reserved.
Last Update: 4 Feb. 2010