Kernel Config

カーネルコンフィグレーションで余計な機能を落としてスッキリ!メモリ使用量も減少し、パフォーマンスもUPです。

FreeBSDのハンドブックカーネルコンフィグレーションに従ってカーネルの再構築を行います。

やりたいことは、

です。

モジュール組み込みを優先するのは、そちらで出来ると変更の際にカーネルリコンパイルが不要になるからです。
(モジュール組み込みはKernel Configにて)

元ファイル /usr/src/sys/i386/conf/GENERIC を/root配下に作成したkernelsディレクトリ直下ファイル名を任意(自分で分かるように)に変更してコピーします。

コピーしたファイルをコピー元ディレクトリにリンクしておきます。

# cd /usr/src/sys/i386/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/任意のファイル名
# ln -s /root/kernels/任意のファイル名

ではこのファイルを弄っていきます。

デバイスOFFするときのコツ

○○busとなっているのはそのbusを使用するデバイスを1つでも使用するならば絶対にOFFには出来ない。(コンパイル時にエラーになる)

SCTPはIPv6に依存しているらしく、IPv6が無いとコンパイルのリンク時に失敗する。(SCTPが不要ならIPv6もOFFできるがそこまで突っ込んで調べてないので。。。)

USBはモジュール化するので全OFF。

というわけで、削除しまくった結果がこちら。(表示行数を省くためコメントアウトではなく削除しています。元ファイルはもっとデカいんよ。)

cpu		I686_CPU
ident		PCGZ1VP

options 	SCHED_ULE		# ULE scheduler
options 	PREEMPTION		# Enable kernel thread preemption
options 	INET			# InterNETworking
options 	INET6			# IPv6 communications protocols
options 	SCTP			# Stream Control Transmission Protocol
options 	FFS			# Berkeley Fast Filesystem
options 	SOFTUPDATES		# Enable FFS soft updates support
options 	UFS_ACL			# Support for access control lists
options 	UFS_DIRHASH		# Improve performance on big directories
options 	UFS_GJOURNAL		# Enable gjournal-based UFS journaling
options 	PROCFS			# Process filesystem (requires PSEUDOFS)
options 	PSEUDOFS		# Pseudo-filesystem framework
options 	GEOM_PART_GPT		# GUID Partition Tables.
options 	GEOM_LABEL		# Provides labelization
options 	COMPAT_43TTY		# BSD 4.3 TTY compat [KEEP THIS!]
options 	COMPAT_FREEBSD4		# Compatible with FreeBSD4
options 	COMPAT_FREEBSD5		# Compatible with FreeBSD5
options 	COMPAT_FREEBSD6		# Compatible with FreeBSD6
options 	KTRACE			# ktrace(1) support
options 	_KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
options 	ADAPTIVE_GIANT		# Giant mutex is adaptive.
options 	STOP_NMI		# Stop CPUS using NMI instead of IPI
options 	AUDIT			# Security event auditing

# Bus support.
device		eisa
device		pci

# ATA and ATAPI devices
device		ata
device		atadisk		# ATA disk drives
device		atapicd		# ATAPI CDROM drives
options 	ATA_STATIC_ID	# Static device numbering

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc		# AT keyboard controller
device		atkbd		# AT keyboard
device		psm		# PS/2 mouse

device		kbdmux		# keyboard multiplexer

device		vga		# VGA video card driver

device		splash		# Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device		sc

# Add suspend/resume support for the i8254.
device		pmtimer

# Pseudo devices.
device		loop		# Network loopback
device		ether		# Ethernet support
device		tun		# Packet tunnel.
device		pty		# Pseudo-ttys (telnet etc)
device		firmware	# firmware assist module

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device		bpf		# Berkeley packet filter

ちなみにスケジューラーを速いと噂のULEに変更してます。

コンパイル

設定が出来たら、ドキドキのコンパイルです。エラーが出なくなるまで設定を詰めてやり直してください。

# cd /usr/src
# make buildkernel KERNCONF=さっき弄ったファイル名

インストール

コンパイルに成功したらインストールです。

# make installkernel KERNCONF=さっき弄ったファイル名

次に起動するときにインストールしたカーネルで起動します。

削り過ぎで起動するか心配な場合はモジュール組み込み等もある程度やってから再起動した方が良いかもね。

[記事作成日: 2008-07-05]

Homepage banner and link for this title's top page
Top > Knowledge > FreeBSDでサーバ構築 > Kernel Config
このエントリーをはてなブックマークに追加
mouse computer お急ぎの方に!最短当日出荷モデルicon
Fujitsu わけあり品 ビジネス向けicon
エプソン製品のアウトレット販売
NECアウトレット商品ノートPC
Dospara 即納 ノートパソコン
Fujitsu OUTLET (アウトレット)icon
DELL 【SOHO法人様向け】デル・イチオシページ(ノートブック)
ASUS outlet
デル株式会社HP Directplus オンラインストアデル株式会社