[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:24831] Re: カーネルの再構築手順 補足のお伺い



きどです。

横からすみません。ずいぶんお悩みのようなので……。

まず、Linux システムの動作に最低限必要なカーネル関連のファイルは以下の
3 つだけです。

    /vmlinuz (ディストリによっては /boot/vmlinuz の場合もあり)
    /boot/System.map
    /lib/modules/(kernel-vaersion) 以下のディレクトリ・ツリー

この他、ディストリによっては次のファイルが存在することもあります。
Plamo のデフォルト設定では使われていませんが……

    /boot/vmlinux
    /boot/initrd.img (initrd という名の場合もある)

それぞれのファイルの役割は以下のとおりです。

/vmlinuz
    カーネル本体です。圧縮されています。

/boot/System.map
    カーネルの各種機能のシンボルのリストを記したテキストファイルです。
    一部のコマンドが実行時に参照するそうです。

/lib/modules/(kernel-vaersion)
    カーネル・モジュールが格納されています。実行時に動的に取り外しでき
    るドライバなどです。

/boot/vmlinux
    vmlinuz と同じですが、こちらは圧縮されていません。Plamo 標準カーネ
    ルでは使われていません。

/boot/initrd.img
    システムの起動時に必要なカーネル・モジュール群をまとめて圧縮したも
    のです。たとえば SCSI 接続の HDD を使っているのに、SCSI ドライバが
    カーネル組み込みではなくモジュール化されている時などに必要になりま
    す。Plamo 標準カーネルでは使われていません。

これらのファイルの置き場所は、HDD の同じパーテーションにあれば、どこに
あっても構いません。カーネル・モジュールはすべてのディストリビューショ
ンで /lib/modules/(kernel-vaersion) に置かれますが、伝統的に Plamo など
のSlackware 系ディストリでは vmlinuz を / 直下に置き、それ以外を /boot
以下に置きます。他のディストリでは vmlinuz も /boot 以下に置くものもあ
ります。

ご質問の /usr/src/linux 以下のカーネル・ソース・ツリーとの関係は?  です
が、結論から言うと、OS の動作だけをとれば、/usr/src/linux はまったく無
関係で、なくても問題ありません。

では、どのような時にカーネル・ソースが必要になるかと言えば、ディストリ
ビューションが提供する標準カーネルでは機能が不足している場合や、逆に使
わない機能を削ってカーネルを軽量化するために、カーネルを自分でコンパイ
ルし直す時です。(それ以外にも、ソフトウェアの中にはコンパイル時にカー
ネル・ソースを参照するものがあります。その場合も必要になります)

したがって、現在動作中のカーネルのバージョンと、/usr/src/linux が参照し
ているカーネル・ソースのバージョンが違っていても何の不思議もありません
し、まったく問題ありません。佐藤さんの例で言えば、現在動作中のカーネル
は 2.4.26 だが、佐藤さんがこれからコンパイルしようとしているカーネルは
2.6.10 である、というだけのことです。

ついでながら、カーネル・ソースの展開場所も /usr/src 以下と決まっている
わけではありません。/usr/local/linux でも /home/hogehoge/linux でも大
丈夫です。

多くのソフトウェアはコンパイル時に、/usr/include 以下のファイル群を参照
するのですが、この /usr/include には、/usr/src/linux/include/asm ->
/usr/include/asm のように、カーネルソースが /usr/src/linux にあるという
前提で作られているシンボリックリンクがいくつか存在します。したがって、
/usr/src/linux というシンボリックリンクさえあれば、その参照先は、
/usr/local/linux-2.6.10 でも /home/hogehoge/linux-2.6.10 でもいいわけ
です。しかしながら、普通は /usr/src/linux-2.6.10 のようにソースを展開
し、/usr/src/linux へリンクします。

これは、他のソフトを自前でコンパイルする時に問題になるのであって、自分
はソフトのコンパイルなどしない、バイナリ・パッケージのインストールしか
しない、というのであれば関係ない話です。

長くなりましたが、これでご理解いただけたでしょうか。

From: msharu <myspring_sato@kyp.biglobe.ne.jp>
Subject: [plamo:24821] Re: カーネルの再構築手順 補足のお伺い
Date: Thu, 3 Feb 2005 12:40:11 +0900

> それは、「make menuconfigを実行したときに
>           Linux Kernel v2.6.10 Configuration 」になっていたことです。
> ------------------------------------------------------------
> grubでは、下記の設定して、今回 grub で 立ち上げ時 に
> 「title Plamo-4.0.orig」 を選択している。
> 	  title Plamo-4.0.orig (hda3)
> 	  root (hd0,2)
> 	  kernel (hd0,2)/vmlinuz.orig root=/dev/hda3 ro
> -------------------------------------------------------------
> harup:~# ls -l /vm*
> lrwxrwxrwx    1 root     root           14 Dec 14 03:22 /vmlinuz -> vmlinuz-2.4.26
> -rw-------    1 root     root      1297721 Dec 14 03:36 /vmlinuz-2.4.26
> -r--------    1 root     root      1297721 Jan 28 12:14 /vmlinuz-2.4.26.orig
> lrwxrwxrwx    1 root     root           14 Jan 21 20:08 /vmlinuz.orig -> vmlinuz-2.4.26
> -rw-r--r--    1 root     root      1596690 Feb  1 20:55 /vmlinuz.test
> harup:~#
> 
> 
> 上記から明らかなように、/vmlinuz.orig は vmlinuz-2.4.26 の
> シンボリックリンクであるので
> Linux Kernel v2.6.10 Configuration になるのはおかしいのではと思います。
> Linux Kernel v2.4.26 Configuration になるべきではないのでしょうか?

--
きど
KIDO Hideyuki <rp9h-kd@asahi-net.or.jp>

Follow-Ups
[plamo:24832] Re: カーネルの再構築手順 補足のお伺い, msharu
References
[plamo:24821] Re: カーネルの再構築手順 補足のお伺い, msharu

[検索ページ] [メール一覧]
Plamo ML 公開システム