古いバージョンのLinuxがインストールされている開発ボードがあります。ベンダーは、大幅に変更されたLinuxカーネル、いくつかのロード可能なカーネルモジュール、およびいくつかのサンプルソフトウェアを備えたデバイスのイメージを提供しています。
新しいバージョンのLinuxカーネルをデバイスにインストールしたいのですが、変更されたLinuxカーネルは古いカーネルバージョンに基づいているため、ベンダーはこれをサポートしていません。
私が理解していないのは、ドライバーをカーネルモジュールとして作成することで、カーネルを実行中のデバイスと互換性を持たせることができるのに、なぜLinuxカーネルをハッキングし始めるのかということです。問題なく、どのカーネルバージョンでも簡単に再コンパイルできます。このように、ベンダーが特定のカーネルバージョンのみをサポートしている場合、あなたは「行き詰まっています」:(
しかし、多くのプロジェクトがカーネルの一部のバージョンを取得し、ボードに合うように大幅に変更するというこのアプローチを使用しているので、私が見逃している理由があるに違いありません。私が興味を持っているのは、次のとおりです。
この質問には多くの仮定があります。
ここにいくつかの理由があります。
カーネルインターフェイスはnot安定しているため、あるバージョンのモジュールが別のバージョンにコンパイルされない場合があります。
カーネルが必要な機能を公開していない可能性があります。
カーネルは必要な機能を公開する場合がありますが、許容できる方法ではありません。たとえば、モジュールに特定のライセンスが必要です。
コードを書いている人々は、この方法でコードを書く方が速いことに気づきました。
新しいカーネルが必要な場合のオプションについて。