modinfo不返回自插入模块的信息

modinfo不返回自插入模块的信息

场景

我正在尝试 Linux 内核编程,我在其中创建了模块、插入、删除并检查了它的dmesg输出

问题

当我插入模块后,我可以通过触发来验证它是否已成功插入lsmod。然而,当我触发时,modinfo它会返回一个错误,指出它不存在。按照以下终端片段进行操作

输入

sudo insmod hello.ko
lsmod | head -2

输出

Module                  Size  Used by
hello                  16384  0

输入

sudo modinfo hello

输出

modinfo: ERROR: Module hello not found.

问题

  1. 难道我做错了什么?
  2. 如果没有,我可以通过什么其他方式获得它?
  3. 我尝试从文件系统中的 nautilus 浏览器中找到它,但它没有返回任何结果。我在哪里可以找到它的插入文件?
  4. 它是否是临时加载的,这可能就是我找不到它的原因吗?

答案1

modinfo默认情况下搜索/lib/modules/<kernel-version>.因此,您必须将内核模块复制到其中的子目录中。最有可能的/lib/modules/<kernel-version>/extra

将模块复制到正确的位置后,您还应该执行depmod -a.

相关内容