[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ 次のページ ]


Debian リファレンス
第 7 章 - Debian での Linux kernel


Debian には独自の kernel と関連モジュールの再構築方法があります。 Debian と kernel, 第 2.7 節 をご覧ください。


7.1 Kernel (再)構築

最新の Linux kernel をコンパイルする場合、Debian unstable から、 gccbinitulsmodule-init-tools をインストールして使用すると役に立つかもしれません。 公式の情報を得るには、/usr/share/doc/kernel-package/README.gz、特に最後尾を ご覧ください。

常に変更が発生しているので、kernel のコンパイルは最も称賛される開発者 でさえも混乱を招きかねない難しい事項です。

Manoj Srivastava の発言

--initrd は Debian のみ cramfs パッチを必要とする。

Herbert Xu の発言

間違っている。CRAMFS 以外のファイルシステムを使うならば /etc/mkinitrd/mkinitrd.conf に MKIMAGE を必ず設定する必要がある。

注意して、常に Manoj と Kent による /usr/share/doc/kernel-package/README.gzhttp://kernel-handbook.alioth.debian.org/ に頼ってください。 最新版の kernel をコンパイルしようとしている場合、 最新の unstable 版の kernel-package パッケージを 確実にインストールしてください。

1 台のマシンのためにしか kernel をコンパイルする必要がないなら、 initrd は必要ありません。kernel-image パッケージにより供給される kernel とほとんど同じにしたいため、私は initrd を用います。 もし initrd を使用するなら、initrd(8)mkinitrd.conf(5) をご覧ください。


7.1.1 古典的な方法

オリジナルソースを以下から取得してください。

又は Debian での 同等の kernel source を用いて次の手順を実行してください。

     # cd /usr/src
     # tar xfvz linux-whatever.tar.gz
     # rm -rf linux
     # ln -s linux-whatever linux
     # tar xfvz pcmcia-cs-whatever.tar.gz
     # ln -s pcmcia-cs-whatever pcmcia
     # cd linux
     # make menuconfig
     ... 設定を行う
     # make dep
     # make bzImage
     ... lilo / grub の設定 ...
     ... /usr/src/linux/arch/i386/boot/bzImage を boot に移動...
     ... /sbin/lilo 又は grub のための好みの方法を実行
     # make modules; make modules_install
     # cd ../pcmcia
     # make config
     # make all
     # make install
     ... 必要なモジュール名を /etc/modules に追加
     # shutdown -r now
     ... 新しい kernel を boot

7.1.2 Kernel ヘッダ

ほとんどの "normal" なプログラムには kernel ヘッダは必要なく、実際直接 使用した場合動かなくなるかもしれません。その代わり、glibc を構築するのに使った ヘッダに対してコンパイルすべきです。それらは Debian システムの /usr/include/linux/usr/include/asm にあるバージョンのものです。

それゆえ、いくつかの古びたドキュメントが推奨しているように /usr/include/linux および /usr/include/asm から /usr/src/linux にあるディレクトリに symlink を張らないでください。

カーネル特有のアプリケーションプログラムに特定の kernel ヘッダが 必要 ならば、include path が dir-of-particular-kernel-headers/include/linuxdir-of-particular-kernel-headers/include/asm を 指すように makefile を変更してください。


7.2 proc filesystem により Linux kernel をチューニングする

Linux kernel の挙動は、proc ファイルシステムを用いるとオンザフライで変更できます。

/proc ファイルシステムを通して kernel パラメータを変更すること に関する基本的な情報は Linux source の Documentation/sysctl/* をご覧ください。

/etc/init.d/networkingいくつかのウェブサイトにアクセスした時の奇妙な挙動, 第 3.8.5 節 には、 kernel パラメータの操作方法の例がいくつかあります。

通常、/etc/rcS.d/S30procps.sh から起動される /etc/init.d/procps.sh を用いて /proc ファイルシステム経由でブート時に kernel を設定する手順については、 sysctl.conf(5) をご覧ください。


7.2.1 Too many open files

Linux kernel が "Too many open files" とエラーを出力することがあります。 これは file-max の標準値が小さい (8096) ためです。 この問題を解決するには、root で次のコマンドを実行してください。

     # echo "65536"  > /proc/sys/fs/file-max  # 2.2 と 2.4 kernel の両方で有効
     # echo "131072" > /proc/sys/fs/inode-max # 2.2 kernel のみ

変更をずっと有効にしたい場合は、/etc/sysctl.conf に次の行を追加してください。

     file-max=65536   # 2.2 と 2.4 kernel の両方で有効
     inode-max=131072 # 2.2 kernel のみ

7.2.2 Disk flush 間隔

proc ファイルシステムを通じて disk flush 間隔を変更できます。 次のコマンドにより、間隔をデフォルトの 5 秒 から 1 秒 に変更されます。

     # echo "40 0 0 0 100 30000 60 0 0"  > /proc/sys/vm/bdflush

本変更はファイル I/O 性能にほんの少し悪影響を与えるかもしれません。しかし、 本変更により、デフォルトの 5 秒より短い最後の 1 秒の間を除き、ファイル内容を 安全に保たれます。


7.2.3 鈍くて古い少メモリ容量マシン

古い少メモリ容量マシンの場合、proc ファイルシステムを通じて メモリの over-commit を有効にするとまだ役に立つかもしれません。

     # echo 1 > /proc/sys/vm/overcommit_memory

7.3 2.6 カーネルと udev

udev は /dev/ のダイナミックな置き換えです。 デバイス名は非常に短い物にもできます。 2.4 カーネルで使われた devfs は今や過去の物となりました。

udev パッケージを kernel-image-2.6.NN で提供される新たな Debian 2.6 カーネルとともにインストールすると、 本機能が実現します。


[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ 次のページ ]


Debian リファレンス

CVS, 2007年 1月 18日 木曜日 11時54分01秒 UTC時間

Osamu Aoki (青木 修) osamu#at#debian.org
翻訳: 角田 慎一 tsuno#at#ngy.1st.ne.jp
著者, 第 A.1 節