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.
modinfo
はデフォルトで/lib/modules/<kernel-version>
を検索します。したがって、カーネルモジュールをそこのサブディレクトリにコピーする必要があります。おそらく/lib/modules/<kernel-version>/extra
。
モジュールを適切な場所にコピーした後、depmod -a
も実行する必要があります。