无法使用insmod或内核间模块

3

我有一个位于内核驱动程序1(KD1.ko)中的函数:

static void test (void);
EXPORT_SYMBOL(test);

static void test() {
    printk("<<< MISSION DONE >>>.\n");
}

在内核驱动程序 2 (KD2.ko) 中:
extern static void test (void);

我试图调用它。

我成功地使用insmod命令加载了KD1.ko模块,但是我无法使用insmod命令加载KD2.ko模块。我是否遗漏了什么?

1个回答

4

3
我本来也要写同样的原因 :) 赞一个。 - user2760375
我尝试去掉static,但它仍然不起作用。 - Moirisa Dikaiosýni
@Babbit 你具体遇到了什么问题? - Jeyaram
我成功地使用insmod命令安装了KD1.ko,但是我无法安装KD2.ko。它显示“insmod: error inserting 'KD2.ko': -1 Invalid parameters”。在我插入外部函数并尝试调用test();之前,这种情况从未发生过。 - Moirisa Dikaiosýni
1
请将您的代码与 https://github.com/jeyaramvrp/kernel-module-programming/tree/master/depmod-export-sym-demo 进行比较,您可能会得到一些想法。 - Jeyaram
1
非常优雅的例子,@Jeyaram。 例子是最好的定义。 - Moirisa Dikaiosýni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接