私はカーネルモジュールを書くのが初めてなので、技術的でない問題に直面することはほとんどありません。
特定のカーネル バージョン (たとえば 3.0.0-10、10 はパッチ番号) 用のカーネル モジュールを作成するには、同じバージョンのカーネル ヘッダーが必要なため、カーネル ヘッダーをインストールしてそこから開発を開始するのは簡単に見えます。ただし、パッチが適用されたカーネル バージョンのカーネル ヘッダーは利用できません。ゲスト カーネル vmlinuz-3.0.0-10 がマシンで実行されているため、カーネル ヘッダーをダウンロードすると、見つかりませんと表示されます。
他のアプローチは、その特定のカーネルのソースを取得することですが、ここでも問題は、パッチが適用されたカーネルの同じソースが利用できないことです (linux-kernel-3.0.0-10 または linux-kernel-3.0.0 のソースを取得する必要はありません)。および 10 番目のパッチ)。状況によっては、実行中のカーネルのソースを取得することができますが、常に可能であるとは限りません。
もう 1 つは、実行中のカーネル以外のカーネルをビルドし、ビルドしたカーネルをマシンに配置することです。しかし、時間とスペースを消費するプロセスであるそのカーネルのモジュールを構築する必要があります。
したがって、これを尋ねる意図は、カーネル ドライバー開発者の好みを知ることです。他の選択肢はありますか?
あるバージョンでカーネル モジュールをコンパイルし、別のバージョンで実行することは可能ですか (エラーが発生しますが、これに対する回避策はありますか?)