12

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

make コマンドを使用してhello_world.koファイルを生成することに成功しました。

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

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

Raspberry Pi フォーラムで説明されている手順に従ってみましたが、うまくいきませんでした。

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

4

1 に答える 1

7

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

     uname -r

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

    sudo apt-cache search linux-headers

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

于 2014-01-21T00:09:07.860 に答える