第3章 Debian カーネルパッケージ

目次

3.1. ソースパッケージ
3.2. アーキテクチャ非依存パッケージ
3.3. アーキテクチャ依存パッケージ

3.1. ソースパッケージ

バグやセキュリティフィックス等、必須の修正が入った最新のカーネルバージョンが可能な限り全てのアーキテクチャで利用可能であることを担保するために、カーネルチームは 2.6.12 から新しいパッケージング方法を採用しています。 新しい方法では、ほぼ全てのカーネル関連のバイナリパッケージは、linuxという唯一のソースパッケージからビルドされます。linux ソースパッケージは、現在サポートしている全てのアーキテクチャに対するカーネルイメージとカーネルヘッダのビルドを支援します。この章の次のセクションからは、linux ソースパッケージからビルドされるバイナリパッケージの命名規則とその内容について説明します。

3.2. アーキテクチャ非依存パッケージ

linux-source-version

このパッケージには Debian カーネルソースの tarball が含まれています。ソースのパッチレベルは、パッケージの Debian リビジョンによって決定されます。例えば、4.2.5-1 というバージョンの linux-source-4.2 パッケージは、 パッチレベル 1 のパッチが適用されたバージョン 4.2.5 の Debian カーネルソースを含んでいます。パッケージがインストールされると、tarball 化されたソースが /usr/src/linux-source-version.tar.xz に配置され利用可能になります。

linux-manual-version

このパッケージにはカーネルの API を含めた関数へのマニュアルページが含まれています。これらは、/usr/share/man/man9/ にインストールされ、 標準の man コマンドで参照できます。ファイル名が衝突してしまうため、インストール可能な linux-manual パッケージは どれか 1 つに限定されます。

linux-doc-version

このパッケージは、上記以外のカーネル関連のドキュメントを様々なフォーマットで収録しています。/usr/share/doc/linux-doc-version にインストールされます。

linux-support-version-abiname

このパッケージは、パッケージ名の version と abiname のツリー用にモジュールをビルドするための支援ファイルが含まれています。

3.3. アーキテクチャ依存パッケージ

あるカーネルパッケージを特定のハードウェア向けにデザインしたものは、アーキテクチャフィーチャセットフレーバで、一意に識別されます。全てのアーキテクチャ向けのカーネルは、2章Debian カーネルソース で説明されている手順で取得した、同一の Debian カーネルソースツリーからビルドされます。それぞれのアーキテクチャには普通、複数のフレーバのバイナリカーネルイメージがあります。異なるフレーバは同一のカーネルツリーからビルドされますが、バイナリイメージをビルドする際に使用されるカーネルの設定ファイルが異なります。

アップストリームで提供されていない追加のフィーチャセットが動作するカーネルをビルドするには、Debian カーネルソースに追加の設定をする必要があります。この場合もやはり、複数のフレーバのバイナリイメージがフィーチャセットのツリーからビルドできます。例えば i386 アーキテクチャには、共通の Debian カーネルソースからビルドされた486686-paeamd64などの複数の異なるフレーバがあります。また、rt フィーチャセットも含んでいます。これらのフィーチャセットが動作するカーネルをビルドするためのソースツリーは、Debian カーネルソースに追加のパッチを当てることで取得できます。このソースツリーは例えば rt-686-pae バイナリイメージフレーバをビルドするのに使われます。Debian バイナリパッケージの名前にはフレーバと、必要であればフィーチャセットの名前が含まれています。 (アーキテクチャ名については気にする必要がありません。Debian tools は "正しい” アーキテクチャのパッケージしかインストールを許可しないからです。)もしアーキテクチャに何もフィーチャセットが無い場合は、以下の説明にある、角かっこ( [ ] )内のフィーチャセットの部分が名前から省略されます。

パッケージ名には abiname が含まれます。これは、カーネルのバイナリ互換レベルを識別するための小さな整数です。abiname が異なるカーネルにはバイナリ互換性がありません。異なる abiname のカーネルにアップグレードする場合、サードパーティ製のバイナリモジュールを新しいカーネル用にコンパイルし直さなければならない可能性が高くなります。アーキテクチャ依存のパッケージのリストと簡単な説明を以下に示します。

linux-headers-version-abiname-common[-featureset]

このパッケージは、特定のフィーチャセット (もしフィーチャセットが空の場合はアーキテクチャ) のための共通のカーネルヘッダが含まれています。フレーバ固有の linux-headers パッケージと合わせることでカーネルヘッダのフルセットとなるため、ツリーの外のモジュールのビルドに最適です。このパッケージは通常の場合直接インストールができないパッケージで、あるフレーバ固有のヘッダパッケージの依存パッケージとしてのみインストールできます。(次の説明を読んで下さい。)/usr/src/linux-headers-version-abiname-common[-featureset] ディレクトリに配置されます。

linux-headers-version-abiname[-featureset]-flavour

このパッケージはフレーバ固有のヘッダファイルを提供します。これは対応する linux-headers-version-abiname-common[-featureset] パッケージに依存しており、シンボリックリンクをディレクトリツリー中に設定します。そうすることで、/usr/src/linux-headers-version-abiname[-featureset]-flavour がツリー外のモジュールをビルドするために必要なフルセットのヘッダーを持っているように見えます。さらに詳しく知りたい場合は、「ツリーの外にあるカーネルモジュールをビルドする」 を参照して下さい。現在実行中の公式カーネルに対応したカーネルヘッダの完全なセットは次のコマンドでインストールすることができます:

apt-get install linux-headers-$(uname -r)
linux-image[-featureset]-flavour
linux-headers[-featureset]-flavour

これらの仮想パッケージは (依存関係を経由して)、 特定のフレーバ用の最新のバイナリイメージとそれに対応する (それぞれの) ヘッダファイルを提供します。例: linux-image-rt-686-pae

linux-image-version-abiname[-featureset]-flavour

このパッケージには、特定の アーキテクチャ/フィーチャセット/フレーバ を組み合わせたバイナリ の kernel イメージとビルド済みのバイナリモジュールが含まれています。このパッケージによってインストールされたファイルの名前は、アーキテクチャに依存します。i386 アーキテクチャに必須のファイルは、典型的に以下のディレクトリに配置されています:

/boot/vmlinuz-version-abiname[-featureset]-flavour

バイナリ (圧縮された) kernel イメージです。

/boot/initrd.img-version-abiname[-featureset]-flavour

初期 RAM ファイルシステム (initramfs) イメージです。このファイルはインストール中に自動的に生成されたものです。パッケージの一部として提供されているものではないことに注意して下さい。 詳細は 7章起動用RAMイメージ (initramfs) アーカイブの管理 を参照して下さい。

/boot/config-version-abiname[-featureset]-flavour

この特定のカーネルをビルドするために使用されるカーネルの設定ファイルです。必要であれば、カーネルをソースから再構築するために利用できます。

/lib/modules/version-abiname[-featureset]-flavour/

ディレクトリには、ビルド済みのバイナリカーネルモジュールが含まれています。

linux-libc-dev

このパッケージは GNU glibc や、その他のシステムライブラリなどのユーザ空間プログラムによって使用される Linux カーネルヘッダを提供します。