在Linux 2.4.25系统上,我有两个可加载的内核模块com20020
和xsoe
。这些模块应该彼此独立,但/proc/modules
有行
xsoe 4528 0 (unused)
com20020 10112 0 [xsoe]
- 说xsoe
指的是com20020
。也许存在编程错误,因此xsoe
无意中使用了来自com20020
的符号。我怎样才能找到这种依赖的原因(最好不要卸载com20020
)? (depmod -n
没有任何线索。)
答案 0 :(得分:0)
我在/proc/ksyms
中查看了com20020
中可疑符号,这些符号可能也出现在xsoe
的来源中;最终我看到了这条线
d129e694 debug [com20020]
那里。 com20020
和xsoe
的来源都定义为unsigned debug;
MODULE_PARM(debug, "i");
,nm com20020.o
和nm xsoe.o
的输出中的符号显示为共同:
00000004 C debug
解决方法是将对象debug
定义为具有内部链接(存储类)
static
)。
可以使用bash
命令(例如
join -j 3 <(nm com20020.o) <(nm xsoe.o)|grep C$