我正在 arm 平台上定制 2.6.39.4 linux 内核,并尝试测试“你好世界”我创建的驱动程序。我在内核 make menuconfig 中选择了“M”(可加载),并验证了它是否出现在 .config 中,以及 hello.o 是否是在内核编译期间创建的。
当我启动加载了上述 Linux 映像的内核时,我尝试执行 find / -name *.ko 和 find / -name *.o 来查看我的可加载 hello world 模块位于何处 - 但除了其他几个 lkm 之外我什么也没找到。
有人知道我是否遗漏了列出所有可用 lkms 的命令吗?
答案1
此类模块通常在树外创建,并从那里加载。此外,模块对象具有扩展名.ko
,如果名称不正确,则不会加载模块。例如示例“Hello, world!”模块来自LDD3仍可构建并正常运行(x86_64 上的 Fedora 20)。