単純なパッチでカーネル全体をコンパイルする必要があるのはなぜですか?

単純なパッチでカーネル全体をコンパイルする必要があるのはなぜですか?

そのため、カーネルにパッチを適用してBluetoothを修正し、このガイドを使用してビルドします。 https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

カーネル全体をコンパイルする必要があるのはなぜですか?約1時間かかりますか?

ベストアンサー1

あなたの質問は、カーネルの性質とカーネルを再コンパイルする理由を尋ねるようです。

Linuxカーネルは、C言語で書かれたソースコードの束です。膨大な数のコンピュータハードウェアデバイスとチップセットを処理できるコードがあり、標準のPCハードウェアを超えてさまざまなプラットフォームに適応するのに役立つコードも多くあります。その後、実行時に物事の完全な構造を提供するコードがあります。

一部のコードはコードの他の部分と相互に排他的であるため、いずれかのオプションを選択する必要があります。

一部のコードは、これらのケースがない人のためにカーネル速度を低下させる特別なケースのためであるため、これらのコードを無効にするオプションを設定できます。

Ubuntuが「大衆」のためのカーネルを構築するとき、彼らは99%の人々がどのハードウェアに触れ、必要とするのかを推測します。その後、それをロード可能なモジュールにできるだけ分割します。その後、カーネルの主要コアをコンパイルし、必要なほとんどのモジュールと一緒に提供します。パッケージマネージャを介して他のモジュールを使用できるようにします。

Bluetoothが故障した理由を説明していませんが、誰かが新しいカーネルを構築する必要があると言うのは、おそらくそのカーネルオプションの1つが特定のBluetoothチップを使用できる機能を削除するということです。したがって、このオプションを有効にしてカーネルを構築する必要があります。

幸運な場合は、この新しいオプションを使用してBluetoothモジュールを構築するだけです。しかし、既存のカーネルに正しく接続される新しいカーネルモジュールを作成するために正しいコンパイラ環境を設定することは非常に難しいかもしれません。多くの場合、全体を再コンパイルする方が簡単で信頼性が高くなります。

最初のコンパイルが完了したら、設定を少し変更すると、影響を受ける少数のファイルだけを再コンパイルするだけで、はるかに高速になります。ただし、これを行うと一時fakeroot debian/rules cleanファイルが削除され、最初から再開される可能性があります。第二に、このステップをスキップすることをお勧めします。また、コンパイル時にすべてのプロセッサが使用されていることを確認してください。それ以外の場合は、並列にコンパイルするように指示する方法を見つけます。手動でコンパイルすると、一度に20個のファイルをコンパイルします。make -j 20これは、4コアマシンで最速のパフォーマンスを提供します。

おすすめ記事