web-dev-qa-db-ja.com

デバイスドライバーエラーのビルド:insmod無効なモジュール形式

私はチュートリアルをフォローしています@ 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コマンドを使用すると、カーネルにモジュールが表示されません

3
SwimBikeRun

Sudoを実行せずにコマンドを実行してみてください。代わりにrootになって試してください。

$ Sudo su -
$ /sbin/insmod hello1.ko

また、dmesgを調べて、問題の原因に関する追加のメッセージがあるかどうかを確認し、modinfoを使用してモジュールを確認してください。

$ modinfo /dir/to/mod/hello1.ko
4
slm

次のことを確認してください。

  1. 同じバージョンのカーネルのソースコードを使用すると、カーネルソースが見つかります here
  2. 同じカーネルを使用現在インストールされているカーネルの構成。通常は次の場所にあります。

    /proc/config.gz
    /boot/config
    /boot/config-*
    
  3. 適切なコンパイルツールチェーンを使用する。

0
Mustafa thamer

正しいカーネルバージョンヘッダーに対してモジュールをコンパイルしていますか?この問題に直面した後、正しいカーネルバージョンのヘッダーをインストールしました。

0
RootPhoenix