カーネルモジュールを作成するのではなく、Linuxカーネルを変更するのはなぜですか?

カーネルモジュールを作成するのではなく、Linuxカーネルを変更するのはなぜですか?

以前のバージョンのLinuxがインストールされている開発ボードがあります。ベンダーは、大幅に変更されたLinuxカーネル、いくつかのロード可能なカーネルモジュール、およびいくつかのサンプルソフトウェアを含むデバイスのイメージを提供します。

デバイスに最新バージョンのLinuxカーネルをインストールしたいが、修正されたLinuxカーネルは以前のカーネルバージョンに基づいているため、ベンダーはそれをサポートしません。

私が理解していないのは、カーネルモジュールとしてドライバを書いて、カーネルが実行されているデバイスと互換性があることです。なぜLinuxカーネルハックを始めるのですか?すべてのカーネルバージョンに対して問題なく簡単に再コンパイルできます。これにより、ベンダーが特定のカーネルバージョンのみをサポートしている場合は「固定」されます。

しかし、私がそれを見逃した理由はいくつかあります。多くのプロジェクトでは、この方法を使用して特定のバージョンのカーネルを取得し、マザーボードに合わせて大幅に変更するのを見たためです。私が興味のあるものは次のとおりです。

  1. カーネルモジュールを作成するのではなく、Linuxカーネルを変更するのはなぜですか?
  2. 最新のカーネルを実行する必要があり、ベンダーからサポートを受けていない場合(デバイスドライバは最新バージョンのカーネルで動作する必要があります...)

ベストアンサー1

この質問には多くの仮定があります。

その理由は次のとおりです。

カーネルインタフェースはいいえ安定しているため、あるバージョンのモジュールが別のバージョンに対してコンパイルされないことがあります。

カーネルは必要な機能を公開しない場合があります。

カーネルは必須機能を公開できますが、モジュールに特定のライセンスを要求するなど、許容できる方法ではありません。

コードを書く人は、このようにコードを書く方が速いと思います。

最新のカーネルが必要かどうかを選択します。

  1. 自分のコードを移植した他の人を見つけてください。
  2. 自分を移植する
  3. 他の人に移植料を支払います(お金が必要ない場合があります。ビール、お世辞、好奇心が役立ちます)。

おすすめ記事