[ << ]
[ < ]
[ ホーム ]
[ > ]
[ >> ]
7. カーネル設定
目次:
7.a. タイムゾーン
システムが、どの地域に設置されているかを把握するため、
まず初めにタイムゾーンを選択しなくてはいけません。
nn/usr/share/zoneinfoでタイムゾーンを確認し、
/etc/localtimeへコピーします。
なお、ファイル名が実際の地域を示しているわけではないので、
/usr/share/zoneinfo/Etc/GMT*タイムゾーンは避けて下さい。
例えば、GMT-8は実際にはGMT+8を示します。
コード表示 1.1: タイムゾーン情報の設定 |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/GMT /etc/localtime
|
7.b. ソースをインストールする
カーネルを選択する
全のディストリビューションで中核となるのが、Linuxカーネルです。これは、
ユーザプログラムとシステムハードウェアを仲介します。Gentooでは、
使用可能なカーネルソースをユーザに複数提供しています。説明がついた詳細な一覧表が、
Gentoo Kernel
Guide(日本語訳)から入手できます。
x86ベースのシステムでは、
gentoo-sources(追加機能のパッチを含んだカーネルソース)が提供されています。
カーネルソースを選択し、emergeを使ってインストールします。
コード表示 2.1: カーネルソースのインストール |
# emerge gentoo-sources
|
/usr/srcを確認すると、
カーネルソースにリンクが張られたlinuxというシンボリックリンクがあるはずです。この場合、
インストールされたカーネルソースはgentoo-sources-2.6.24-r5にリンクが張られています。
なお、読者の環境によっては異なるかもしれませんので、注意して下さい。
コード表示 2.2: カーネルソースのシンボリックリンクを確認 |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-2.6.24-r5
|
それでは、カーネルソースをコンフィギュレーションしコンパイルしていきます。なお、
genkernelを使用し、インストールCDで使用される標準カーネルをビルドすることもできます。
但し、ここではまず初めにに"マニュアル"コンフィギュレーションを説明します。というのも、
これは環境を最適化する上で最良の方法だからです。
マニュアルでカーネルをコンフィギュレーションするなら、デフォルト: マニュアルコンフィギュレーションへ進んで下さい。
genkernelを使用するなら、
代わりに代替案: genkernelを使用するを読み進んで下さい。
7.c. デフォルト: マニュアルコンフィギュレーション
はじめに
マニュアルでカーネルをコンフィギュレーションすることは、
Linuxユーザが行うべきオペレーションの中で、最難関と見なされることがあります。
これは、それほど真実ということでもありません。カーネルのコンフィギュレーションを数回こなせば、
難しかったことを思い出すことすらないでしょう。;)
しかし、一つだけ本当のことがあります。
カーネルをマニュアルでコンフィギュレーションし始める際には、
システムをよく把握しておかなくてはいけないということです。ほとんどの情報は、
lspciを含んだpciutils(emerge pciutils)をemergeすることで収集できます。
そうすれば、chrootされた環境で、lspciを実行できます。
なお、lspciによって出力されるpcilibに関する警告は、
無視して構いません(例えば、pcilib: cannot open/sys/bus/pci/devices)。あるいは、
chrootされていない環境からlspciを実行することも可能です。
実行結果は同じになります。または、lsmodを実行し、
インストールCDがどのカーネルモジュールを使用しているかを確認することもできます(有効にすべきモジュールを判断する上で、
良いヒントになるでしょう)。
それでは、カーネルソースのディレクトリに移動し、make menuconfigを実行します。
ncursesベースのコンフィギュレーションメニューが表示されます。
コード表示 3.1: menuconfigの呼び出し |
# cd /usr/src/linux
# make menuconfig
|
コンフィギュレーション項目がいくつか表示されますので、まずは、
有効にすべきオプションをピックアップしていきましょう(そうしないと、
Gentooが機能しなかったり、あるいは追加調整なしで正常に機能しません)。
必須オプションを有効にする
システムをブートする上で必須のドライバ(例えば、SCSIコントローラ等)全てが、
モジュールとしてではなく、カーネル自身にコンパイルされるようにして下さい。
そうしないと、システムが完全にブートできるようになりません。
それでは、正確なプロセッサファミリを選択します。
コード表示 3.2: 正確なプロセッサファミリの選択 |
Processor type and features --->
(Athlon/Duron/K7) Processor family
|
File Systemsに移動し、使用するファイルシステムのサポートを選択します。
但し、モジュールとしてコンパイルしてはいけません。そうしないと、
Gentooシステムはパーティションをマウントできません。また、Virtual
memoryと/proc file systemを選択して下さい。
コード表示 3.3: 必要なファイルシステムを選択 |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
PPPoEを使用してインターネット接続する、
あるいはダイアルアップモデムを使用しているのであれば、
下記のオプションがカーネルで必要になります。
コード表示 3.4: 必要なPPPoE用ドライバを選択 |
Device Drivers --->
Networking Support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
|
2つの圧縮オプションに害はありませんが、必須というわけでもありません。
同様に、PPP over Ethernetオプションも必須というわけではなく、
カーネルにPPPoE機能をコンフィギュレーションする際にpppで使用されるだけです。
また、必要に応じて、イーサネットカードに合わせカーネルサポートを有効にして下さい。
ハイパースレッディング(tm)をサポートするインテル製CPU、あるいはマルチCPUシステムなら、
"Symmetric multi-processing support"を有効にします。
コード表示 3.5: SMPサポートの有効化 |
Processor type and features --->
[*] Symmetric multi-processing support
|
注意:
マルチコアシステムでは、各コアが1つのプロセッサとしてカウントされます。
|
4GB以上のRAMを搭載している場合、
"High Memory Support (64G)"を有効にする必要があります。
USB入力デバイス(キーボードやマウス等)を使用するなら、同様に下記も有効にして下さい。
コード表示 3.6: 入力デバイス用に、USBサポートの有効化 |
Device Drivers --->
[*] HID Devices --->
<*> USB Human Interface Device (full HID) support
|
PCMCIAサポートがノートPCで必要なら、
システムに合わせPCMCIAカードブリッジのサポートを有効にして下さい。
コード表示 3.7: PCMCIAサポートの有効化 |
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
PCCARD (PCMCIA/CardBus) support --->
<*> PCCard (PCMCIA/CardBus) support
<*> 16-bit PCMCIA support
[*] 32-bit CardBus support
--- PC-card bridges
<*> CardBus yenta-compatible bridge support (NEW)
<*> Cirrus PD6729 compatible bridge support (NEW)
<*> i82092 compatible bridge support (NEW)
<*> i82365 compatible bridge support (NEW)
<*> Databook TCIC host bridge support (NEW)
|
カーネルのコンフィギュレーションが終了したら、コンパイルとインストールへ進んで下さい。
コンパイルとインストール
カーネルのコンフィギュレーションが済みましたので、コンパイル・インストールしていきます。
コンフィギュレーションメニューを終了し、コンパイルに進みます。
コード表示 3.8: カーネルのコンパイル |
# make && make modules_install
|
カーネルのコンパイルが終了したら、カーネルイメージを/bootへコピーします。
選択したカーネルにふさわしいと思うファイル名であれば、どんなものでも構いませんが、
ブートローダを設定する際に後ほど必要となりますので、ファイル名は覚えておいて下さい。
kernel-2.6.24-gentoo-r5をカーネルの名称とバージョンに置き換える必要があります。
コード表示 3.9: カーネルのインストール |
# cp arch/i386/boot/bzImage /boot/kernel-2.6.24-gentoo-r5
|
では、カーネルモジュールへ進みましょう。
7.d. 代替案: genkernelを使用する
このセクションを読んでいるなら、genkernelスクリプトを使用し、
カーネルのコンフィギュレーションを行うことにしたということでしょう。
カーネルツリーはインストールされていますので、genkernelスクリプトを使用し、
カーネルを自動でビルドします。
genkernelは、コンフィギュレーションがインストールCDのそれとほぼ同じになるように動作します。
つまり、genkernelを使用しカーネルをビルドすると、インストールCD同様、
通常であれば起動時にシステムが全ハードウェアを検出してくれるということになります。
genkernelでは、マニュアルでカーネルをコンフィギュレーションする必要がないので、
カーネルをコンパイルするのが不安なユーザにとっては理想的なソリューションです。
では、genkernelの使用方法を見ていきます。初めに、genkernelをemergeします。
コード表示 4.1: genkernelのemerge |
# emerge genkernel
|
次に、インストールCDで使用されたカーネルコンフィギュレーションを、
genkernelがデフォルトのカーネルコンフィギュレーションを検索する場所へコピーします。
コード表示 4.2: インストールCDのカーネルコンフィギュレーションをコピー |
# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
|
では、genkernel allを実行しカーネルソースをコンパイルして下さい。genkernelでは、
ほとんど全てのハードウェアをサポートするカーネルをコンパイルするので、
コンパイルが終了するにはかなりの時間がかかります!
ブートパーティションが、ext2あるいはext3をファイルシステムとして使用していなければ、
マニュアルでカーネルをコンフィギュレーションしなくてはいけません。その際は、
genkernel --menuconfig allを実行しカーネル自身にファイルシステムのサポートを追加します(つまり、
モジュールとしてではありません)。同様に、EVMS2あるいはLVM2ユーザは、
--evms2あるいは--lvm2を引数に追加する必要があるかもしれません。
コード表示 4.3: genkernelの実行 |
# genkernel all
|
genkernelが完了したら、カーネル -- モジュール全一式と初期ルートディスク(initrd)
-- が作成されます。本書では、後ほどブートローダを設定する際に、カーネルとinitrdを使用します。
ブートローダの設定ファイルを記述する際に必要となりますので、
カーネルとinitrdのファイル名を書き留めておいて下さい。電源ボタンを押し、
ハードウェアの自動検知(インストールCDで行われているように)が実行された後、
initrdはすぐに展開されます(但し、それは"実際の"システムが起動する前です)。
コード表示 4.4: 作成されたカーネルイメージとinitrdの確認 |
# ls /boot/kernel* /boot/initramfs*
|
7.e. カーネルモジュール
モジュールを設定する
自動的にロードさせる必要があるモジュールは、
/etc/modules.autoload.d/kernel-2.6で記述しておく必要があります。
また必要に応じて、モジュールに対し追加オプションを加えることもできます。
利用可能なモジュールを全て確認するには、以下のfindコマンドを実行します。
なお、コンパイルされたカーネルのバージョンに合わせ、
"<kernel version>"を置き換える必要があります。
コード表示 5.1: 利用可能なモジュールを全て確認 |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'
|
たとえば、3c59x.koモジュールを自動的にロードさせるには、
kernel-2.6ファイルを編集しモジュール名を入力します。
コード表示 5.2: /etc/modules.autoload.d/kernel-2.6の編集 |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
コード表示 5.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x
|
システムの設定に進み、インストールを続けてください.
[ << ]
[ < ]
[ ホーム ]
[ > ]
[ >> ]
このドキュメントの内容は
Creative Commons -
Attribution / Share Alikeライセンスです。
|