Debian で .config を編集したら、カーネルを再コンパイルします。

Debian で .config を編集したら、カーネルを再コンパイルします。

重要な要約: "make deb-pkg"を使用してLinux(Debian)カーネルをコンパイルした後、.configを少し変更した後にどのように新しいカーネルを作成できますか?

こんにちは、

次のようにカーネルをコンパイルしようとしています。https://www.debian.org/doc//manuals/debian-handbook/sect.kernel-compilation.pl.html。まあ、私はやった。時間がかかってインストールしましたが、起動できませんね。

だからもう一度やり直してください。 .configを編集し、新しいものをコンパイルしたいと思います。ただし、最初から始めて全体を削除してコンパイルしないと、これを行う方法はありません。ただ「作る」ということは何もしないようです。私の言葉は、何かをしましたが、Linuxのイメージを変えませんでした。以前に作成されたファイルをすべて削除せずに「make deb-pkg」のみを実行すると、エラーが返されます。

私はそれを検索しましたが、私が見つけた答えはすべて「make deb-pkg」を使用する前のように見え、うまくいきませんでした。

ありがとうございます。

ベストアンサー1

リンクされたマニュアルの8.10.4章の始めから:

再建前の清掃に注意してください

ディレクトリ内ですでに一度コンパイルして最初からすべてを再構築するには(たとえば、カーネル構成を大幅に変更したため)、コンパイルされたファイルを削除するmake cleanために実行する必要があります。

デフォルトでは、このmakeコマンドはMakefileで定義されている単純な一連の規則を使用します。たとえば、ルールはファイルがファイルXからビルドされ、次を使用すると言うことができますABCこれら注文する。ファイルをX再構築する必要があるかどうかを判断するときは、通常、makeファイルが存在するか、存在する場合はXソースファイルより古いか、A存在しないか、そのファイルのいずれかより古いかどうかを確認します。ソースを削除すると再構築されます。BCX

および/または構築に関するA他の規則がある場合は、再帰的に等を決定する前に最初に評価されます。BCX

(数十年間、このmakeコマンド、特にGNUバージョンは多くの拡張を蓄積してきましたが、これは動作の基本的なアイデアのままです。)

「.configでマイナーな変更」を行ったと言われました。一部の.configオプションは、ビルドする新しいモジュールを有効/無効にします。たとえば、以前に無効にしたモジュールを有効にすると、*.ko以前に存在しなかった新しいファイルが存在しなければならず、カーネルMakefileシステムで検出される可能性が高くなります。

ただし、他のオプションは、#ifdef特定のブロックを有効/無効にするか、個々のソースコードファイルの特定の値を変更することによってのみ#define変更が発生します。これはカーネルMakefileシステムでは簡単には検出できません。

したがって、以前のカーネル構成が何であるかを正確に知らないままそしてこれが既知の問題か予想される問題か、正確なオプションを変更しても機能する必要がある問題であるかどうかを知る方法はありません。

カーネルMakefileシステム自体はかなり複雑です。カーネル構成オプションの変更のすべての可能な組み合わせを数学的に完全な方法で処理するには複雑すぎる可能性があります。すべての構成変更が適用されるように注意するには間違いがあります。時々、これは最適なものより多くのファイルを書き換えることができます。設定の変更はinclude/generated/autoconf.hに含まれているものを更新しinclude/linux/kconfig.h、デフォルトで含まれているため、デフォルトではすべてが再構築されます。

上記の引用によると、推奨される手順は「再実行する前に実行」NOTEです。make deb-pkgmake clean

同様のことを経験しましたmake deb-pkg。私の記憶が正しい場合、再実行中に発生したエラーは、実際のカーネルのコンパイルよりも.debパッケージのビルドステップに関連していたようです。

おすすめ記事