Gentoo Logo

[ << ] [ < ] [ ホーム ] [ > ] [ >> ]


7. カーネル設定

目次:

7.a. タイムゾーン

システムが、どの地域に設置されているかを把握するため、 まず初めにタイムゾーンを選択しなくてはいけません。 nn/usr/share/zoneinfoでタイムゾーンを確認し、 /etc/localtimeへコピーします。 なお、ファイル名が実際の地域を示しているわけではないので、 /usr/share/zoneinfo/Etc/GMT*タイムゾーンは避けて下さい。 例えば、GMT-8は実際にはGMT+8を示します。

コード表示 1.1: タイムゾーン情報の設定

# ls /usr/share/zoneinfo
(ここでは、GMTを使用することを想定しています)
# 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)

(システムに合わせて下記オプションを1つ以上選択して下さい。)
  <*> 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
(古いPCMCIAカードのサポートが必要なら、16ビットを選択します。ほとんどのシステムで必要になります。)
    <*>   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

システムの設定に進み、インストールを続けてください.


[ << ] [ < ] [ ホーム ] [ > ] [ >> ]


印刷

全てを見る

更新日 2009年 7月 30日

このドキュメントのオリジナルバージョン の更新日は2009年 10月 4日

要約: 全てのディストリビューションで中核をなすのが、Linuxカーネルです。 本章では、カーネルのコンフィギュレーション方法について説明します。

Sven Vermeulen
Author

Roy Marples
Author

Daniel Robbins
Author

Chris Houser
Author

Jerry Alexandratos
Author

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Grant Goodyear
Reviewer

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Contributor

おぎうち やすお
翻訳

わただ ゆうすけ
翻訳

せーいち
翻訳

五十嵐 正尚
翻訳

武田 洋之
翻訳

村上 誠
翻訳

小林 弘樹
翻訳

真藤 直観
翻訳

萩原 佳明
翻訳

松葉
翻訳

中野 正智
翻訳

飴谷 茂寛
翻訳

村上 卓
翻訳

田中 裕也
翻訳

増田 昌也
翻訳

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Online Kredit Index
Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.