上から...
make
カーネルイメージをコンパイルしてリンクします。これはという名前の単一のファイルですvmlinuz
。
make modules
M
カーネル設定中に回答した質問ごとに個別のファイルをコンパイルします。オブジェクトコードは、新しくビルドされたカーネルに対してリンクされます。(回答済みの質問のY
場合、これらはすでにの一部でvmlinuz
あり、回答済みの質問のN
場合はスキップされます)。
make install
ビルドされたカーネルをにインストールします/vmlinuz
。
make modules_install
カーネルモジュールを/lib/modules
またはにインストールします/lib/modules/<version>
。
利用可能なカーネルのリストに追加することに関しては、それはブートローダーによって処理されます。ブートローダーごとに異なりますgrub
が、x86とamd64で最も一般的であるため、これについて説明します。実際には非常に簡単です。GRUBはに見え/
、/boot
および/lib/modules
任意のもののためのそれのようなルックスが働いカーネルかもしれないと、それを追加します。はい、これは単純化された説明です。
Ubuntuのドキュメントにある余分な「恐ろしいもの」は、deb
パッケージを作成するための余分なものです。あなた自身のためにそれをしているとき、それをパッケージする方がはるかに良いです。時間内に切り替えます。
カーネルとモジュールのビルドは、必要な人(カーネル開発者)がモジュールのみに変更を加えることが多いため、別々に維持されます。変更を適用し、モジュールだけを再構築してインストールできます。これにより、1日20回行う必要がある場合に多くの時間を節約できます。単一のmake everything
コマンドを持つように更新されることはありません。代わりにmake && make modules && make install && make modules_install
、ドキュメントの指示どおりに実行します。ビルドプロセスは、あなたではなくカーネル開発者に有利です。そして、それはあるべき姿です。
実際には、カーネル開発者やディストリビューターパッケージャー以外の誰もがカーネルをコンパイルする理由はほとんどありません。ほとんどすべての状況で、必要なカーネル機能はすでに構築されており、あらかじめパッケージ化されたカーネルのいずれかで利用できます。例外もありますが、最近では非常にまれです。
自分でカーネルを構築することをやめさせるわけではありませんが、実際にそれを行うことをお勧めします。ゼロからカーネルを構築することは、そこですべてがどのように機能するかを学ぶための貴重なプラクティスだと思います。一部には、おそらくいつかあなたが必要とする例外になるからです。しかし、一般的なカーネルとブートプロセスについても多くを学びます。あなたはそれをしたことでより良い人になります。