web-dev-qa-db-ja.com

insmodの使用中にエラーが発生しました "モジュールhello_world.koを挿入できませんでした:無効なモジュール形式"

Raspberry PiでCとBashを使用してhello_worldカーネルモジュールを作成しようとしています。

Makeコマンドを使用してhello_world.koファイルを正常に生成しました。

ただし、insmod hello_world.koコマンドを使用しようとすると、次のエラーが発生します。

エラー:モジュールhello_world.koを挿入できませんでした:無効なモジュール形式

Raspberry Piフォーラム に記載されている手順に従ってみましたが、運が悪かったです。

これは、カーネルとLinuxヘッダーのバージョンの不一致が原因である可能性があります。このプロセスでこれらのヘッダーはどのような役割を果たし、カーネルに一致するバージョンを取得するにはどうすればよいですか?

12
user3204332

ヘッダーファイルは、モジュールとカーネルの間のインターフェイス、およびユーザースペースとカーネルの間のインターフェイスを定義します。カーネルバージョンとヘッダーファイルの間に不一致がある場合、モジュールは期待どおりに機能しません。現在のヘッダーファイルは通常、リポジトリで利用できます。現在実行中のカーネルは、次の方法で確認できます。

     uname -r

その後、Linuxヘッダーのリポジトリを確認します。

    Sudo apt-cache search linux-headers

そしてそれらをインストールします。

7
ikstream