1

私は小さなラズベリーパイコンピューターの1つを持っており、カーネルモジュールの作成を初めて試しています。ソースをダウンロードし、テストモジュールをコンパイルできましたが、ロードしようとすると、次のエラーが発生します。

insmod: error inserting 'hello.ko': -1 Invalid module format

dmesgを見ると、次のエラーが表示されます。

hello: version magic '3.1.9+ mod_unload modversions ARMv6 p2v8 ' should be '3.1.9+ mod_unload modversions ARMv6 '

誰かが私を正しい方向に向けることができますか、それが私に何を言っているのかわかりませんか?

乾杯ルーク

4

1 に答える 1

0

ダウンロードしたカーネルソースが、Piにインストールされているカーネルと一致していないようです。

どこからダウンロードしましたか?

カーネルの正しいソースを取得するには、コマンドラインで次のように入力します。

sudo apt-get install linux-source 

これにより、カーネルの正しいカーネルソースがダウンロードされます(これはメタパッケージです)。/lib/modules/これで、カーネルバージョン(入力時に出力されるバージョン)と一致uname -rするディレクトリが表示されます。

コードを再コンパイルしてリンクします-Makefileに次のような行を入れて、正しいカーネルソースを選択していることを確認してください。

all:
    make -C /lib/modules/$(shell uname -r)/build M=${PWD} modules

新しくコンパイルした.koモジュールは、カーネルと一致し、文句なしに挿入されます。

幸運を!

于 2012-10-11T18:53:55.960 に答える