web-dev-qa-db-ja.com

modinfoは自己挿入モジュールの情報を返しません

シナリオ

Linux用のカーネルプログラミングを試しています。モジュールを作成し、挿入、削除し、dmesgの出力も確認しました。

問題

モジュールを挿入したら、lsmodを起動することで、モジュールが正常に挿入されたことを確認できます。それでも、modinfoを起動すると、そこに存在しないというエラーが返されます。以下のターミナルスニペットに従ってください

[〜#〜] input [〜#〜]

Sudo insmod hello.ko
lsmod | head -2

[〜#〜] output [〜#〜]

Module                  Size  Used by
hello                  16384  0

[〜#〜] input [〜#〜]

Sudo modinfo hello

[〜#〜] output [〜#〜]

modinfo: ERROR: Module hello not found.

質問

  1. 私は何か間違ったことをしていますか?
  2. そうでない場合、私がそれを得ることができる他の方法は何ですか?
  3. ファイルシステムのnautilusブラウザから検索してみましたが、結果が返されません。挿入のファイルはどこにありますか?
  4. 一時的な目的でロードされているので、見つからないのでしょうか?
2
T3J45

modinfoはデフォルトで/lib/modules/<kernel-version>を検索します。したがって、カーネルモジュールをそこのサブディレクトリにコピーする必要があります。おそらく/lib/modules/<kernel-version>/extra

モジュールを適切な場所にコピーした後、depmod -aも実行する必要があります。

3
Thomas