ftp.kernel.org
の /pub/linux/kernel/vx.y
から
anonymous(匿名) FTP でソースを入手することができます.ここで
x.y
は前に説明したようなバージョンであり,奇数で終わるものは
開発リリースなので不安定かもしれません.
たいていは linux-x.y.z.tar.gz
(x.y.z
がバージョン)と
いう名前が付けられています.普通はこのサイトには拡張子 .bz2
が付いているファイルもあります.これは bzip2 で圧縮されているファイル
です(このようなファイルはサイズが小さく,転送時間を節約することができ
ます).
できるだけ ftp.xx.kernel.org
(xx
は国コード)を使うと
よいでしょう.例えばオーストリアでは ftp.at.kernel.org
,
アメリカでは ftp.us.kernel.org
となります.
root
としてログインするか su
して root
にな
り,/usr/src
に cd
します.最初 Linux をインストール
した際にカーネルのソースをインストールしていれば(普通はそうでしょう),
linux
というディレクトリがあるはずです.そこには古いソースツ
リー全体が含まれています.ディスクの容量が十分にあり,かつ安全策を取る
ならこのディレクトリは残しておきましょう.
今現在のシステムのバージョンを調べて,このバージョンにあわせてディレクトリ
名を変えておくとよいでしょう.`uname -r
' で現在のカーネル
バージョンを表示できます.ですから,`uname -r
' で
`1.0.9
' と表示されたら,`linux
' を (`mv
'で)
`linux-1.2.8
' というファイル名に変えます.まあ,ちょっと向こ
う見ずのあなたは,ディレクトリごと消してしまいましょう.いずれにせよ,
ソースコードを展開する前に /usr/src
に `linux
' とい
うディレクトリが存在しないことを確認してください.
では,/usr/src
で `tar zxpvf linux-x.y.z.tar.gz
' と
してソースを展開します(ファイル名の最後が単に .tar
となってい
て .gz
がついていない場合は `tar xpvf linux-x.y.z.tar
'
で展開できます.展開中にはソースの中身が画面に表示されていきます.展開
が終了すると, /usr/src
に新しい `linux
' ディレクト
リができています.linux
に cd
し,README
ファ
イルを読んでください.`INSTALLING the kernel
'と
いう題のついた章があります.説明に適宜したがって,必要なシンボリックリ
ンクを張ったり,古い.o
ファイルを消去するなどしてください.
ファイルの拡張子が .bz2
であり,bzip2 プログラム(詳しくは
http://www.muraroa.demon.co.uk/
を参照)をお持ちであれば以下の
コマンドで展開してください:
bz2cat linux-x.y.z.tar.bz2 | tar xvf -
注: このうちいくつかは Linus の README
ファイルの繰り返しだっ
たり説明だったりします.
/usr/src/linux
ディレクトリで `make config
' コマンド
を実行すると,設定スクリプトが起動し,色々な質問をしてきます.このスク
リプトは bash を必要とするので,bash が /bin/bash
,
/bin/sh
, $BASH
のいずれかにあることを確認して
ください.
しかし,`make config
' よりもずっといいものがいくつかあります.
それらの方がずっと簡単で使いやすいでしょう.`make menuconfig
'
がたぶん一番使われています.
どれを使うか決める時には,そのインターフェースを使ってみるのが一番です.
というのも,考えるよりも早く答えが出るからです.
「X を使っている」人は,`make xconfig
' を試すとよいでしょう.
ただし Tk が必要です(`click-o-rama' - Nat).
`make menuconfig
' は,(n)curses を持っており,テキストベース
のメニューが好きな人にお勧めです.これらのインタフェースにはかなりはっ
きりとした利点があります: 設定の時にしくじって選択を誤った時に,簡単に
前に戻って直すことができます.
`make menuconfig
' と `make xconfig
' では,設定オプショ
ンは階層的に表示されます.
これで質問に答える準備ができました.普通は `y
'(はい)あるいは
`n
'(いいえ)で答えていきます.デバイスドライバにはたいてい
`m
' オプションがあります.これは ``モジュール''を意味しており,
カーネルのコンパイル時にコンパイルは行なわれますが,カーネルに直接組み
込まれるわけではなく,ロード可能なモジュールとしてコンパイルされるので
す.この `m
' をもっとふざけて説明しますと,これは ``maybe''
(多分)です.簡単だったりあまり重要でないオプションについては,ここでは
触れません.「他の設定オプション」の章にいくつかのオプションの簡単な説
明があります.`make menuconfig
' を使っている場合は,スペース
バーによって選択状態が変わります.
2.0.x 以降のカーネルでは,`?' オプションがあります.`?' キーを押すと, 設定パラメータの簡単な説明が表示されます.この情報はたぶん最新でしょう. 以下では重要な機能いくつかについて,その機能がある階層と簡単な解説を示 します.
数値演算コプロセッサがない場合(素の 386 や 486SX の場合),この項目には
`y
' と答えなければいけません.コプロセッサがあるのに
`y
' と答えても気にする必要はありません -- ちゃんとコプ
ロセッサが使用され,エミュレーションは行なわれません.割と新しいマシン
だったら答えは `n
' でしょうが,間違って `y
' と答えて
も気にすることはありません.必要無ければ,この機能は使われません.
この機能はサポートする必要があるでしょう.ほとんどの人が持っている,PC 標準のハードディスクをカーネルがサポートするということですから.このド ライバには SCSI ドライバは含まれていません.設定の後の方で出てきます.
続いて ``old disk-only'' と ``new IDE'' のドライバについて聞かれます. このうちどちらかを選択してください.大きな違いは,古いドライバは 1 つ のインターフェース上の 2 つのディスクのみをサポートしますが,新しい方 はセカンダリインターフェースと IDE/ATAPI の CD-ROM をサポートします. 新しいドライバは古い方よりも 4 kB 大きいですが多分「改善」されています. すなわち,含まれているバグの数は別にして,特にハードウェアが新しい (EIDE タイプ)場合にはディスクの性能が向上します.
インターネットのようなネットワークに接続されていたり,SLIP や PPP,
term などを使ってインターネットへのダイアルアップ接続を行うのであれば
`y
' と答えます.しかし,多くのソフトウェアパッケージ(例えば X
ウィンドウシステム[日本語変換システムも])は,たとえマシンがネットワー
クに接続されていなくてもネットワークサポートを必要とします.ですから
`y
' と答えなければなりません.後で TCP/IP ネットワークが必要
かどうか質問されますが,よくわからなければここでも `y
' と答え
ておいてください.
IPC(Inter-Process Communication, プロセス間通信)のもっとも的確な定義の
一つは Perl book の用語一覧にあります.おどろくほどのことではないです
が,Perlのプログラマーの中にははプロセス間で会話をさせるために IPC を
利用する人がいますし,他にもこれを利用しているパッケージがあります(もっ
とも有名なのは DOOM でしょう[漢字コンソール KON もこれを利用していま
す]).ですから,よくわからない場合はこれに `n
' と答えてはい
けません.
(古いカーネルでは: Use -m486 flag for 486-specific optimizations)
従来は,このオプションでは特定の CPU 用に最適化したコンパイルを行なっ ていました; カーネルは他の(最適化した以外の)CPU でも良好に動作しますが, カーネルは少々大きくなりました.しかし新しいカーネルでは,このことは必 ずしも当てはまりません.ですから,カーネルをコンパイルするマシンの CPU を必ず入力しなければなりません.``386'' 用カーネルならばすべてのマシン で動作するでしょう.
SCSI デバイスを持っていたら `y
' と答えてください.CD-ROM やディ
スクのサポート,およびどの SCSI アダプタを使用するか等がさらに質問され
ます.詳細は SCSI-HOWTO を参照してください.
ネットワークカードを持っていたら,あるいは SLIP,PPP やパラレルポート
アダプタを使ってインターネットに接続するのなら `y
' と答えてく
ださい.使用するカードやプロトコルについての質問があります.
設定スクリプトは,以下のファイルシステムをサポートするかどうかを聞いて きます:
Standard (minix) - 最近の Linux は minix ファイルシステムを作成しませ んし,ユーザも普通は使用しません.しかし,使用するように設定しておいた 方がよいでしょう.なぜなら「復旧ディスク」のプログラムにはこれを使うも のがありますし,多くのフロッピーが minix ファイルシステムを使っている からです.というのも,minix ファイルシステムはフロッピーでの使用に適し ているからです.
Second extended - これは Linux 標準のファイルシステムです.ほぼ確実に
このファイルシステムがあるはずなので,`y
'と答えなければなりま
せん.
msdos - ハードディスク上の MS-DOS パーティションを使用したり,MS-DOS
フォーマットのフロッピーディスクをマウントするなら `y
' と答え
てください.
他のオペレーティングシステムのファイルシステムもいくつか使用できます.
/proc - (多分ベル研のアイディアのパクリだと思います) ディスク上に proc
というファイルシステムが作られるわけではありません.これはカーネルとプ
ロセスのインターフェースとなるファイルシステムです.多くのプロセスリス
ト表示プログラム(`ps
' など)がこれを使用します.
`cat /proc/meminfo
' や `cat /proc/devices
' などを後
で試してみてください./proc/self/fd
(他のシステムでは
/dev/fd
として知られる)を I/O に使用するシェルもあります(特に
rc).ほとんどの場合 `y
' と答えなければなりません.Linux の重
要なツールの多くがこのファイルシステムに依存しています.
NFS - ネットワークに接続されていて,他のシステム上にあるファイルシステ
ムを使用するなら `y
' と答えてください.
ISO9660 - ほとんどの CD-ROM が使用しています.CD-ROM ドライブを持って
いて,これを Linux でも使うつもりなら `y
' と答えてください.
`mount
'とタイプしてみましょう.出力はこんな感じです:
blah# mount
/dev/hda1 on / type ext2 (defaults)
/dev/hda3 on /usr type ext2 (defaults)
none on /proc type proc (defaults)
/dev/fd0 on /mnt type msdos (defaults)
それぞれの行を見てください;`type
' の次の単語がファイルシステ
ムの種類です.この例では /
と /usr
のファイルシステ
ムが second extended です.私は /proc
も使用しています.
msdos ファイルシステムを利用してマウントしたフロッピーディスクもありま
す.
現在 /proc
を利用できるなら,`cat /proc/filesystems
'
とタイプしてみてください.カーネルが現在使用可能なファイルシステムが表
示されます.
あんまり使わない,それほど重要でないファイルシステムを使用できるように設 定すると,カーネルが不必要に大きくなってしまいます.対処法についてはモ ジュールに関する章を,また大きくなったカーネルが好まれない理由について は「落とし穴」の章を参照してください.
ここではプリンタ(パラレルプリンタのことです),バスマウス,PS/2マウス
(多くのノートパソコンは内蔵ポインティングデバイスで PS/2 プロトコルを
使用しています),いくつかのテープドライブ,その他のキャラクタデバイス
の設定ができます.必要なものについて `y
' と答えてください.
注:gpm
は X ウィンドウシステムでなく仮想コンソール間で,マウ
スを用いたカット&ペーストを行うためのプログラムです.シリアルマウ
スを使用しているなら,容易に X と共存できるので便利です.しかし他のマ
ウスではちょっと面倒です.
[gpm
は -R
オプションをつければ X と共存できます.
また,真鍋さん multimouse はノートパソコンユーザーの方にお薦めです.]
どうしてもbiff
が吠えるのを聞きたい[biff
コマンドの
名前の由来は,郵便屋さんが来ると吠える犬です]のなら `y
' と答
えてください.あとで別の設定プログラムがサウンドボードに関する質問をし
て設定します.(サウンドカードの設定に関する注:設定プログラムがドライ
バをフルインストールするかどうかを聞いてきたら `n
' と答え,必
要と思われる機能のみを選択できます.カーネルの使用するメモリを節約でき
ます.)
本気でサウンドカードをサポートするなら,
http://www.linux.org.uk/OSS/
にあるフリーのドライバと,
http://www.opensound.com/
にある商用の Open Sound System を両
方調べるとよいでしょう.
設定オプションは頻繁に変化しますし,自明だったりしますので(例えば 3Com
3C509 イーサネットカードのためのデバイスドライバをコンパイルする等)
すべてを紹介するわけではありません.
Axel Boldt さん(axel@uni-paderborn.de
)がまとめている,全オプ
ションのわかりやすいリスト(設定スクリプトへの組込み方も)とそのオンライ
ンヘルプがあります.Linux 2.0 では,これはカーネルのソースツリーに入っ
ている Documentation/Configure.help
という大きなファイルです.
>Linus の README から引用します:
「カーネルハッキング」を設定するとカーネルが大きくなったり遅くなったり
(あるいはその両方)しますし,カーネルの問題(kmalloc())を見つけるため悪
いコードを積極的に中断しようとするルーチンが組み込まれますので,カーネ
ルが不安定になったりします.ですから「製品版」のカーネルでは
`n
' と答えておくべきでしょう.
make config
が終ると,カーネルの設定が終ったというメッセージが表示
され,また「追加設定のためトップレベルの Makefile
をチェック
しろ」というようなメッセージが表示されます.
では,Makefile
を見てください.多分変更する必要はないでしょうが,見
ても減るものではありません.新しいカーネルができたら,そのオプションを
`rdev
' コマンドで変更することもできます.ファイルを見たときに
無くなっていると思っても,心配する必要はありません.