「異なるシンボルバージョン」でカーネルモジュールをロードできます。

「異なるシンボルバージョン」でカーネルモジュールをロードできます。

カーネルのソースコードをダウンロードし、パッチを適用して再構築しましたが、カーネルモジュールが作成され、これを試みると、「モジュールの不明insmodなシンボル」について不満があり、「dmesgシンボルバージョンに同意しません」というエラーが発生します。 ........」。

このモジュールのソースコードを見つけて、カーネルを再構築するのではなく、カーネルがこのモジュールを受け入れるように強制できますか?

危険だということはわかりますが、可能であれば危険を冒します。

答え1

insmodモジュールをロードするための最高のツールではありませんがmodprobe、むしろよりスマートです。存在するmodprobeマニュアルページ--force、オプションがあることがわかります可能バージョン情報が競合するモジュールをロードしています。

おっしゃるとおり、これは危険ですので、基本的に使用してはいけません。システムがクラッシュしたら、ピースを拾うことができます。

答え2

同じカーネルバージョンを再構築してこのエラーが発生した場合は、適用したパッチが原因でモジュールが参照するカーネルの内容が変更された可能性があります。これはほぼ爆発することを保証します。モジュールのソースコードを見つけて、正しい参照があるように新しいカーネルに対して再コンパイルする必要があります。

まったくコンパイルされない場合があり、カーネルパッチで修正された内容と一致するように変更する必要があります。

答え3

make cleanを行い、モジュールディレクトリで再度makeをし、insmodを実行するとそのエラーは発生しません。または、カーネルヘッダーが欠落している可能性があります。ディストリビューションに従ってインストールしてください。

関連情報