Gentoo を実行し、完全な開発環境を備えたホスト OS でツリー外のネットワーク カーネル モジュールをコンパイルします。次に、これらのカーネル モジュールを KVM 化されたゲスト OS にコピーし、そこでロードしてテストします。
問題は、ホスト OS でコンパイルしてゲスト OS で実行するため、ホスト OS とゲスト OS の両方でカーネルをアップグレードするたびに、カーネル ソースのヘッダー ファイルにいくつかのマイナーな変更を加えなければならないことです。また、ホストとゲストが同じカーネル バージョンを実行していることを確認する必要がありますが、組み込みモジュールには小さな違いがあります (つまり、ホスト OS は仮想化、ビデオなどのためにセットアップされていますが、ゲスト OS はわずかに異なります)。ホスト OS にリング バッファを出力するシリアル コンソールを含める必要があります)。ほとんどの場合、ホストからの同じ .config であり、これをゲストにコピーします。
私の最大の懸念は、一方をコンパイルしてもう一方を実行するので、KM の安定性/テストに影響を与える可能性があるかどうか疑問に思っていることです。私はこれを行うのに大きな問題はありませんでした。私のものがおっとしたときを推測しています。これまでのところ、それは私のコードであることがわかりました。
ゲスト OS 内に完全な開発環境はありません。デスクトップとその上で実行するスクリプト/ツールなどのカスタマイズに多大な労力を費やしているからです。私のゲスト OS は、テストとデバッグに必要なツールのみを備えた最小限の Gentoo インストールです。
それが私のやり方であり、より経験豊富な開発者がカーネルの開発/テストを行うためのより良い方法と、カーネルのアップグレードを行うためのより簡単な方法を持っているかどうか疑問に思っています.