DistributeModule.symvers

DistributeModule.symvers

カーネルモジュールセットを作成しています。各モジュールは独自のプロジェクトです。これらのモジュールの1つは、複数のサブモジュールへのインタフェースを提供します。つまり。親モジュールにはエクスポートがあり、サブモジュールにはインポートがあります。

コンパイルされるカーネルコードにはすでに Module.symvers があるため、親モジュールのコンパイルと挿入に問題はありません。ただし、子モジュールには親モジュールのヘッダファイル(エクスポートの説明)が含まれています。サブプロジェクトのインクルードディレクトリにコピーする方法でヘッダーを作成しました。私の目標は、いつかこの親モジュールがカーネルツリーの一部になることです。

サブモジュールを挿入したときにdmesg未確認の関数署名について文句を言います(正確なエラーメッセージを覚えていません)。私もこの問題を解決するためにCopyModule.symvers親アイテムを子アイテムのビルドディレクトリにビルドすると作成されます。

Module.symvers コピーが適用される場合、Module.symvers ファイルには、エクスポートされた機能を含む建物モジュールへのフルパスが含まれます。したがって、github / gitlabでModule.symversを共有すると、プロジェクトを複製するすべての人に問題が発生します。

この状況を処理するための最良の/好ましい方法は何ですか?

ベストアンサー1

おすすめ記事