@チュートリアルに従っています。http://www.embeddedsystemonline.com/home/embedded-system/embedded_linux/lab3-linux-device-driver
このチュートリアルのステップ7では
$ cd /usr/src/kernels/linux-2.6.20.1/drivers/char/examples
$ /sbin/insmod hello1.ko
その後、次のエラーが発生します(以降sudo /sbin/insmod hello1.ko
)
insmod: error inserting 'hello1.ko': -1 Invalid module format
lsmod コマンドを使用してカーネルにモジュールが表示されることはありません。
答え1
を実行せずにコマンドを実行してみてくださいsudo
。代わりにルートになってみてください。
$ sudo su -
$ /sbin/insmod hello1.ko
dmesg
また、何が間違っているかを示す他のメッセージがあることを確認してくださいmodinfo
。
$ modinfo /dir/to/mod/hello1.ko
答え2
以下を確認してください。
- 同じバージョンのカーネルソースコードを使用してカーネルソースコードを参照できます。ここ
同じカーネルを使用して現在インストールされているカーネルの構成は、通常ここで見つけることができます。
/proc/config.gz /boot/config /boot/config-*
正しいコンパイルツールチェーンを使用してください。
答え3
正しいカーネルバージョンのヘッダーをインストールして問題を解決しました。
答え4
ランニング:
make clean
その後、もう一度実行してください。
make