モジュールのビルド
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/12/23 16:24 UTC 版)
「ローダブル・カーネル・モジュール」の記事における「モジュールのビルド」の解説
Linuxカーネルのモジュールは後述する互換性の問題から、カーネルがリリースされる度にリビルドする必要がある。モジュールのビルドはカーネルソースコードに含まれるデバイスドライバに対するものとカーネルソースコードに含まれない外部のカーネルモジュールに対するものの2通りあるが、いずれもカーネルビルドのインフラを利用している。通常、カーネルソースコードに含まれる一部のデバイスドライバはカーネルコンフィグレーション(Kconfig)にてカーネルに直接静的リンクするか、もしくはモジュールとして構築するかのいずれかを選ぶことができる。モジュールとして構築することを選択した場合、カーネルソースのMakefileにはmodulesというターゲットが存在し、予めこのディレクトリでカーネル(に直接関係し、カーネルイメージの生成前段階のファイルvmlinux)を作成した後、このmodulesターゲットを実行する事でモジュールのビルドと依存関係の解決用ファイルが生成される。そして、make installを実行すると、システムにカーネルとモジュールを同時にインストールする。 公式のカーネルソースはメインライン (mainline) カーネル、もしくはメインストリーム (mainstream) カーネルと呼ばれるが、目下開発中で未だメインラインに採用されていないデバイスドライバ、GPLと非互換なライセンスで配布されているためメインラインにマージされないモジュール、または自由な改変が全く許されないプロプライエタリなモジュールをビルドするには、カーネルビルドのインフラを間接的に利用する。したがって外部のカーネルモジュールのビルドのためには、カーネルのビルドが正常に終了した完全なカーネルソースコードのコピーがあればよい。もしくはその中から一部のビルドツールやヘッダファイルを抽出したものを用意すればよい。前者はユーザーが独自にカーネルをビルドすることで得られる。後者は、ユーザーが独自に用意することもできるが、多くのLinuxディストリビューションでは、この様な機能を持つパッケージを提供している場合がある。またディストリビューションにより、この低レベルビルドインフラをよりユーザーフレンドリーなツールを介してビルドできるパッケージも用意されている場合がある。
※この「モジュールのビルド」の解説は、「ローダブル・カーネル・モジュール」の解説の一部です。
「モジュールのビルド」を含む「ローダブル・カーネル・モジュール」の記事については、「ローダブル・カーネル・モジュール」の概要を参照ください。
- モジュールのビルドのページへのリンク